Streaming and on-demand are the future of television video delivery. A myriad of streaming services are available or launching soon. Each service has a very high cost of content creation and acquisition, that cannot be sustained by user subscription charges alone. And blanket in-line advertising is a terrible user experience.

What it does

Gemini is a service that allows advertisers to connect their message with specific play time in a video stream. The message is hyper-targeted, much like web advertising, to as narrow or broad a demographic as desired. While watching on an Android TV, the service generates a bluetooth beacon on the streaming device that identifies the service, show, and timestamp of the playback. An app running on a mobile phone or tablet listens for these beacons, and displays advertiser messages at the appropriate playback time, only if the user falls within the specified demographics. As such, each person watching the stream can receive different messages based on their profile. The app retains the messages so you can review them at your leisure. User engagement is measured and monetized by the service provider.

Users can enjoy an ad-free stream viewing experience, yet still receive messages that are highly relevant to their interests - rather than blanket advertising in broadcast/cable television or existing streaming services. Advertisers get all the advantages of web-like hyper-targeting. Service providers gain a highly profitable revenue stream.

How I built it

I wrote a web app to create advertiser messages linked to specific time stamps in a video and tagged with desired demographics. The message can include text, an image, and a link to a website. These are stored in a backend based on the Parse Platform. I wrote an Android TV app that generates a bluetooth beacon when a user plays a video, with info about the show and updated regularly with the current playback time. I wrote an iOS app that listens for the beacon. I added some code to personalize the iOS app to establish a user's profile. When the beacon info intersects with an ad message that matches the user's profile, the ad is delivered to the user's device. The app stores the messages so they can be reviewed at the user's leisure.

Challenges I ran into

I have done very little Android development, so I had to learn quite a lot about the platform and creating an Android TV app. Perfecting a scheme to signal from the Android TV to mobile devices (show info, timestamp, etc.) took a while to figure out and iterate until it was working well.

Accomplishments that I'm proud of

The Gemini platform seems very viable for a real world deployment. Also, getting an Android TV app working given my lack of experience.

What I learned

I learned a lot about Android development, and deployment to Android TV. As a very experienced iOS developer, I knew what should be possible on Android, but figuring out how to implement it was a challenge.

What's next for Gemini

As a POC, Gemini works very well. It needs buy-in from a streaming service provider, such as AT&T, so that the service can be integrated into their media playback platform. It also needs integration into existing ad purchase platforms. And the user app needs a lot of polish.

Built With

Share this project: