Guarded Publisher ID

Introduction to Guarded Publisher ID (GPID)

ID5 is offering partners a license to the Guarded Publisher ID, a publisher specific first-party cross-domain identifier. The GPID is a partner specific version of the ID5 ID which remains unique for a user across a owned and operated properties within a given browser environment. It's quality and stability is implicitly linked to the provision of signals such as hashed emails and TrueLink signals. It is especially useful as a first party user identifier for media owners or brands with multiple owned and operated properties with a limited amount of authenticated traffic. 

Since the GPID is derived from the ID5 ID but it will not have cross-publisher user reconciliation properties. This means that the same user will have a different GPID on other publishers’ domains or apps. The GPID will expire after 90 days in order to protect user's privacy.

The GPID can be used to facilitate use cases such as:

  • Cross domain audience building and activation
  • Campaign optimisation and frequency capping
  • Measurement
  • As a Publisher Provided ID (PPID) in an ad server such as Google Ad Manager, Xandr. 

The GPID is at its most accurate and stable when publishers:

Publishers with a Prebid.js integration

This is sample code only and may need some modification in your production environment.

// this function is used to ensure the “gp” ID is available before attempting to read from cache
pbjs.getUserIdsAsync().then(function (userIds) {
  // pick up the PPID from local storage
  var ppid = JSON.parse(decodeURIComponent(window.localStorage.getItem('id5id'))).gp;
  // pass the “gp” ID as PPID to GPT tag
  window.googletag.pubads().setPublisherProvidedId(ppid);
});

We will soon be releasing support for making the GPID available as a PPID natively within prebid.

Publishers with an ID5 JS API Integration

This is sample code only and may need some modification in your production environment.

var id5Callback = function (id5Status) {  
// ... existing callback code  

// pick up the gpid  
var ppid = id5Status.getGpId();  
if (ppid) {    
// pass the gpid as PPID to GPT tag    window.googletag.pubads().setPublisherProvidedId(ppid);
  }
};
var id5Status = ID5.init({ partnerId: 173 }).onUpdate(id5Callback);