prebid / prebid-mobile-android

Prebid Mobile SDK for Android applications
Apache License 2.0
58 stars 82 forks source link

"/instl: 1" flag is sending even in case of video banner #757

Closed takenorim closed 3 weeks ago

takenorim commented 4 weeks ago

Describe the bug Even in case of Video Banner use-case (which is NOT an interstitial ads), we found the OpenRTB object /instl: 1 is sending from the Prebid Android SDK to a Prebid Server. I believe this flag should not sending in case of video banner use-case. Actually, many of bidders does not expect /instl: 1 if this impression is not an interstitial ads.

Can you clarify whether this Android SDK behavior is something expected or a bug?

To Reproduce I can confirm this behavior with Prebid Demo app (e.g. GamOriginalApiVideoBannerActivity). This is relevant Logcat messages.

2024-06-03 13:28:59.660 32272-32483 PrebidBaseNetworkTask   org.prebid.mobile.prebidkotlindemo   D  url: https://prebid-server-test-j.prebid.org/openrtb2/auction

2024-06-03 13:28:59.661 32272-32483 PrebidBaseNetworkTask   org.prebid.mobile.prebidkotlindemo   D  queryParams: {"imp":[{"id":"ffc2104e-5367-431a-ac7d-24e5e6680f80","instl":1,"clickbrowser":0,"video":{"mimes":["video\/x-flv","video\/mp4"],"minduration":5,"maxduration":30,"protocols":[2],"minbitrate":300,"maxbitrate":1500,"playbackmethod":[1],"delivery":[3],"api":[1,2]},"ext":{"prebid":{"storedrequest":{"id":"prebid-demo-video-outstream-original-api"}}}}],"id":"ffc2104e-5367-431a-ac7d-24e5e6680f80","app":{"name":"Prebid Kotlin Demo","bundle":"org.prebid.mobile.prebidkotlindemo","ver":"1.0.0","publisher":{"id":"0689a263-318d-448b-a3d4-b02e8a709d9d"},"ext":{"prebid":{"source":"prebid-mobile","version":"2.2.0"}}},"device":{"ua":"Mozilla\/5.0 (Linux; Android 14; sdk_gphone64_arm64 Build\/UE1A.230829.036.A1; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/113.0.5672.136 Mobile Safari\/537.36","lmt":0,"devicetype":4,"make":"Google","model":"sdk_gphone64_arm64","os":"Android","osv":"14","language":"en","carrier":"T-Mobile","mccmnc":"310-260","ifa":"1336c7ac-2b2e-490c-9cae-10ca1ad1abe1","h":2220,"w":1080,"connectiontype":2,"pxratio":2.75},"regs":{"ext":{"gdpr":1}},"user":{},"source":{"tid":"ffc2104e-5367-431a-ac7d-24e5e6680f80"},"ext":{"prebid":{"storedrequest":{"id":"0689a263-318d-448b-a3d4-b02e8a709d9d"},"cache":{"bids":{},"vastxml":{}},"targeting":{}}}}

Expected behavior /instl: 1 flag is not sending for Non Interstitial ads

Additional context We believe this is relevant code codes how the Prebid SDK add /instl: 1.

A similar condition in the iOS code checks only for the interstitial ad format, and not VAST. As a result, this issue doesn't happen on iOS.

ValentinPostindustria commented 4 weeks ago

During the investigation, we discovered that some constructors for Interstitial and Rewarded ad units do not have AdFormat.INTERSTITIAL. So even after applying the fix, they still have instl 0.