Development Newsletters

Release: 07-06-2018

List of new features and major fixes for this release:

  • Consent Management Platforms support
  • New macros - GDPR_APPLIES and GDPR_CONSENT
  • Changes in RTB/SSP templates

Consent Management Platforms support

AdOcean now supports Consent Management Platforms that are compatible with IAB Europe's GDPR Transparency & Consent Framework (http://advertisingconsent.eu/). The GDPR compliant consent string is checked by AdOcean automatically, so if you already use such a CMP - AdOcean takes the consent string into account (excluding impression scripts - you can find more details below). If you use a CMP that is not compatible with the IAB Framework or you want to overwrite the CMP settings, you can use gdprApplies and gdprConsent configuration variables. Below you can find details for different types of placement codes.



Automatic support

For most types of placement codes, support for CMPs compatible with the IAB Framework is automatic. However, if you use impression scripts, you should update them according to the new format available in the AdOcean interface. Below you can see templates for this kind of scripts.



Impression scripts
  • Master code
  • 
    <script type="text/javascript" src="//HOST/files/js/aomini.js"></script>
    <script type="text/javascript">
        /* (c)AdOcean 2003-2018 */
        /* MASTER: NAME */
        (window['aomini'] || (window['aomini'] = [])).push({
            cmd: 'master',
            server: 'HOST',
            id: 'AD_ID',
            consent: null
        });
    </script>
    


  • Slave code
  • 
    <div data-ao-sid="AD_ID" style="display: none;"></div>
    <script type="text/javascript">
        /* (c)AdOcean 2003-2018 */
        /* SLAVE: NAME */
        (window['aomini'] || (window['aomini'] = [])).push({
            cmd: 'slave',
            id: 'AD_ID'
        });
    </script>
    


  • Placement code
  • 
    <script type="text/javascript" src="//HOST/files/js/aomini.js"></script>
    <div data-ao-pid="AD_ID" style="display: none;"></div>
    <script type="text/javascript">
        /* (c)AdOcean 2003-2018 */
        /* PLACEMENT: NAME */
        (window['aomini'] || (window['aomini'] = [])).push({
            cmd: 'display',
            server: 'HOST',
            id: 'AD_ID',
            consent: null
        });
    </script>
    


Other CMPs support

If you use a CMP that is not compatible with the IAB Framework or a custom solution, you can send GDPR-related information explicitly in AdOcean codes with the use of gdprApplies and gdprConsent configuration variables.

  • gdprApplies - determines whether provisions of the EU General Data Protection Regulation (GDPR) apply to the user; variable accepts values true or false.
  • gdprConsent - consent string consistent with the IAB standard.
Below you can find examples of such a configuration for different types of placement codes.



Placement codes


<script type="text/javascript" src="//myao.adocean.pl/files/js/ado.js"></script>
<script type="text/javascript">
/* (c)AdOcean 2003-2018 */

if(typeof ado!=="object"){ado={};ado.config=ado.preview=ado.placement=ado.master=ado.slave=function(){};}
ado.config({mode: "old", xml: false, consent: true, gdprApplies: null, gdprConsent: null, characterEncoding: true});
ado.preview({enabled: true});
</script>



Impression scripts

  • Master code
  • 
    <script type="text/javascript" src="//HOST/files/js/aomini.js">
    <script type="text/javascript">
        /* (c)AdOcean 2003-2018 */
        /* MASTER: NAME */
        (window['aomini'] || (window['aomini'] = [])).push({
            cmd: 'master',
            server: 'HOST',
            id: 'AD_ID',
    	keys: [],
    	vars: {},
    	gdprApplies: null,
    	gdprConsent: null,
            consent: null
        });
    </script>
    


  • Placement code
  • 
    <script type="text/javascript" src="//HOST/files/js/aomini.js"></script>
    <div data-ao-pid="AD_ID" style="display: none;"></div>
    <script type="text/javascript">
        /* (c)AdOcean 2003-2018 */
        /* PLACEMENT: NAME */
        (window['aomini'] || (window['aomini'] = [])).push({
            cmd: 'display',
            server: 'HOST',
            id: 'AD_ID',
    	keys: [],
    	vars: {},
    	gdprApplies: null,
    	gdprConsent: null,
            consent: null
        });
    </script>
    


Please be informed that this format of impression scripts is not supported in IE8 and older.

Older versions of impression scripts will still work properly, but without CMP support.


Iframe placement codes



<iframe src="//myao.adocean.pl/files/html/iframe.html#configmode=old&configgdprApplies=true&configgdprConsent=BOO3aB-OO3aB-ABABBPLAB-AAAAUjABgKQApIA&configxml=false&configcharacterEncoding=true&previewenabled=true&previewemiter=myao.adocean.pl&previewid=y6g3tTbLJv6vLRZ.AfyeiXkCPM0gL3CNAik2rwTzhKD.N7&placementid=ado-yyhREDb7HNPqmavzsjYUAeT5Xhtd3PrzUllbgM_HV5f.E7&placementserver=myao.adocean.pl" height="100%" width="100%" style="border:0;overflow:hidden;display:block;position:relative;" allowtransparency="true" seamless="seamless" scrolling="no"></iframe>



Google AMP

Currently Google AMP codes do not support CMP.


Prebid adserver config


window.adocf = window.adocf || {cmd: []};

window.adocf.cmd.push({"config": [{hb: true, gdprApplies: null, gdprConsent: null, consent: null, mode: "new", xml: false, characterEncoding: true}]});



Video advertisements

In the case of requests for video ads, CMP is not supported. Information about the consent should be sent with the use of nc parameter described in the orevious newsletter.



Summary

One method should be used to transmit user consent data to AdOcean.

  • If you use a CMP that is not compatible with the IAB Framework or a custom solution for gathering consents or want the consent string to be sent explicitly in AdOcean codes, you should use gdprApplies and gdprConsent configuration variables. Values of these variables have the highest priority when checking consents.
  • If you use a CMP that is compatible with the IAB Framework, you should check whether the type of placement codes used by you is supported automatically or requires a change. The value of the consent configuration variable is ignored.
  • If GDPR doesn't apply to the user, you can set "gdprApplies=false."
  • If you don't use a CMP or gather a simple form of consent (yes/no for all partners), you should use the consent configuration variable only.



New macros - GDPR_APPLIES and GDPR_CONSENT

We've introduced new macros:

  • <%%GDPR_APPLIES%%> - can be used to check whether provisions of the EU General Data Protection Regulation (GDPR) apply to the user; expands to value 1 if the Regulation applies to the user or value 0 if it does not
  • <%%GDPR_CONSENT%%> - expands to the value of the consent string



Changes in RTB/SSP templates

New versions of RTB/SSP templates send consent information automatically to SSPs. In the case of existing creatives, you should update the template to the latest version in the creative properties. Otherwise, the creatives will act as if the user has consented.

If consents do not allow any of the chosen SSPs to take part in an auction, an alternative creative from AdOcean is delivered.



adocean gdpr RTB