Notification

Only available in Google Ad Manager 360.

About publisher provided identifiers

Only available in Google Ad Manager 360

PPID (Publisher provided identifier) is a Google Ad Manager 360 feature that might not be enabled for your network. Contact your account manager to activate PPID. 

The Publisher provided identifier (PPID) allows publishers to send Google Ad Manager an identifier for use in frequency capping, audience segmentation and audience targeting, sequential ad rotation, and other audience-based ad delivery controls across devices. #PPID

Tip: Even while third-party identifiers remain available, we recommend transitioning to PPID as a durable identifier for use in Audience segments.
Note: PPID is not currently supported in Ad Manager's reach reporting or conversion tracking.

Jump to:

How PPIDs work

  • The identifier sent to Ad Manager must be hashed or encrypted such that it is meaningless to Google, and it must not be raw personally identifiable information.
  • If Google is aware that a user has opted out of personalized ads (for example, by using Ads Settings, EU user consent controls, or restricted data processing (RDP) settings), features permitting the use of PPID for targeting ads to the user's web browser will be disabled.
  • The user must have access to a mechanism to opt out of personalized ads.
  • If a user opts out of the publisher's use of PPID in connection with advertising, or deletes their account, the publisher must immediately stop sending Google the PPID associated with that user.

Creating PPIDs with first-party data

For publishers that use Audience Solutions, PPID can help build durable and privacy-first audience segments of recognized users without relying on third-party cookies or IDs. PPIDs can be based on their signed-in information or by pseudonymous first-party cookies. Your first step is determining what first-party data you have available to help you recognize individual users.

When you have signed-in users, you can develop PPIDs based on signed-in data, such as an email address or a unique ID associated with a specific user. This also helps you identify the same user when they're signed-in across multiple devices.

For publishers without signed-in users, PPIDs can be useful when they’re developed using domain-specific first-party cookies or identifiers set by the publisher, typically on the server-side. In order to avoid generating new PPIDs for every user session, pseudonymous identifiers should be persistent for individual users across multiple sessions.

PPID deletion

If a user requests that the publisher delete their user data, the publisher may send the user's data deletion request to Ad Manager to ensure user data is deleted from Google's internal storage systems.

If the character set used to obfuscate the identifier contains +, =, /, or $, you need to URL-encode the value before inserting it into a URL placeholder.

To request PPID data deletion, the publisher should initiate the request using this URL: 

https://securepubads.g.doubleclick.net/user_data_deletion?ppid={user's_PPID}&iu={publisher's_AdManager_network_code}

Example

https://securepubads.g.doubleclick.net/user_data_deletion?ppid=12JD92JD8078S8J29SDOAKC0EF230337&iu=12345

  • Publishers may begin this process as soon as they receive a signal from their user requesting data deletion.
  • After successfully receiving this signal from the publisher, our internal systems immediately de-link existing user data from the PPID, and such data is subsequently fully deleted within 63 days.

Expected response

Successful requests return the HTTP response status code “200.” Unsuccessful requests return the HTTP response status code “400.” If the PPID data deletion API is not enabled, the HTTP response status code “404” is returned.

Set the identifier

If your sites/apps don't send any Google Ad Manager ad requests (or audience pixel requests) with a given PPID for 180 days, requests need to be sent again to make the PPID valid. Google may remove PPIDs after shorter periods of inactivity to intelligently optimize PPID resources.

Google Publisher Tags

For websites, use the PublisherProvidedId method:

Method details for pubService

pubService.setPublisherProvidedId(identifier)

Sets values for publisher-provided ID for use in frequency capping and other audience-based activities.

Parameters

string identifier: An alphanumeric ID provided by the publisher with a recommended maximum of 150 characters.

Example

<script type="text/javascript">
       googletag.pubads().setPublisherProvidedId('12JD92JD8078S8J29SDOAKC0EF230337');
       googletag.enableServices();
     </script>

Google Mobile Ads SDK

The GoogleAdManagerExtras class contains a method called setPublisherProvidedId(string ID). See Google Mobile Ads SDK documentation for more information.

Google IMA SDK

The HTML5, iOS, and Android SDKs provide the following methods or properties to set the PPID.

Non-JS request (aka Tagless Request)

Requests made directly to Google Ad Manager using /adx or /ad+/jump which need to pass PPID must include a parameter ppid=.

If the character set used to obfuscate the identifier contains +, =, /, or $, you need to URL-encode the value before inserting it into a URL placeholder.

Audience Solutions pixel tags

Requests made directly to Google Ad Manager using Audience Solutions pixel tags must include the parameter ppid=.

If the character set used to obfuscate the identifier contains +, =, /, or $, you need to URL-encode the value before inserting it into a URL placeholder.

Example tag for web

<script async id="google-pcd-tag" src="https://pagead2.googlesyndication.com/pagead/js/pcd.js" data-audience-pixel="dc_iu=/{ad-manager-network_code}/DFPAudiencePixel;dc_seg={segment_ID};ppid={your_ID}"></script>

Example tag for apps

https://pubads.g.doubleclick.net/activity;dc_iu=/{ad-manager-network_code}/DFPAudiencePixel;ord=%%CACHEBUSTER%%;dc_seg={segment_ID};ppid={your_ID}?gdpr=<0,1>&gdpr_consent=<tc string>&tfua=<0,1>&tfcd=<0,1>

Limits and requirements

Failure to meet the requirements described below might cause PPIDs to be ignored or discarded by our systems.

The PPID value must be:

  • Alphanumeric ([0-9a-zA-Z], ‘+', ‘.', ‘=' ,  '/' , ‘_' , ‘-' , ‘$', ‘,', ‘{‘, ‘}') or UUID HEX representation (8-4-4-4-12).

    Example

    Here are examples of correct PPIDs:

    • 12JD92JD8078S8J29SDOAKC0EF230337
    • 12jd92jd8078s8j29sdoakc0ef230337
    • 12Jd92jD8078s8j29sDoakc0ef230337
    • 123e4567-e89b-12d3-a456-426614174000
    Publishers can check that PPIDs are correct by using the following tools with this regular expression:
    ^[0-9a-zA-Z+.=\/_\-$,{}]{22,150}$

    Tools

  • A minimum of 22 characters.

  • A maximum of 150 characters.

  • Hashed or encrypted, so meaningless to Google.

  • URL-encoded if it contains +, =, /, or $.

    Some characters that are allowed in a valid PPID value have special meanings when included in URLs. If the character set used to obfuscate the identifier contains +, =, /, or $, you need to URL-encode the value before inserting it into a URL placeholder. This differs from using an SDK method, such as GPT's pubService.setPublisherProvidedId(identifier), where the SDK undertakes the URL-encoding of the value provided.
    Example
    Using AES encryption, you obfuscate a user ID and the resulting PPID value is n6lvihJocabdNhFQqRbBt552lNGh74k7/1kZ2dC0dXk=. The / and the = characters in the value must be URL-encoded before inserting the identifier into a PPID URL parameter.
     
    The resulting correctly-encoded URL parameter would become ppid=n6lvihJocabdNhFQqRbBt552lNGh74k7%2F1kZ2dC0dXk%3D.
  • Only sent when a user can be identified for more than one session (for example, a first-party cookie available across multiple sessions may be used to generate a PPID).

Avoid changing the algorithm for generating PPID values. Doing so causes various features to be reset, including frequency capping, audience segmentation and targeting, sequential ad rotation, and other audience-based ad delivery features.

Enable PPID for programmatic

When enabled, PPID may be used by Google and programmatic demand to support buyer frequency capping and interest-based ads personalization on programmatic traffic, when Ad Manager third-party cookies or device IDs aren’t available. This will potentially increase publisher programmatic revenue, while limiting user's activity tracking only within the same Ad Manager network:

  • Before sharing PPIDs with Google and programmatic demand, Ad Manager turns them into per-publisher partitioned IDs, so users cannot be identified across other publishers’ sites and apps.

  • In addition to enabling PPID, you also need to choose who to share PPIDs with programmatically (such as Google demand, Authorized Buyers, and Open Bidders), which you would do through Demand channel settings. Note that for now, PPID for non-Google demand is only available outside of EEA and UK.

  • You can send your data (including first-party data) to the third-party bidders you choose using secure signals.

Follow these steps to enable PPID for programmatic:

  1. Sign in to Google Ad Manager.

  2. Click Delivery, then Demand channel settings.

  3. Under “Publisher data sharing,” click Publisher provided identifiers (PPID) for programmatic.

  4. To enable PPID for programmatic for a demand channel, turn on the switch On

  5. Click Save.

Report on PPID

Use the “PPID status” dimension in Ad Manager reporting to see coverage broken down by ad requests that do (“Present” value) or do not (“Missing” value) have a PPID. This dimension covers both reservation and programmatic traffic.

  • Use the “PPID status” dimension to troubleshoot PPID coverage across programmatic and reservation traffic. For example, to understand if some inventory is missing the correct PPID configuration, you can report on Total Ad Requests by Ad Unit and / or Request Type, adding the PPID status, then is any of, and then Missing filter.
  • PPID for Programmatic only applies to the share of your traffic where third-party identifiers aren't available. In other words, it has no impact on programmatic traffic where third-party cookies are available. Therefore, when analyzing programmatic performance in the presence of PPID, we recommend selecting the Third-party ID status, then is any of, and then Missing filter to limit your analysis on ad requests where third-party cookies or device IDs aren't available.
  • The “PPID status” dimension can't be used to accurately determine revenue effects, but may be used as an indication of performance. To get a better understanding of revenue uplift, we recommend that publishers perform their own A/B tests, consider different inventory types, as well as the presence of a third-party identifier.

Requests with multiple identifiers

As previously mentioned, the PPID supplements, rather than replaces, other identifiers used by Google Ad Manager (for example, cookies on a desktop environment, or resettable mobile advertising IDs such as AdID and IDFA). In most cases, this means that a PPID-enabled ad request made to Google Ad Manager will be a multi-identifier request—it will contain a primary PPID identifier and a secondary desktop/mobile identifier. Only one PPID can be passed per ad call.

This can affect Google Ad Manager behavior in a number of ways, detailed below.

Audience segment targeting

Segment membership is maintained independently for the secondary identifier and the PPID. When a multi-identifier request is received, the request is eligible to serve line items targeted to any of the combined segment membership across the two identifiers.

Example

A user visits a sports site or app that supports PPID for signed-in users but is not signed in. This user visits pages on the site or app that cause them to be added to an audience segment for basketball fanatics (segment S1). Since the user is not signed in, the secondary identifier is added to the audience segment. The user subsequently signs into the site or app, triggering the addition of a PPID on further ad requests. This particular user is known to be in the 25-34 age range, and their PPID was added to an age-based audience segment (segment S2) through batch identifier uploads. For any of the user's multi-identifier requests, line items targeted to segments S1 and/or S2 will be eligible to serve.

Audience segment sharing

PPIDs are specific to a single network. That is, each network has its own PPID namespace, which protects against collision if two networks assign the same PPID to different users. Audience segments built from one network's PPIDs cannot be shared with other networks or products (more accurately, PPIDs on requests from one network will never match the PPIDs in another network's audience segment). Only segments built on top of cookie or device ids can be shared among multiple networks. An audience segment containing both PPIDs and secondary IDs could be shared, but ads targeted to this segment would only be eligible to serve to a multi-identifier request if the secondary identifier on the ad request matched a secondary identifier within the segment.

Audience segment membership

If a multi-identifier request is received, only the primary PPID is considered for the purpose of triggering or refreshing audience segment membership. Any secondary identifier passed in the request will not be considered for this purpose.

Example

A different user visits the sports site from the previous example, and is currently signed in to the site (a multi-identifier request is sent to Google Ad Manager). This user also visits pages on the site that cause their PPID to be added to the basketball fanatics segment (segment S1), and to see line items targeted to this segment. The user then signs out of their account, but continues to browse the site. They're no longer eligible to view ads targeted to segment S1, unless they satisfy S1's membership criteria under their secondary identifier.

Frequency capping

If a multi-identifier request is received, only the primary PPID is considered for the calculation of frequency capping. Any secondary identifier passed in the request will not be considered for this purpose.

Example

A different user visits the sports site from the previous example, and is currently signed in to the site (a multi-identifier request is sent to Google Ad Manager). This user views a line item L that is capped at one impression per 24 hours. The user then signs out of their account, but continues to browse the site. They can see L once more, which then triggers the frequency cap based on their secondary identifier.

Sequential creative rotation

If a multi-identifier request is received, only the primary PPID is considered to identify the next creative in a sequential rotation to serve. Any secondary identifier passed in the request will not be considered for this purpose.

Example

A different user visits the sports site from the previous example, and is currently signed in to the site (a multi-identifier request is sent to Google Ad Manager). This user views (once) a line item L that has creatives C1 and C2 set for sequential creative rotation. The user then signs out of their account, but continues to browse the site. The next time the user views L, they'll see creative C1 again (based on their secondary identifier).

Data transfer reporting

Data transfer reporting is available to Google Ad Manager 360 publishers only.

Both identifiers passed in multi-identifier requests flow through to data transfer reporting, but they are reported in an encrypted fashion. It is not possible for a publisher to reverse the encryption process (restoring the PPID or the secondary identifier to their original form). However, these encrypted identifiers can be batch uploaded to audience lists for later remarketing/targeting.

Example

A different user visits the sports site from the previous example, and is currently signed in to the site (a multi-identifier request is sent to Google Ad Manager). The user's identifiers flow through to the corresponding data transfer reports. An encrypted representation of the user's primary PPID identifier appears in the PublisherProvidedID field, and an encrypted representation of the user's secondary identifier appears in the UserId field.

Was this helpful?

How can we improve it?
true
Search
Clear search
Close search
Google apps
Main menu