Request consent from EU users

  • Publishers must obtain user consent in the EEA for the use of cookies and personal data for ad personalization, adhering to the EU User Consent Policy, which reflects the EU ePrivacy Directive and GDPR.

  • Ad requests to Google can serve personalized or non-personalized ads, with non-personalized ads forced by appending &npa=1 to the ad tag.

  • Publishers can mark ad requests for users under the age of consent in the EEA by including a TFUA parameter (&tfua=1) in the ad tag, which disables personalized advertising and requests to third-party ad vendors for that request.

Select platform: HTML5 Android iOS tvOS Roku

Under Google's EU User Consent Policy, you must make certain disclosures to your users in the European Economic Area (EEA) and obtain their consent for the use of cookies or other local storage where legally required, and for the collection, sharing, and use of personal data for ads personalization. This policy reflects the requirements of the EU ePrivacy Directive and the General Data Protection Regulation (GDPR).

By default, ad requests to Google serve personalized ads, with ad selection based on both the content of the web page or app and the history of the user visiting it. Google also supports serving non-personalized ads. Learn more about personalized and non-personalized ads

To force non-personalized ads, you can append &npa=1 to your ad tag to specify that only non-personalized ad content should be returned.

This is accomplished with the adTagParameters property, like so:

Sub loadStream()
  ...
  request = sdk.CreateStreamRequest()
  if m.top.streamData.type = "live"
    request.assetKey = m.top.streamData.assetKey
  else
    request.contentSourceId = m.top.streamData.contentSourceId
    request.videoId = m.top.streamData.videoId
  end if
  request.apiKey = m.top.streamData.apiKey
  request.player = m.player
  request.adTagParameters = "npa=1";
  requestResult = sdk.requestStream(request)
  ...
End Sub

You can mark your ad requests to receive treatment for users in the European Economic Area (EEA) under the age of consent. This feature is designed to help facilitate compliance with the General Data Protection Regulation (GDPR). Note that you may have other legal obligations under GDPR. Review the European Union's guidance and consult with your own legal counsel. Remember that Google's tools are designed to facilitate compliance and don't relieve you of any obligations under the law. To learn more about how GDPR affects you, see Tools to help publishers comply with the GDPR.

Use the tag for age treatment, tfat, parameter to tag an ad request for age treatment. Set the tfat parameter to one of the following values depending on the treatment you want to apply:

Parameter Value Meaning
tfat=0 Unspecified
tfat=1 Child treatment (equivalent to COPPA / TFCD / TFUA child mode)
tfat=2 Teen treatment. This parameter disables personalization and enables teen-safe third-party creatives.

For more information, see Tag an ad request for age treatment (TFAT).

When using this feature, IMA SDK includes the tfat parameter in the ad request. This parameter disables personalized advertising, including remarketing, for that specific ad request. The tfat parameter also disables requests to third-party ad vendors, such as ad measurement pixels and third-party ad servers. The parameter does not affect your use of Ad Manager key-values. Consequently, you must ensure that your use of key-values complies with GDPR.

Including the age treatment parameter in an ad request takes precedence over any applicable site-level settings.

Because IMA SDK passes age signals using URL query parameters, you can pass the tfat parameter through the adTagParameters property:

Sub loadStream()
  ...
  request = sdk.CreateStreamRequest()
  if m.top.streamData.type = "live"
    request.assetKey = m.top.streamData.assetKey
  else
    request.contentSourceId = m.top.streamData.contentSourceId
    request.videoId = m.top.streamData.videoId
  end if
  request.apiKey = m.top.streamData.apiKey
  request.player = m.player
  request.adTagParameters = "tfat=1";
  requestResult = sdk.requestStream(request)
  ...
End Sub