PubCID for SSPs

Prebid User ID Module

How to Integrate

  1. SSP adapter should support the User ID Module. Adapters that support this feature will be able to retrieve the ID and incorporate it in the request.
  2. Ensure the publisher follows steps outlined in the Prebid User ID Module.

Adapter Integration

Bidders that want to support the User ID module in Prebid.js, need to update their bidder adapter to read the indicated bidRequest attributes. Bidders that want to support the User ID module in Prebid Server, need to update their server-side bid adapter to read the indicated OpenRTB attributes. For example:

ID System Name ID System Host Prebid.js Attr Prebid Server Attr Notes
PubCommon ID n/a bidRequest.userId.pubcid user.ext.tpid[].source="pubcid" PubCommin is unique to each publisher
  "user": {
    "ext": {
      "tpid": [{
        "source": "pubcid",
        "uid": "29cfaea8-a429-48fc-9537-8a19a8eb4f0d"

Implementation details can be found here.

Technical Details

  • The ID is UUID v4 and stored as a cookie and a local storage item called _pubcid in the page’s domain.
  • The id stored as cookie takes precedence over local storage.
  • Beware that if prebid.js is included in an ad server frame, then the ID would have ad server domain instead.  


Conversant PubCID Script

How to Integrate

This integration option is best suited for Conversant Ad Code and custom integrations which don't leverage Prebid.

  1. SSP updates client-side scripts to pick up the _pubcid cookie that was created by the pubcid.js script (see description of getId method below).
  2. SSP should send the UUID to Conversant in the user.ext.fpc object.
  3. Ensure that the publisher has implemented the pubcid.js script on the desired page.

The Publisher Common ID script implemented on the publisher’s page will create window.PublisherCommonId object. Update your client-side script to utilize the object’s function(s) described below.

Function Name Arguments Output
getId n/a Returns the id value of the cookie pubcid


  1. The script looks for a cookie named _pubcid first. If it doesn’t exist, search in local storage for an entry that hasn’t expired.
  2. If no id is found, then one is generated as a random v4 UUID xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, where each x is replaced with a random hexadecimal digit from 0 to f, and y is replaced with a random hexadecimal digit from 8 to b.
  3. The id is written as a first party cookie and saved to local storage. This persists the id if it didn’t exist before, and also to update expiry time.  If local storage is used, then the id is saved as “_pubcid”, just like the cookie.  Additionally, expiry time is saved under “_pubcid_exp”. 

User Opt-Out

Conversant recommends implementing a method where users can easily opt-out of targeted advertising. Please refer your publishers to the User Opt-Out section found here.