Digital Service Act (DSA) implementation

This article describes how to use the ad transparency features of Relevant Yield - and how it can be used for sites and platforms that falls under the DSA legislation.

For online marketplaces and other sites and apps where the Digital Service Act may apply, Relevant Yield provides built-in functionality to help complying with those rules when headerbidding ads are displayed. This includes:

  • A customizable ad info "badge" for Prebid ads that links to a page with information about the ad, such as the advertiser and other transparency information. Without customization it will appear as in the screenshot above.
  • Controls for what transparency information that should be sent, as specified by the IAB - along with the (opt-in) possibility to reject bids lacking a DSA-object.

As default, creatives lacking DSA transparency information in the way specified by IAB will still be shown, along with best effort transparency information using e.g. the advertiser domain (adomain in OpenRTB).

The ad info badge works the same across Web, App, AMP and with our Prebid.JS adapter.

Notice: For some web sites it might make more sense in the long run to to implement DSA transparency manually in the site code, instead of using this built-in functionality. Jump across to the Manual implementation on web section for guidelines on how to do that.

Important: For web the bid adapters must support setting the DSA-object, therefore it's recommended to upgrade your Prebid build to v8.37 or later.

Enabling of the ad info badge and DSA data

All settings are available on the global, account, site and prebid configuration levels under the Prebid parameters menus. You will find the settings under Generic Prebid Config Data and Ad transparency, like below:

  • Show ad information badge - This will enable display of the "Ad info" badge on all Prebid ads, no matter if they contain a DSA-object or not.
  • Enable sending DSA data - This will add DSA-objects in the bid requests from the client. This should be enabled in order to make SSPs and DSPs send back DSA-objects with transparency information in the bid responses.

Information page with and without DSA information.

When the bid supplied a DSA-object, the information will be displayed similar to below:

3

  • Information obtained from the paid, behalf and transparency fields in the DSA object will be included.
  • If no paid or behalf field exist in the object, then Advertiser domain will be shown instead when available,
  • The name of the SSP will be included in Advertiser system.

When no DSA object is provided in the bid the information page will be display as this:

3-1

  • Advertiser domain will be used when available. Notice that this field is not always available, as in a minority of cases this information is not included in the bid response.
  • The SSP will be listed under Advertiser system.
  • Without a DSA-object we can't be certain what parameters that affected the selection of the ad. Hence the phrase "The following parameters might have been.." is used for the parameter box.
    - If the user has consented TCF Purpose 4 "Use profiles to select personalised advertising", or if a CMP is not present - then Profiling will be shown.
    - For users that have not accepted Purpose 4, Basic advertising will be shown.

UI customization

The HTML of the ad information "badge" that will be inserted into the creative's HTML is editable via the HTML for ad information badge setting.

This makes it possible to change the appearance, like colors and positioning inside the ad. Notice that to just change the text (that defaults to "Ad info") you should use the Text in badge setting instead. The following are some of the macros that can be used in the HTML. They must be used inside double "{" "}" marks - just as in the screenshot above. (omitted here as they clashes with the markup on this help-page)

  • link - The URL to the information page for the bid. It is constructed by concatenating the content of the Ad information page base URL setting and a Base64-encoded JSON-object containing the (possible) DSA object in the bid along with additional information.
  • infoText - The text set in the Text in badge setting.
  • target - Set by the Info window open behavior (target) setting.
  • encoded - Base64-encoded JSON-object containing the (possible) DSA object in the bid along with additional information. On web, this additional information will include a divId field corresponding to the placement on the page that he bid belongs to.

Other UI settings are listed below:

  • Text in badge - the text on the link, defaults to "Ad info".
  • Info window open behavior (target) - Determines if the information-page should be opened in a new tab or inside the ad placement itself, etc.
    If using Open inside ad (_self) - then the information-page will slowly scroll up and down automatically if needed, as the user normally can't scroll himself in that case. Notice: in apps the "Open inside ad.." option might require code changes to work as expected.
  • Override logo URL on info page... - Changes the logo on the default information destination page.
  • Ad information page base URL - Makes it possible to change the information page to something else. The link will be constructed by this URL concatenated with a Base64-encoded JSON-object containing the (possible) DSA object in the bid along with additional information.

DSA settings

When Enable sending DSA data has been selected the settings below controls the behavior. They correspond to the the settings in IABs OpenRTB extensions for DSA.

  • DSA required - this sets the dsarequired value in the bid requests.
  • Enforce DSA required by rejecting bids - If DSA required is set to one of the two "Required.." options (dsarequired is 2 or 3), then enabling this will reject all bids that lacks DSA object. Please notice that, at the time of writing - this combination of options is likely to reduce Prebid revenue dramatically. 
  • Data to publisher - sets the datatopub value in the bid requests.
  • Don't show own information badge if bid indicates "adrender=1" - If Show ad information badge is selected but the bid contains an adrender value of >=1, then the ad will not be shown. Instead it is assumed that the creative itself will render all necessary information. This will set the pubrender value in the bid requests to 1 instead of 2.
  • DSA Transparency object to send - sets the transparency value in the bid requests.

Manual implementation on web

On web it's possible to handle both sending of DSA-objects and to handle bids' DSA-objects without using any of the settings above. This can be done by combining the following JavaScript functions:

Optionally it's also possible to to use the dsaControl Prebid.js module to reject bids lacking DSA-objects.

Example:

window.relevantDigital = window.relevantDigital || {};
relevantDigital.cmd = relevantDigital.cmd || [];
relevantDigital.cmd.push(function() {

   // Set DSA object for outgoing bid requests
   relevantDigital.addPrebidConfig({
      ortb2: {
         regs: {
            ext: {
               dsa: {
                  dsarequired: 1,
                  pubrender: 2,
                  datatopub: 2,
                  transparency: [{
                     domain: 'platform1domain.com',
                     dsaparams: [1, 2]
                  }]
               }
            }
         }
      }
   });

   // Listen for winning bids, can be used for drawing
   // own ad information ui
   window.pbjs = window.pbjs || {};
   pbjs.que = pbjs.que || [];
   pbjs.que.push(() => pbjs.onEvent('bidWon', (bid) => {
      const instance = relevantDigital.getAdUnitInstanceByBid(bid);
      if (instance) {
       const { slot } = instance;
         console.info('div id: ', slot.getSlotElementId());
         console.info('placement: ', slot.getAdUnitPath());
         console.info('bid DSA object: ', bid.meta?.dsa);
      }
   }));

   // We can now start the ad loading as normal
   relevantDigital.loadPrebid({
      ...
   });
});