User Matching

What is User Matching?

User Matching (also called User Syncing or Cookie Syncing) is a method for sharing cookie-based user data between different servers. In Kevel, user matching is most commonly used to match a UserKey in UserDB with the User ID of an RTB provider.

Since cookies can only be read and written by their originating domain, servers need to make requests to each other to share a cookie's contents. The User Matching pixel bridges the gap between an RTB provider and Kevel by passing the contents of a user's cookie from the RTB provider to UserDB.

The pixel can be called from any page: by the third party service, by the Kevel customer, or by Kevel.

User Matching for RTB

RTB providers such as Index Exchange require their User ID (Index ID) passed with the Kevel ad request. Otherwise, Index won't have access to that user's targeting data, leading to lower bids and lower publisher revenue.

  1. A Kevel customer should construct the user matching pixel for their provider:

https://e-{networkId}.adzerk.net/udb/{networkid}/sync/i.gif?partnerid=1&userId=

The pixel's URL requires a partnerId (the ID of the RTB provider in Kevel) and an empty placeholder for the userId (the demand partner's identifier for this user).

👍

userId is the ID of the user for the bidder. It is not the Kevel userKey for the user.

The demand partner will append their user identifier to this string before invoking it on the Kevel servers.

📘

Note that other query parameters can be added before the userId parameter to pass data to the RTB provider.

🚧

If you don't know the partnerId of the RTB partner, contact Kevel support.

  1. URL-encode the Kevel pixel. Append Kevel's pixel to the end of the user matching endpoint of the provider and place that call on your page. For example, using Index Exchange's pixel:

https://indexexchange.com/match?http%3A%2F%e-{networkId}.adzerk.net%2Fudb%2F{networkid}%2Fsync%2Fi.gif%3Fpartnerid%3D1%26userId%3D

  1. Index's service will look up the User ID from their own cookie in the user's browser. Index will then append that User ID to the end of the URL and redirect to the Kevel pixel:

https://e-{networkId}.adzerk.net/udb/{networkid}/sync/i.gif?partnerid=1&userId=8675309

  1. After that pixel is fired in the browser, Kevel will write the value of the User ID to the user's record in UserDB. (Kevel knows the user's UserDB User Key from on the azk cookie set with each request.)

  2. The next time Kevel makes an OpenRTB call to Index, we will pass in Index's User ID via UserDB.

❗️

The domain of the user matching pixel (such as e-1234.adzerk.net) must be the same domain where you request ads. Otherwise user matching will not work.

For example, if you have white-labeled the Kevel ad domain to something like adz.mycompany.com, then you must use that white-labeled domain in the user matching pixel.