livepeer / grants

⚠️ DEPRECATED ⚠️ Please visit the new homepage at https://grants.livepeer.org
43 stars 7 forks source link

[Microgrant] In-stream ads with Ad blocker detection on Livepeer player #212

Open livepeer-grants-bot opened 5 months ago

livepeer-grants-bot commented 5 months ago

Application by : eneche0343

Project Description

Building an ad-free streaming platform poses challenges for creators who must rely on alternatives like subscriptions, impacting content quality. Viewers, accustomed to ad-supported accessibility, may find the shift less affordable. We aim to address this by enhancing the Livepeer player with in-stream ads while checking for ad blockers.

Link to public GitHub repo (if applicable)

https://github.com/livepeer-ssai

Link to demo website (if applicable)

https://www.loom.com/share/003c95df4af641399cf7c9ddb22f6b63?sid=707a434c-7a1d-410c-bbe7-b4762c9eb2dc

How is Livepeer used for this project?

The extended player will overlay ads on videos(VOD or livestream) been watched using the Livepeer player. The player will be enhanced with tracking metrics for events such as impressions,clicks etc,While detecting Ad blocker on devices. The player is configurable to serve ads from any ad network ,client side.

How will you improve your project with this grant? What steps will you take to meet this objective?

A small grant will help my team start the journey of bringing ads to Livepeer(Client side and server side). We believe with this grant (seeding), we can bootstrap the first iteration of ads serving from catalyst .With the hope of getting a retroactive funding with SSAI on catalyst, My team vision of a ad network solely dedicated to Livepeer will be feasible.

Was this project started at a hackathon or another web3 event? Which one?

No

Please describe (in words) your team's relevant experience, and why you think you are the right team to build this project. You can cite your team's prior experience in similar domains, doing similar dev work, individual team members' backgrounds, etc.

I am a software and blockchain engineer with over 5 years of working experience , with keen interest in dapps development, cloud and media tech stack.

I have been in the past, a multi prize winner in different hackathon hosted by the Encode community including the Next video build hackathon 2022/2023.

I also made a lot of open source contributions, most recently to the Azuro network( Blockchain powered betting engine) in the last Encode X Gnosis hackathon.

I and my team have spent the past months researching ad serving on different platforms like Google and Amazon. From this research we had worked on some samples that are now available on how github repository.

My team members(6) are well proficient in their stacks and have been involved in several enterprise level projects in the past and are very keen in using their experience to make innovative improvement on the Livepeer network.

What is the project’s expected deliverable at the conclusion of the grant time period?

At the end of the grant time period, the features of the updated player will include client side ad serving in overlay, metric /event tracker and ad blocker detection.

What is the one thing (the core mechanic) you want someone to do when using your deliverable?

The core mechanic is for developers to be able to build on Livepeer and configure the player to work with ads tags from any ad service like Google,Amazon and other third parties. While viewers are able to watch and click on ads.

How will this deliverable benefit the Livepeer ecosystem?

Livepeer excels in transcoding but lacks effective content monetization, unlike ad-supported Web2 platforms. In-stream ads can position Livepeer as a leading competitor, addressing the crucial feature of ads for a mature video platform. This integration boosts earnings, fostering a shared revenue model with creators, establishing Livepeer as a comprehensive solution for video platforms

How did you learn about the Livepeer Grants Program?

Discord community

leszko commented 5 months ago

Could you add some explanation about the business model around this feature?

I understand you'll add a feature to the LivepeerJS code which allows an application developer to use ad-based revenue. But I wonder:

  1. How it's integrated with Ads providers?
  2. How to avoid ad-blockers?
livepeer-ssai commented 5 months ago

Hey @leszko ,thanks for the feedback. For your first question , ad providers allow users to generate ad tags ,these are pieces of code that advertisers and publishers use to serve and display advertisements on websites, they help ad delivery process. These tags can be passed by the developer as an option

      var options = {
        adTagUrl: 'YOUR_AD_TAG'
      };

       <Player
            options={options}
       />

Ad tags can include tracking pixels and other analytics code to monitor ad performance. Advertisers and publishers use this data to gather insights into the effectiveness of their ad campaigns, including impressions, clicks, and conversions.

For your second question , we are going to add code to detect if a user have ad blocker extension,plugins or software on thier device. The video will be paused automatically with a warning to deactivate the ad blocker.

livepeer-ssai commented 5 months ago

@leszko @hansy image

leszko commented 5 months ago

Thanks for sharing the diagram @livepeer-ssai

One more question, are there ad services that already insert ad videos into the players? Or do you need to implement everything on your own?

I'm just trying to figure out the scope of this work. In other words, it would be nice to explain what parts are already converted by some services or libraries and what you need to add. Thanks!

livepeer-ssai commented 5 months ago

@leszko @hansy @suhailkakar @0xcadams @hjpotter92 The scope of this work is ,a full on implementation of client side ad-insertion in the Livepeer player ,by leveraging googles IMA library.

Yes, there are streaming platform that insert/play video ads on player e.g YouTube.Majority of these platform leverage IMA sdk to this.

The ideal is to provide video platform(developers) built on Livepeer, a player that is capable of rendering ads(responsively). The player( via IMA sdk) can track and report active views,impressions and clicks to the connected ad providers. From this metrics , payments is calculated and paid to the developers/owner account. So the developer or owner of a video platform ,first needs to sign up with an ad provider they want to server ads from e.g Google ad manager,Amazon etc. They generate ad tag on this provider and append the tags to the player.

I and my team are well conversant with the IMA library . We are going to implement this library customly in the Livepeerjs code and also elaborate with code to detect ad blockers.

With the detection of ads blocker, we can increase impressions on the player.

livepeer-ssai commented 5 months ago

@leszko @hansy @dob @0xcadams @hjpotter92 The integration/implementation will cover the below (some with the IMA library)

  1. Serving master ads with companion ads. This will help increase the rate of clicks and conversion.
  2. Setting the language of text within ad UI elements.
  3. Funding Choices API , can help developers comply with the EU General Data Protection Regulation (GDPR), and recover lost revenue from ad blocking users.
  4. Active View measurements and reporting
  5. Reduce ads latency by pre-fetching next ad breaks.
  6. Forwarding consent for the use of cookies or other local storage where legally required, and for the collection, sharing, and use of personal data for ads personalization.
  7. Detection of ad blockers
  8. Documentation

The integration will be done for both reactjs and react-native livepeer sdk.

0xcadams commented 4 months ago

Is this a direct integration with IMA library? We recently release a 4.0.0 version which exposes a lot of the internals for the video player. Is this still relevant now that users have direct control over the video element and can pass the src prop as an ads source?

I don't see this as something that should be supported by our player directly. It is large in scope and we have been focusing on building video primitives for developers, as opposed to building a large, all-encompassing Player which is a black box. So we're trying to move away from that model and push devs to build these integrations themselves.

IIUC this ads integration should be entirely possible on the developers side, without it being a first-class offering that Livepeer ships and maintains (and, we don't host ads infra, so we don't want to necessarily support integration code for it)

https://docs.livepeer.org/kit/getting-started