Skip to main content
Oath Inc.

Ad Server

GDPR and Ad Server Tags

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

Tag Parameters

  • Standard tag parameters - include tag domain, request type, gdpr, and gdpr_consent. Get the full list here Standard Tag Parameters.
  • Non-standard tag parameters - include the alias or cookie parameter. Find the full list here Non-Standard Tag Parameters.
Parameter     Description     Example


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 Oath (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: Denotes whether GDPR (General Data Protection Regulation) 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 Platform (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 adserver would always check for consent in gdpr_consent.

If the parameter gdpr is not present or the value is not valid the adserver will check the GDPR compliance nevertheless. Ad server will do a lookup of the users IP address to see if user is from EU or not.

  • Yes: gdpr=1
  • No: gdpr=0

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 adserver 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
  • Optional: 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="|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=100;target=_blank;misc='+new Date().getTime()+'"></scri'+'pt>');


</script><noscript><a href="|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=300" target="_blank"><img src="|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="|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;target=_blank"><script language="javascript" src="|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=700;target=_blank"></script><noscript><a href="|3.0|25|1021145|0|1|ADTECH;gdpr=;gdpr_consent=;loc=300" target="_blank"><img src="|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="|3.0...145|0|1|ADTECH;gdpr=;gdpr_consent=" target="_blank"><img src="|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|2.0|25|1423628|0|16|rettype=img;header=no;cookie=no;gdpr=;gdpr_consent=
Agency Tag|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|3.0|25|0|0|0|BeaconId=60;rettype=img;subnid=1;Section=[Homepage];gdpr=;gdpr_consent=

User tracking beacon tag|3.0|25|0|0|0|BeaconId=60;rettype=img;subnid=1;Section=[Homepage];gdpr=;gdpr_consent=

Bind request;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 = '|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>');

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="|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="|3.0|25|1423628|0|16|ADTECH;loc=300;key=key1+key2+key3+key4;gdpr=;gdpr_consent=" target="_blank">
<img src="|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


MultiAd Tag

<script type="text/javascript">
document.write('<scr'+'ipt type="text/javascript" src=";mode=multiad;plcids=1509794,1509793;loc=100;target=_blank;
key=bmw;gdpr=;gdpr_consent=;misc='+new  Date().getTime()+'"></scri'+'pt>');
<!-- 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);
<!-- 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);

Newsletter Tag|3.0|25|1149530|0|225|ADTECH;key=key1+key2+key3+key4;grp=[group];cookie=no;uid=no;gdpr=;gdpr_consent=
Raw Data tag;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   -->
<a href="|2.0|25|1423628|28756|16|ADTECH;loc=300;key=key1+key2+key3+key4;group=[group];gdpr=;gdpr_consent="
<img src="|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>
<ilayer id="ADTECHILAYER1423628" src="|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">
var ADTECH1423628_ReloadIntervall= 30000;
function ADTECHReloadBanner1423628() {
if (document.getElementById('ADTECHIFRAME1423628')) {
document.getElementById('ADTECHIFRAME1423628').src="|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="|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);
// -->