Revisions history
| Revision | Changes |
|---|---|
| 1. | Initial version |
| 1.1 | Changed mobile DMP USER ID raw and md5 formats and hashing rules. |
Basics
This document describes a generic way to upload DMP segments to RTBSuite DSP. The workflow is as follows:
- DMP uploads data (TSV gzipped files with headers) through SFTP protocol on RTBSuite servers
- RTBSuite starts using segments data for targeting
File name format
DMP data should be stored in txt.gz files and be named the following way:
[DMP ID].[DATE as yyyy-MM-dd_HH-mm-ss].[FILE ID].txt.gz
Where:
- [DMP ID] a string id assigned to DMP partner
- [DATE] date of file generation in specified format
- [FILE ID] unique file id
Example:
some_dmp. 2015-07-15_12-00-00.632a0017-bbda-4be7-a5fe-6a2478b65c89.txt.gz
Data format
The first line of file should be a header and will always be ignored. The further line should follow the syntax below:
[DMP USER ID]<tab>[DSP USER ID]<tab>[SEGMENTS TO ADD]<tab>[SEGMENTS TO REMOVE]
Where:
- [DMP USER ID] – DMP user id (could be empty)
- [DSP USER ID] – DSP user id (could be empty)
- [SEGMENTS TO ADD] – comma separated list of segments. Each segments should be an id or id:expiration timestamp (in UTC/milliseconds). Example "1,2,3" or "1,3,4: 1437061152368". If expiration time isn't given for segment a default expiration policy (configured per DMP) will be applied
- [SEGMENTS TO REMOVE] – comma separated list of segments
Notes:
- Only one of [DMP USER ID] or [DSP USER ID] should present (depends on which party is storing user matching tables)
User ID format
For display (desktop inventory format) [DMP USER ID] or [DSP USER ID] could be any string that doesn't contain ':' character.
For mobile DMP USER ID each user id should have a prefix
Prefix | Meaning | Examples |
|---|---|---|
m_raw | Raw advertiser id | Android |
m_md5 | MD5 hash of IDFA or Android ID. Hashing is done over string representation of UUID! After that hash is encoded to hex string. | m_md5: 86d8638a89ae4a53a57746500f268bcc |
m_sha1 | NOT SUPPORTED | NOT SUPPORTED |
User matching flow
RTBSuite can store user matching tables on their side but it's no recommended and should be done only in case it's the only option to integrate with DMP. The following matching cases are supported:
| DSP Initiates Syncs | DMP Initiates Syncs |
|---|---|---|
DMP Stores Matching | DSP calls: | DMP calls |
DSP Stores Matching | DSP calls: | DMP calls |