Revisions history
- 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 segmented data to GetIntent DSP for further targeting. The workflow is as follows:
- DMP uploads data through SFTP protocol on GetIntent servers
- The data is represented as set of txt.gz files using tab separated format (below)
- DSP starts using this data
File name format
The data should be stored in txt.gz files in following format:
[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:
the_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
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 |
Cookie (user) matching
For matching DSP and DMP user ids DMP should support user matching aligned with GetIntent DSP API. Depending of which side initiates matching/initiates syncs different workflows is applied. See table below:
| DSP Initiates Syncs | DMP Initiates Syncs |
DMP Stores Matching | DSP calls: | DMP calls |
DSP Stores Matching | DSP calls: | DMP calls |
By default GetIntent will support only DMP-side matching storage and both sync initiation options