How to implement Google AdX & OpenBidding in Pubstack?

Summarized How to implement Google AdX & OpenBidding in Pubstack?

In order to have Google AdX & OB data available within Pubstack, you'll have to follow the steps below :

1. Within GAM

    1. Create a new Role "Pubstack" with the following rights.     
    2. Add "help@pubstack.io" as a new user.
    3. Add a new service account, instructions: https://support.google.com/admanager/answer/6078734?hl=en. If the support team did not provide the ID, please send an email to support@pubstack.io. The ID will look like this : scope-XXXXXXXX@pubstack-gam-integration.iam.gserviceaccount.com.
    4. Add the Pubstack Role to the new user and service account.
    5. Make sure the accounts have access to the inventory. Set "All Entities" as their teams.

2. Within Prebid

  • Within the Prebid configuration (client-side), every prebid adUnit must be matched with a GAM adUnit, so that we can display the corresponding AdX revenue in Pubstack. In order to do that, you need to add the field "pubstack"."adUnitPath" to all ad units. This adUnitPath must be constructed as such: '/networkId/top_level1/level2/level3' (same as the DFP adUnitPath):
{
code: `adunit-top`,
pubstack: {
adUnitPath: '/networkId/top_level1/level2/level3'
},
mediaTypes: ...
bids: [{ bidder: 'appnexus', params: ... }],
},
  • Please keep in mind that the same prebid adUnit may have several different adUnitPath, in which case we will display the revenue from all of those in Pubstack for this adUnit. However, two different prebid adUnits cannot have the same adUnitPath, because we wouldn't know how to divide up the AdX revenue from a single GAM adUnit between 2 adUnits on Pubstack. 
  • In order to avoid this issue, you may differentiate your pubstack adUnitPaths by using a GAM key-value set as custom dimension, and then integrating this information in the pubstack.adUnitPath as follows: "/networkId/top_level1/level2/level3?key=value"
{
code: `adunit-top`,
pubstack: {
adUnitPath: '/networkId/top_level1/level2?position=top'
},
mediaTypes: ...
bids: [{ bidder: 'appnexus', params: ... }],
},
{
code: `adunit-bottom`,
pubstack: {
adUnitPath: '/networkId/top_level1/level2?position=bottom'
},
mediaTypes: ...
bids: [{ bidder: 'appnexus', params: ... }],
},

 

Please make sure the key-value used is predefined (dynamic key-values cannot be set as custom dimensions) and set as custom dimension:

If necessary, it is possible to add several key values in the Pubstack.adUnitPath, using the following sintax:

adUnitPath: '/networkId/top_level1/level2?position=bottom&page=article'
  • You may also use our custom adunit name feature in order to merge (in Pubstack) adUnits that have the same GAM adUnitPath. This is especially useful for lazy loaded adUnits.
{
code: `adunit_middle_1`,
pubstack: {
adUnitName: 'adunit_middle',
adUnitPath: '/networkId/top_level1/level2/adunit_middle'
},
mediaTypes: ...
bids: [{ bidder: 'appnexus', params: ... }],
},
{
code: `adunit_middle_2`,
pubstack: {
adUnitName: 'adunit_middle',
adUnitPath: '/networkId/top_level1/level2/adunit_middle'
},
mediaTypes: ...
bids: [{ bidder: 'appnexus', params: ... }],
},
  • Our support team is here to help. If in doubt, do not hesitate to email us at support@pubstack.io

Once the adUnitPaths are implemented, we will run a check on your inventory to confirm that the mapping is successful before activating AdX for your account. This step is necessary to make sure the data you see is accurate.

Then, you will be able to see AdX data in Pubstack.

  • Alternatively, in some cases, if you have the Prebid gpt-pre-auction module, we may be able to recover the GAM adUnit info from the ortb2imp field.
    The Pubstack support team must first confirm that this fallback is possible.