prebid / Prebid.js

Setup and manage header bidding advertising partners without writing code or confusing line items. Prebid.js is open source and free.
https://docs.prebid.org
Apache License 2.0
1.33k stars 2.08k forks source link

Feature Request: Prebid video module reads from userid module's id for ppid configuration #8151

Closed spormeon closed 2 years ago

spormeon commented 2 years ago

having spoke to @patmmccann on slack, it seems that passing the PPID with the method show in docs doesnt work with the prebid video moudule. Patrick said open an issue , so can look into it

patmmccann commented 2 years ago

It appears imasdk does not honor the gpt set ppid call. We need to simply reproduce or not

patmmccann commented 2 years ago

@mike-chowla Tagging this for the video meeting agenda

spormeon commented 2 years ago

can you push it to the "prebid video module" somehow, so can get sent along on the params? e.g. something like this:params: { iu: 'MYADUNITCODE', description_url: encodeURIComponent(window.location.href), output: 'vast', url: encodeURIComponent(window.location.href), pageUrl: encodeURIComponent(window.location.href), vpa: 'auto', vpmute: '1', vpos: 'preroll', ppid: 'GET/FILL PPID ID'

that will send it into GAM then?

bretg commented 2 years ago

Patrick and I believe this is a player issue.

Patrick found that GAM PPID can be set in the IMA SDK -- https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.ImaSdkSettings . But Prebid can't do this -- the player does. The only thing the Prebid video module does is create the GAM URL.

Patrick's offered to update the user ID module doc to clarify that GAM-PPID in video scenario is a player-specific thing.

spormeon commented 2 years ago

Ok, so say you got this, how do you get it in there? Or am i completely mising something here? var imaOptions = '{ "ppid": HOWDOIGETTHEPPIDHERE, "enableOmidBeta": true, "preventLateAdStart": false, "disableFlashAds": true, "prerollTimeout": 18000, "autoPlayAdBreaks": true, "vastLoadTimeout": 18000

as you can also send it on the "VAST master tag" , which is what we are building in effect: https://support.google.com/admanager/answer/10678356?hl=en#ppid

soemthing like this: &env=vp&ppid=123456789&gdfp_req=1&gdpr=1&iu=/10045643/Video-Corner-Units/VCU-test.com&output=vast&pageUrl=

bretg commented 2 years ago

the page would just call pbjs.getUserIdsAsEids(), parse the results, pick whatever ID it wants to use as the GAM PPID, and pass it to the player in the player-specific way

bretg commented 2 years ago

@patmmccann - David points out that ppid could be placed on the GAM URL. But maybe this already works. @spormeon , could you just try it?

            var videoUrl = pbjs.adServers.dfp.buildVideoUrl({
                adUnit: videoAdUnit,
                params: {
                    iu: '/19968336/prebid_cache_video_adunit',
                    ppid: ADDYOURPPIDHERE
                }
            });

Based on a quick look in the code, seems like everything in params is tacked onto the GAM URL

spormeon commented 2 years ago

Ye that works, thats what I was alluding to above and have it built into the video module to "auto" pick it up, with ppid: true or something in the params being as its being "tied" to SharedID https___ads_vmapurl_com_vidads_vmap_env_vp_gdfp_req_1_output_vast_unviewed_position_start_1_correlator_1647548415522_257C1647548415526_257C1647548415528_257C1647548415530_257C1647548415531_257C1647548415533_257C1647548415534_url_https_25253

prebidVideo4_29_0_js_—_Prebid_Publishers__Workspace_

p.s I got absolutly no clue what even sending this thing in/ along will even do, prob not even make a cent more, has anyone actually tried it?

patmmccann commented 2 years ago

I added the feature tag so that we can prioritize having the video module pick this up from the user id module

karimMourra commented 2 years ago

cc @jdwieland8282 this needs to be discussed with the ID committee - we need to agree on an interface and an implementation to solve this issue.

patmmccann commented 2 years ago

@karimMourra i dont follow why this needs to go to the id committee, it is just a feature to sync ima to what is being sent to gpt; what feedback or question do you expect from them?

karimMourra commented 2 years ago

@patmmccann we discussed this a month ago in the Video Committee sync and the consensus was that we believe the ID committee should have a say on the interface and implementation for automatically obtaining a ppid for the dfp module. Our assumption was that the solution should work for all Ids and any client module, not just DFP.

spormeon commented 2 years ago

Uhh, consent has already been gain at "video module" point by the cmp, its just "passing it along"? why would anyone uisng "header bidding" without a adserver need to pass a PPID any way, its tied to DFP/ GAM ?

patmmccann commented 2 years ago

I think this is ready for dev; buildVideoUrl in the dfp video module should be modified to automatically check if a ppid is configured in the userid sync and grab it just like https://github.com/prebid/Prebid.js/blob/d1a0f09cc2a605c19982dc7a8325c437c8dc0491/modules/userId/index.js#L664 does

spormeon commented 2 years ago

did this #8365 go out in p6.23.0 a few hours ago? If so, I'm no sure this is working , as just tried it with setting ppid source in userSync but nothing is getting built in the video urls? prebidVideo4_29_0_js_—_Prebid_Publishers__Workspace_

or does ppid:'' aslo have to be set on the params of the videomodule?

prebidVideo4_29_0_js_—_Prebid_Publishers__Workspace_

patmmccann commented 2 years ago

looks like it is in the 6.25 draft

https://github.com/prebid/Prebid.js/releases

patmmccann commented 2 years ago

i'll release a 6.24.1 and can you test it then?

spormeon commented 2 years ago

Ok, I see 6.25.0, does that one go to: https://docs.prebid.org/download.html as I always build off of that

patmmccann commented 2 years ago

It is in 6.24.1, along with a bug fix for webpack

spormeon commented 2 years ago

Got it, seems to work fine, cheers