Use this guide to integrate audiences with PubMatic. Data owners can create audiences using:
- Cookie IDs for mobile and desktop/web.
- iOS IDFA/Android device IDs for mobile apps.
- Custom IDs from ID providers who are integrated with PubMatic; contact your PubMatic account manager for details.
Data integration requires these steps:
Audience source creation
Registering audiences requires an Audience Source/data partner ID (DPID); see, Create and Edit an Audience Source.
Register audiences ONLY ONCE before data transfer
Data providers must register new audiences with source audience IDs before sending data to PubMatic. PubMatic ignores unrecognized audience IDs to avoid processing mistakenly sent data.
There are two ways to register audiences:
Register audiences with the Audience Registration APIs; see, Register an Audience.
Bulk-register audiences in PubMatic at, Publisher Account > Audience > Audiences > Bulk Upload Audiences:
You can bulk-register audiences by uploading a correctly formatted CSV file. To download the CSV template from PubMatic:
- Click the Bulk Upload Audiences drop-down (circled in red above), then choose the Bulk Upload Audiences menu item.
- In the Upload Audiences dialog click, Download Create Template, which is the one you use to create your audiences. When it's time to update your audiences, then you would use the Download Update Audiences template.
- After you've filled in the template with your audience data (note the required fields), then return to the Upload Audiences dialog and click Select File.
- When the Upload Audiences dialog displays the name of your template file, click Upload Audiences to send it to PubMatic and close the dialog.
Transfer audience data to PubMatic using one of the following methods:
- Server-to-server (S2S) data transfer
- Browser-side real-time (HTTP 302 redirect) data transfer
- Bulk audience data transfer using SFTP
PubMatic automatically removes user IDs older than 30 days. The best practice is to refresh data at least every 25 days.
The transfer options listed above require data submission using a specific set of parameters listed in the table below.
Data transfer parameters
PubMatic data partner ID (DPID) assigned to the data partner at time of integration.
The PubMatic user ID passed to the data partner by PubMatic.
A integer value that determines what the identity partner's PubMatic user ID represents:
uidtype is now required for all new integrations
Contact your PubMatic account manager to learn more about UID Type assignment and other identity partners supported by PubMatic.
Use segid to send the complete list of audience IDs to which the user belongs. Each subsequent request for that user with the segid parameter overwrites the user’s already existing audiences list.
DO NOT send
You can include
You can include
Last known IP address of the user; optional when you send
Two-letter code for the user's country; for example,
Server-to-server (S2S) data transfer
Server-to-server data transfer is the best practice for submitting data to PubMatic since the servers communicate directly, so data transfer is highly-efficient. Build API calls using the parameters from the data transfer parameter table and make HTTP calls to the API endpoint:
Sample: standard call with audience IDs
In this request:
89is the data partner's PubMatic-assigned ID (DPID).
- The user belongs to three audiences with IDs
uidtype=0means the user ID represents a cookie ID.
If your user IDs represent PubMatic cookie IDs, you must first use UID sync .
Sample: appending/removing audiences
This request for the same data partner (
dpid=89) and user (
adds audience ID
3242to the user's existing list.
removes audience ID
123_Bfrom the list.
sets the user's country to
specifies using the UID value as a device ID.
Browser-side real-time (HTTP 302 redirect) data transfer
Data partners who do not support server-to-server data transfer can pass data to PubMatic using browser-side real-time data transfer for each visitor as follows:
- A user visits the website using a browser, which upon loading, executes the PubMatic pixel.
- The PubMatic pixel invokes the data partner's pixel or URL to request the audience data for this visitor. To reduce the latency, this request is sent to the data partner only once in a pre-configured time interval per user; for example, once per day.
The data partner's system then redirects to the PubMatic Data Ingestion API using the HTTP 302 redirect. PubMatic shared the API URL with the data partner before the start of the integration. While redirecting to the API URL, the data partner's system must include all the IDs of the audiences to which the visitor belongs.
Data partner must also
Provide the audience ID-to-audience name mapping to PubMatic only once at the start of the integration.
Browser-side sample requests
In this request, which updates the entire audiences list:
89is the data partner's PubMatic-assigned ID.
B8CB98E6-0FF0-4C2B-A161-4F89155C28Fis the PubMatic user ID (from UID sync).
the last known IP of the user:
the user's country:
the user's DMP source audience IDs:
uidtype=0specifies that the user ID should be handled as a cookie ID (use UID sync when passing
This request is also for data partner
89 and user ID
B8CB98E6-0FF0-4C2B-A161-4F89155C28F. It removes and appends values to the audiences list:
submits the user's last known IP as
sets the user's country as
3242to the user's existing list of audiences.
123_B, leaving the user's updated audiences as:
uidtype=1to specify that the user ID should be handled as a device ID.
For more information on all available parameters, see Data transfer parameters.
Bulk audience data transfer using SFTP
Use SFTP to transfer audience data to PubMatic within a tab-delimited file, where each row of the file contains the audience parameters separated by a tab character, with each row ending with a carriage-return as follows:
[SEGID] parameter refers to the Source Seg ID that was assigned to the audience during audience registration. You can submit multiple, comma-separated, source audience ID's.
For more information on the other parameters, see Data transfer parameters.
You must provide either
[IP] (last known IP address) or
[COUNTRY] (two-letter country code). If
[IP] is unknown, add two TABs between
[COUNTRY] with no additional blank/space characters. If neither
[COUNTRY] are added to the entry, PubMatic will set the
US by default.
File name format
File names follow the pattern:
- format should be Unix; for example,
<MD5SUM>is an MD5 32-character hexadecimal checksum computed on the file content before compression.
If your organization is workload managed by a team, you can also include
<WORKERID> as part of the file name to help track and manage the team member's workload:
While the transfer is in progress
Suffix the file with,
* .UPLOADING, then rename it upon completion.
PubMatic supports compression formats such as, gzip , bzip2 , and others. If you have any questions or issues uploading a compressed file, please contact your PubMatic account manager for assistance.
The tsv.gz suffix must follow the uploaded file name. Please verify that the file name is correct once upload completes.
Bulk transfer notes
- FTP lets a single user batch upload data for multiple partners, while HTTP allows data for only a single partner.
- HTTP lets a DMP add/remove a audience for a given user id, but FTP requires the DMP to send all the user's audience IDs, which overrides the existing audience stored with PubMatic.
- FTP allows only one new line entry for each audience for a given user.
SFTP server details and access
Provided separately by PubMatic. Contact your PubMatic account manager with questions.
Unique identifier (UID) sync
PubMatic can process data only from PubMatic user IDs
To use data from other sources when using
uidtype=0, a data provider must create a user-match table between PubMatic's user IDs and their own user IDs.
Steps for user sync-up:
The data provider must provide PubMatic with an image pixel similar to:
<img src=" http://partner.com/xxxx?id=UID" width=1 height=1>
- If data comes from a publisher, then PubMatic incorporates the image pixel from step 1 in a PubMatic pixel. The publisher must fire the PubMatic pixel across their website to maximize coverage across their users. Firing the pixel also lets the data provider create the match-table.
- If data comes from a buyer, PubMatic fires the image pixel from step 1 across PubMatic's site.
Remove a user from audiences
Use one of the following methods to remove a user from all of their audiences (DMPs and publishers can use either method):
To send a list of audiences to remove using the remseg parameter:
When sharing data via a bulk file, do not pass any audience ID in the file for the user record. Audiences in the latest record are stored for the user ID, overwriting the user's previous audiences.
API response codes
Once your API request has been processed by PubMatic, the system returns a response to let you know whether the request was successful or a problem occurred. When you send the request, the following happens at the HTTP layer:
- Returns HTTP response code 200 (Ok) when the request successfully completes.
- Returns HTTP response code 400/500 if issues occur while processing the data.
A successful request also includes a
StatusOK: Success code from PubMatic. If an error occurs, the response includes codes from PubMatic to identify what may have gone wrong. The table below lists all PubMatic response codes for this API.
|1||Bad request: |
|2||Internal Server Error: demand partner settings not found.|
|3||Bad Request: |
|4||Internal Server Error: failed to validate |
|5||Bad request: unregistered |
|6||Following audiences are unregistered: |
|10||Bad request: user |
|11||Bad request: |
|12||Bad request: multiple |
|13||Bad request: multiple |
|15||Bad request: no audiences present in this request.|
|16||Bad request: no |
|17||Bad request: |
|18||Bad request. user |