Ad Server and GDPR

Due to the General Data Protection Regulation (GDPR), all standard and non-standard tag parameters must pass to the Ad Server acknowledgment of consent by the user allowing the use of personal data for targeting and other purposes. See the Verizon Media Ad Server Tag References Document for full details on how to define Standard Tags and Non-Standard Tags.

 

Tag Parameters

 

Parameter Description Example
gdpr_consent

This parameter passes a base64 websafe encoded IAB user consent string. The string represents user consent settings and contains the purpose and vendor bits. gdpr_consent must be sent along with the gdpr parameter.

  • If gdpr=1, then adserver checks for consent in the gdpr_consent string. The consent is encoded when receiving. Ad Server decodes it and checks if user allows "personalized advertising" (purpose) for Verizon Media(vendor).
  • If gdpr=1, but the consent parameter value is not valid or no consent parameter is delivered with the ad request, Ad Server will opt out the user. In this case personal user data cannot be logged or used for targeting.
Source: iAB Digital Advertising presentation
gdpr

gdpr: Denotes whether GDPR compliance applies to this user or not. If any of the below conditions is true, the request is subject to GDPR (gdpr=1) and Ad Server validates the consent string from the gdpr_consent parameter:

  • The gdpr_consent parameter is present in the request
  • The page’s content targets EU users (needs to be defined by the Publisher for example with the help of a Consent Management Provider(CMP)
  • The user is located in EU (Ad Server will perform a lookup of the users IP in case parameter is not defined)

In case the network owner (= Publisher) knows his websites and users are always under GDPR compliance a network setting in the backend can be set corresponding to “always gdpr=1”. In this case this parameter would not be needed and the Ad Server would always check for consent in gdpr_consent.

If the parameter gdpr is not present or the value is not valid the Ad Serverwill check the GDPR compliance . Ad Server performs a lookup of the users IP address to see if user is from EU or not.

Yes: gdpr=1
No: gdpr=0
gdpr_pd

Used for generic URL parameters and only in connection with Key Value and Keyword Targeting.

  • If gdpr_pd=0, no personal data (from the perspective of the callee) is included.
  • If gdpr_pd=1, the Publisher is using some type of personal data in values of these parameters.

If no consent is present the Ad Server will ignore data in the KV or keyword parameters for Targeting and delete data before saving data from the ad request.

Note: "defined" URL parameters, must state whether or not they include personal data.

Default - gdpr_pd=1

Optiona - gdpr_pd=0

 

Standard Tag Examples

Standard Tags Example Code
Example
JavaScript tag
<!--JavaScript Tag // Tag for network 25: CS - Doku // Website: ADTECH // Page: Home // Placement: Home 468x60 (1021145) // created at: Jan 12, 2010 3:44:22 PM--> <script language="javascript"><!-- document.write('<scr'+'ipt language="javascript1.1" src="http://adserver.adtech.de/addyn|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=100;target=_blank;misc='+new Date().getTime()+'"></scri'+'pt>'); //--> </script><noscript><a href="http://adserver.adtech.de/adlink|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=300" target="_blank"><img src="http://adserver.adtech.de/adserv|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=300" border="0" width="468" height="60"></a></noscript> <!-- End of JavaScript Tag -->
Example
IFRAME tag
<!--IFRAME Tag // Tag for network 25: CS - Doku // Website: ADTECH // Page: Home // Placement: Home 468x60 (1021145) // created at: Jan 12, 2010 3:43:14 PM --> <IFRAME WIDTH="468" HEIGHT="60" SCROLLING="No" FRAMEBORDER="0" MARGINHEIGHT="0" MARGINWIDTH="0" SRC="http://adserver.adtech.de/adiframe|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;target=_blank"><script language="javascript" src="http://adserver.adtech.de/addyn|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=700;target=_blank"></script><noscript><a href="http://adserver.adtech.de/adlink|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=300" target="_blank"><img src="http://adserver.adtech.de/adserv|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=300" border="0" width="468" height="60"></a></noscript></IFRAME> <!-- End of IFRAME Tag -->
Example Image tag <!-- Image Tag (Tag for Images only) // TAG for network 25: CS - Doku // Website: ADTECH // Page: Home // Placement: Home 468x60 (1021145) // created at: Jan 12, 2010 3:44:03 PM --> <a href="http://adserver.adtech.de/adlink|3.0...145|0|1|ADTECH;gdpr=;gdpr_consent=" target="_blank"><img src="http://adserver.adtech.de/adserv|3.0...145|0|1|ADTECH;gdpr=;gdpr_consent=" border="0" height="60" width="468" alt="[Alt-Text]"></a> <!-- End of Image Tag -->

 

Non-Standard Tag Examples

Non-Standard Tags Example Code
Adxml tag http://adserver.adtech.de/?adxml|2.0|25|1423628|0|16|rettype=img;header=no;cookie=no;gdpr=;gdpr_consent=

Agency Tag

http://adserver.adtech.de/addyn|3.0|19|1055380|0|6|ADTECH;AdId=1069834;BnId=-1;loc=100;target=_blank;misc=[timestamp];rdclick=;gdpr=;gdpr_consent=
Beacon tags

Transaction tracking beacon tag http://adserver.adtech.de/utrack|3.0|25|0|0|0|BeaconId=60;rettype=img;subnid=1;Section=[Homepage];gdpr=;gdpr_consent=

User tracking beacon tag

http://adserver.adtech.de/utrack|3.0|25|0|0|0|BeaconId=60;rettype=img;subnid=1;Section=[Homepage];gdpr=;gdpr_consent=

Bind Request

http://adserver.mydomain.de/bind?ckey1=cookiename1;cvalue1=cookievalue1;ckey2=mykey;expiresDays=90;networkId=25;subNetworkId=1;gdpr=;gdpr_consent=

Note: A Bind Request is required to write cookies.To support GDPR the bind request must include the networkId and subNetworkId parameters. Without these parameters, Ad Server is unable to verify the network is trusted or enabled for consent override.

Friendly iframe tag <SCRIPT TYPE="text/javascript"> var adtech_adurl_1423628 = 'http://adserver.adtech.de/addyn|3.0|25|1423628|0|16|ADTECH;loc=100;target=_blank;key=key1+key2+key3+key4;;gdpr=;gdpr_consent=; misc='+new Date().getTime()+''; document.writeln('<DIV ID="ADTECH_AdContainer_1423628"><IFRAME ID="ADTECH_IFRAME_1423628" FRAMEBORDER="0" STYLE="display:none;width: 0px; height: 0px;" SRC="/adtech/stubfile.html"></IFRAME></DIV>'); </SCRIPT>
JavaScript Tag (with GroupID Generator) <!--JavaScript Tag // Tag for network 25: CS - Testnetzwerk // Website: ADTECH // Page: Homepage // Placement: Homepage-728x90-1 x 1 (1423628) // created at: Jan 14, 2010 4:23:06 PM--> <script language="javascript"> <!-- if (window.adgroupid == undefined) { window.adgroupid = Math.round(Math.random() * 1000); } document.write('<scr'+'ipt language="javascript1.1" src="http://adserver.adtech.de/addyn|3.0|25|1423628|0|16|ADTECH;loc=100;target=_blank;key=key1+key2+key3+key4; grp=;gdpr=;gdpr_consent='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>'); //--> </script><noscript><a href="http://adserver.adtech.de/adlink|3.0|25|1423628|0|16|ADTECH;loc=300;key=key1+key2+key3+key4;gdpr=;gdpr_consent=" target="_blank"> <img src="http://adserver.adtech.de/adserv|3.0|25|1423628|0|16|ADTECH;loc=300;key=key1+key2+key3+key4;gdpr=;gdpr_consent=" border="0" width="1" height="1"></a></noscript> <!-- End of JavaScript Tag -->
Mobile Tags

EU http://a.adtech.de/addyn/3.0/1119.1/0/0/0/ADTECH;loc=100;grp=[group];gdpr=;gdpr_consent=;random=129906372986

US http://a.adtechus.com/addyn/3.0/1119.1/0/0/0/ADTECH;loc=100;grp=[group];gdpr=;gdpr_consent=;random=129906372986

MultiAd Tag <script type="text/javascript"> document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/multiad/3.0/25/0/0/-1/ADTECH;mode=multiad;plcids=1509794,1509793;loc=100;target=_blank; key=bmw;gdpr=;gdpr_consent=;misc='+new Date().getTime()+'"></scri'+'pt>'); </script> <!-- call the javascript function to show the banner for the first placement, if a default ad is delivered it will be shown (because the third parameter is false) --> <script type="text/javascript"> ADTECH_showAd(1509794, document, false); </script> <!-- call the javascript function to show the banner for the second placement, if a default ad is delivered the function does nothing (because the parameter 'skipdefaults' is true) --> <script type="text/javascript"> ADTECH_showAd(1509793, document, true); </script> </body> </html>
Newsletter Tag http://adserver.adtech.de/adserv|3.0|25|1149530|0|225|ADTECH;key=key1+key2+key3+key4;grp=[group];cookie=no;uid=no;gdpr=;gdpr_consent=
Raw Data tag http://adserver.adtech.de/?adrawdata/3.0/25.1/1449005/0/16/header=yes;cookie=no;adct=204;grp=[group];gdpr=;gdpr_consent=
Reload Tag !-- Reload Tag (URL Tag for Rich Media) // Tag for network: CS - Testnetzwerk (ID: 25) ++ website:ADTECH ++ content unit: Homepage-728x90-1 x 1 (CU ID: 1423628) ++ Date: Jan 14, 2010 4:24:48 PM --> <nolayer><IFRAME WIDTH=1 HEIGHT=1 NORESIZE SCROLLING=No FRAMEBORDER=0 MARGINHEIGHT=0 MARGINWIDTH=0 ID="ADTECHIFRAME1423628" SRC="http://adserver.adtech.de/adiframe|2.0|25|1423628|28756|16|ADTECH;key=key1+key2+key3+key4;group=[group]"> <a href="http://adserver.adtech.de/adlink|2.0|25|1423628|28756|16|ADTECH;loc=300;key=key1+key2+key3+key4;group=[group];gdpr=;gdpr_consent=" target="_blank"> <img src="http://adserver.adtech.de/adserv|2.0|25|1423628|28756|16|ADTECH;loc=300;key=key1+key2+key3+key4;group=[group];gdpr=;gdpr_consent=" border=0 width="1" height="1"></a> </IFRAME></nolayer> <ilayer id="ADTECHILAYER1423628" src="http://adserver.adtech.de/adiframe|2.0|25|1423628|28756|16|ADTECH;key=key1+key2+key3+key4;group=[group];gdpr=;gdpr_consent=" WIDTH="1" HEIGHT="1" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"> </ilayer> <script> <!-- var ADTECH1423628_ReloadIntervall= 30000; function ADTECHReloadBanner1423628() { if (document.getElementById('ADTECHIFRAME1423628')) { document.getElementById('ADTECHIFRAME1423628').src="http://adserver.adtech.de/adiframe|2.0|25|1423628|28756|16|ADTECH;key=key1+key2+key3+key4;group=[group];gdpr=;gdpr_consent=;misc="+new Date().getTime(); }else if (document.ADTECHBanner1423628) { document.ADTECHBanner1423628.src="http://adserver.adtech.de/adserv|2.0|25|1423628|28756|16|ADTECH;loc=300;key=key1+key2+key3+key4;group=[group];gdpr=;gdpr_consent=;misc="+new Date().getTime(); } else return; setTimeout("ADTECHReloadBanner1423628()", ADTECH1423628_ReloadIntervall); } setTimeout("ADTECHReloadBanner1423628()", ADTECH1423628_ReloadIntervall); // --> </script>