Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Open Measurement impression tracking #244

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ValentinPostindustria
Copy link

@ValentinPostindustria ValentinPostindustria commented Nov 6, 2024

We have researched the Open Measurement SDK's behavior for impression tracking (burl) in the PUC.

OM SDK JS script contains the public methods that are available in all versions and are not obfuscated. We have researched different versions of AppLovin, GAM, and AdMob. List of these methods:

startSession
error
finishSession
publishAdEvent
publishImpressionEvent
publishVideoEvent
publishMediaEvent
publishLoadedEvent
setNativeViewHierarchy
setState
setDeviceVolume
init
setLastActivity

We can subscribe to all these methods using the proxy method. For receiving them we should use window.omidBridge.<method_name>.

We have tried to subscribe to publishImpressionEvent, but it works too fast and we can't handle it. So we decided to subscribe to the geometry change called by the setNativeViewHierarchy method. But this method can be called when a view is not on a screen or is not visible, so we need to check this method's parameter. Parameter options:

@bretg
Copy link
Contributor

bretg commented Nov 7, 2024

Thanks @ValentinPostindustria and @YuriyVelichkoPI -- while you're working on PUC tracking, please take a look at prebid/prebid-mobile-ios#1059

@jclou
Copy link

jclou commented Dec 18, 2024

Some concerns based on my understanding of Open Measurement:

  1. If the ad doesn't contain any verifications or if GAM/AdMob etc. choose not to run any verifications (e.g. the verification provider is not allowlisted), then in an optimized integration there is no reason to set up an OMSDK ad session and invoke the methods we are intercepting.
  2. The omid bridge in the service script is an implementation detail, designed to be be a private API between OMSDK native and javascript layers -- and therefore is subject to change without backwards compatibility.

Would it make more sense to instead write a proper verification script and use omid as intended?

@rickyblaha
Copy link

Please add some automated tests to cover these changes. For example see some added here for rendering based on MRAID viewability #248

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants