Skip to content

Latest commit

 

History

History
400 lines (391 loc) · 14.5 KB

dsa_transparency.md

File metadata and controls

400 lines (391 loc) · 14.5 KB

DSA Transparency

This specification is stewarded by IAB Tech Lab's Global Privacy Working Group. IAB Tech Lab and IAB Europe will continue partnership to steward this solution. IAB Tech Lab will maintain the technical specifications. IAB Europe will provide policy guidance, such as implementation guidelines.

Introduction

The Digital Services Act (DSA) was adopted in October 2022, and the date of applicability for Platform companies is 16 February 2024.  Along with the Digital Markets Act (DMA), the DSA is intended to improve the confidence of both private consumers and business users of Online Platforms in the products and services they access via those platforms, as well as the advertising they are exposed to on them, and to ensure a level playing field between platforms.  The DSA lays down transparency obligations in relation to advertising; these obligations apply to Online Platforms, “Very Large Online Platforms” (VLOPs), and “Very Large Online Search Engines” (VLOSEs) as defined by the Digital Services Act.  

Article 26 of the DSA requires Online Platforms to ensure that users have real-time access to certain elements of information about any ad shown to them on an Online Platform:

  • That the ad is indeed an ad;
  • The identity of the advertiser;
  • The identity of the party that financed the ad, if it is different from the advertiser;
  • Information about the “main parameters” used to select the ad presented to the end-user;
  • Where applicable, information about any means users may have at their disposal to change those main parameters.  

Although the legal obligation to provide the user-facing information disclosures applies to Online Platforms, it is clear that in many advertising scenarios, those platforms will need to rely on third-party vendors for the data that will be required to populate the disclosures.  To ensure that the third parties are equipped to provide this support, this technical specification standardizes the collection, compilation and transport of the data, leaving Online Platforms free to decide how they wish to make the user-facing disclosures, including if they want to delegate the disclosures to another party.  

This technical specification provides data formats and transport for the advertising industry to implement relevant DSA transparency information. This solution should be applicable across most relevant use cases including; programmatic and non-programmatic media buys, channels including desktop web, mobile (web/app), video, CTV.

Object Specification for OpenRTB 2.X

Bid Request

Object: Regs

Attribute Type Description
ext.dsa object  Extension for DSA transparency information

Object: DSA

Attribute Type Description
dsarequired integer Flag to indicate if DSA information should be made available. This will signal if the bid request belongs to an Online Platform/VLOP, such that a buyer should respond with DSA Transparency information based on the pubrender value.

0 = Not required

1 = Supported, bid responses with or without DSA object will be accepted

2 = Required, bid responses without DSA object will not be accepted

3 = Required, bid responses without DSA object will not be accepted, Publisher is an Online Platform

pubrender integer Flag to indicate if the publisher will render the DSA Transparency info. This will signal if the publisher is able to and intends to render an icon or other appropriate user-facing symbol and display the DSA transparency info to the end user.

0 = Publisher can't render

1 = Publisher could render depending on adrender

2 = Publisher will render

datatopub integer Independent of pubrender, the publisher may need the transparency data for audit purposes.

0 = do not send transparency data

1 = optional to send transparency data

2 = send transparency data

transparency array of object Array of objects of the entities that applied user parameters and the parameters they applied.

Object: Transparency 

Attribute Type Description
domain string  Domain of the entity that applied user parameters 
dsaparams array of integer Array for platform or sell-side use of any user parameters (using the list provided by DSA Transparency Taskforce). Note; See definition and list of possible user parameters as listed here, applied consistently in both bid request and/or bid response.

Sample OpenRTB 2.6 Bid Request with DSA transparency:

{
    "id": "80ce30c53c16e6ede735f123ef6e32361bfc7b22",
    "at": 1,
    "cur": [
        "USD"
    ],
    "regs": {
        "ext": {
            "dsa": {
                "dsarequired": 3, 
                "pubrender": 0,
                "datatopub": 2,
                "transparency": [{
                    "domain": "platform1domain.com",
                    "dsaparams": [1]},
                    {"domain": "SSP2domain.com",
                    "dsaparams": [1,2]
                    }]
            }
        }
    },
    "imp": [{
        "id": "1"
    }],
    "site": {
        "id": "102855"
    },
    "user": {
        "id": "55816b39711f9b5acf3b90e313ed29e51665623f"
    }
}

Bid Response

Object: Bid

Attribute Type Description
ext.dsa object  DSA Ad Transparency information

Object: DSA

Attribute Type Description
behalf string Advertiser Transparency: Free UNICODE text string with a name of whose behalf the ad is displayed. Maximum 100 characters.
paid string Advertiser Transparency: Free UNICODE text string of who paid for the ad. Must always be included even if it's the same as what is listed in the behalf attribute. Maximum 100 characters
transparency array of object Array of objects of the entities that applied user parameters and the parameters they applied.
adrender integer Flag to indicate that buyer/advertiser will render their own DSA transparency information inside the creative.

0 = buyer/advertiser will not render

1 = buyer/advertiser will render

Object: Transparency

Attribute Type Description
domain string Domain of the entity that applied user parameters 
dsaparams array of integer Array of buy-side applied user parameter targeting (using the list provided by DSA Transparency Taskforce). Include support for multiple vendors who may add their own user-targeting parameters.

Sample  OpenRTB 2.6 Bid Response with DSA transparency:

{
    "id": "1234567890",
    "bidid": "abc1123",
    "seatbid": [{
   	 "seat": "512",
   	 "bid": [{
   		 "id": "1",
   		 "nurl": "http://adserver.com/winnotice?impid=102",
   		 "iurl": "http://adserver.com/pathtosampleimage",
   		 "adomain": [
   			 "advertiserdomain.com"
   		 ],
   		 "ext": {
   			 "dsa": {
   				 "behalf": "Advertiser",
   				 "paid": "Advertiser",
   				 "transparency": [{
   					 "domain": “dsp1domain.com”,
   					 "dsaparams": [1,2]
   				 }],
   				 "adrender": 1
   			 }
   		 }
   	 }]
    }]
}

The definitions below are not meant to be consumer-facing messages.

User Parameter ID User Parameter Definition TCF Purpose IDs
1 Profiling Information about the user, collected and used across contexts, that is about the user's activity, interests, demographic information, or other characteristics. TCF Purposes 4
2 Basic advertising Use of real-time information about the context in which the ad will be shown, to show the ad, including information about the content and the device, such as: device type and capabilities, user agent, URL, IP address, non-precise geolocation data. Additionally, use of basic cross-context information not based on user behavior or user characteristics, for uses such as frequency capping, sequencing, brand safety, anti-fraud. TCF Purpose 2
3 Precise geolocation The precise real-time geolocation of the user, i.e. GPS coordinates within 500 meter radius precision. TCF Special Feature 1

URL-based support

Some ad systems may depend on URLs to communicate information. The following parameters and macros can be used to carry relevant DSA information in these cases.

URL Parameter Corresponding Macro Representation in URL
dsarequired DSAREQUIRED &dsarequired=${DSAREQUIRED}
dsabehalf DSABEHALF &dsabehalf=${DSABEHALF}
dsapaid DSAPAID &dsapaid=${DSAPAID}
dsaparams DSAPARAMS &dsaparams=${DSAPARAMS}
dsatransparency DSATRANSPARENCY &dsatransparency=${DSATRANSPARENCY}
dsapubrender DSAPUBRENDER &dsapubrender=${DSAPUBRENDER}
dsadatatopubs DSADATATOPUBS &dsadatatopubs=${DSADATATOPUBS}
Macro Possible Values Definition
${DSAREQUIRED}

0 = Not required

1 = Supported, bid responses with or without DSA object will be accepted

2 = Required, bid responses without DSA object will not be accepted

3 = Required, bid responses without DSA object will not be accepted, Publisher is an Online Platform

Indicates if DSA information should be made available. 
${DSABEHALF} Free UNICODE text string with a name of whose behalf the ad is displayed.

Example: Advertiser

Populated from the DSP bid response.
${DSAPAID} Free UNICODE text string of who paid for the ad

Example: Advertiser

Populated from the DSP bid response.
${DSAPARAMS} Any combination of the integer values representing the user parameters. When multiple values are included, they should be separated by an underscore “_”. 

Example: 1_2_3

Populated based on the combination of information from the bid request and bid response user parameters. 
${DSATRANSPARENCY} Composed of the two items from the transparency object; the domain string and the params array. These two items are separated by a tilde “~”. Values in the params array are separated by an underscore “_”. Multiple transparency objects are separated by two tildes “~~”.

Example: &dsatransparency=platform1domain.com~1~~SSP2domain.com~1_2

Populated based on the transparency object from the bid request and the bid response.  
${DSAPUBRENDER}

0 = Publisher can’t render

1 = Publisher could render depending on adrender

2 = Publisher will render

Signals if the publisher is able to and intends to render an icon or other appropriate user-facing symbol and display the DSA transparency info to the end user.
${DSADATATOPUBS}

0 = do not send transparency data

1 = optional to send transparency data

2 = send transparency data

Independent of pubrender, the publisher may need the transparency data for audit purposes.

Changelog

Date Comments
January 26, 2024 Updates to attributes to avoid reserved words:
  • Update of the required attribute name to dsarequired
  • Update of the params attribute name to dsaparams
  • January 16, 2024 Original publish