Supplier First-Party User-Matching

In the standard BidSwitch supplier user matching scenario, when sending bid requests to Buyers, BidSwitch uses the cookie ID stored in the browser cookie to map the Buyer user IDs for this user.

One of the limitations of this process is that certain platforms, such as Safari, do not support 3rd party user syncing, which prevents BidSwitch from dropping a cookie to a user’s browser. To improve user syncing on such platforms, BidSwitch offers two solutions.

Note

Suppliers only need to implement one of these options, not both.

Direct-like User Syncing

Direct-like user syncing allows Buyers and Suppliers to match their UUIDs directly, bypassing the BidSwitch User ID in the middle.

Once Suppliers know the UUIDs used by their buying partners on BidSwitch, then this information can be included in the bid request to enable Buyers make better bid pricing decisions, and it works in the following manner.

  • When BidSwitch receives a Supplier Initiated Direct Syncing with the Supplier UUID, it analyses it and tries to drop a cookie to the user’s browser.
  • If this fails, BidSwitch redirects the sync request to the Buyer, enabling the direct sync process, and returns the Buyer’s matching UUID to the Supplier.
  • Once the Supplier knows the matching Buyer UUIDs for their user IDs, they should include this information in the bid request (ext.dsp_uuids). BidSwitch then sends it to Buyers so they can make more informed bid pricing decisions.

For Suppliers to enable this feature, a number of changes need to be made to their integration with BidSwitch.

Note

If a Supplier does not have a large pool of Buyer UUIDs to sync directly with in a limited 3rd party cookie environment like Safari, then supporting this functionality will bring limited value.

URL Parameters

For Suppliers to support this new functionality, they need to ensure that they support these additional parameters in their sync endpoint URL.

  • bsw_uuid : Sets the BidSwitch User ID. When using the direct user syncing method this field will always be empty.
  • dsp_uuid : Sets the Buyer’s User ID of the user being synced.
  • dsp_id : Sets the Buyer ID with whom the supplier is syncing.
some.ssp.com/sync?bsw_uuid=${UUID}&dsp_uuid=${DSP_UUID}&dsp_id=${DSP_ID}

Once these parameters are supported, suppliers should contact support@bidswitch.com to have this activated on their connection, and to have their user sync URL updated in their myBidSwitch UI.

Supplier Initiated Direct Syncing

Once these changes are complete, suppliers must include the user ID they wish to sync with BidSwitch in the user sync URL, as in the following example.

x.bidswitch.net/sync?ssp=somessp&user_id=XYZ

BidSwitch will then sync with one of its connected Buyers and respond to the sync request with the ${DSP_ID} and ${DSP_UUID} information. Sending this to the supplier’s user sync URL.

some.ssp.com/sync?bsw_uuid=&dsp_uuid=ABC&dsp_id=77

Suppliers should store this Buyer-related data so that they can forward it to BidSwitch during bid requests.

Note

BidSwitch initiated user syncs work in the same manner and sync data to the Suppliers User Sync URL.

Bid Request JSON Changes

BidSwitch expects the bid_request.ext.dsp_uuids field in the bid request JSON.

{
   "ext":{
      "dsp_uuids":{
         "dsp1_id":"dsp1_uuid",
         "dsp1_id":"dsp2_uuid",
      }
   }
}

Example Bid Request With UUID Sync

If the Supplier does not have a match with BidSwitch for a certain user, then the user.buyeruid field is left empty, and the direct syncing approach shall be used to sync the Buyer UUIDs. In this scenario, the Supplier should enrich the bid request with the Buyer UUIDs for that user, using the following examples.

Step 1

During syncing, BidSwitch will have returned the Buyer UUIDs to the user sync URL, as in the following example.

some.ssp.com/sync?bsw_uuid=&dsp_uuid=XYZ&dsp_id=77

some.ssp.com/sync?bsw_uuid=&dsp_uuid=ABC&dsp_id=41

some.ssp.com/sync?bsw_uuid=&dsp_uuid=IKL&dsp_id=42

Step 2

When sending the bid request to BidSwitch, the Supplier should include the UUIDs that match their user in ext section. See lines 12-13 that specify the Supplier’s UUID, and lines 36-40 that match this user directly to the given Buyers.

{
 "cur": [
   "USD"
 ],
 "device": {
   "devicetype": 2,
   "language": "en",
   "ua": "Mozilla\/5.0 (Windows NT 6.3; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/52.0.2743.116 Safari\/537.36",
   "ip": "24.68.173.116"
 },
 "at": 2,
 "user": {
   "id": "53C0C0D66E6521B101749B59F00222A8"
 },
 "site": {
   "publisher": {
     "id": "123"
   },
   "page": "http:\/\/www.somepage.com\/",
   "id": "123"
 },
 "imp": [
   {
     "banner": {
       "api": [
         3,
         4,
         5
       ],
       "h": 90,
       "w": 728
     },
     "id": "1"
   }
 ],
 "ext" : {
   "dsp_uuids" : {
      "77" : "XYZ",
      "42" : "IKL",
      "41" : "ABC"
   }
 },
 "id": "reqid"
}