Publishers
DATA FILE FORMAT
- Daily Gzipped tab-delimited files (.tsv. gz)
- Ingest runs daily at 1100 UTC - The ingest job that runs each day looks for data in the file path from that same day
- Each row is an individual app record
- See below for data fields to include with each record
- File should NOT include a header row but fields should be in the exact order written below
- Partner delivers app data to Sovrn SFTP or S3
- File name does not matter
- File Path should be: s3://sovrn-daas-<yourcompanyname>/app_data/YYYYMMDD/
DATA FILE FIELDS
App data is of increasing value to the market to power sophisticated ad targeting. However, the value varies based on how the data is collected.
- Do not include any records of users who have limited ad tracking in Android or iOS or otherwise opted out of your system
- Use the following instructions to format your lines appropriately.
A line in your app file is thus formatted as follows:
<mobile_ad_id> <id_type> <ip_address> <timestamp> <event_type> <country_code> <model> <package_name> <device_model> <os_version> <device_language> <user_agent> <session_duration> <spend_usd> <us_privacy> <publisher_sub_id> <gdpr_flag> <gdpr_consent_string>
An actual line would look like this:
862d3c0c-6e75-4b50-XXXX-XXXXXXXXXX<TAB>AAID<TAB>115.164.XX.XX<TAB>1534123023<TAB> install<TAB>US<TAB>sm-g610f<TAB>com.sec.android.app.myfiles,com<TAB><TAB><TAB><TAB><TAB><TAB><TAB>1YN-<TAB>1<TAB>1<TAB>BOm53cnOm53cnDlABAENCl-AAAAm-AdAACAAoABsAGAAZAA4ACAAEgALQAZAA0ABwAD6AIoAjABMgCgAKIAWwA0ACEAEVAI4AkABNACfAFKALcAcgA_QDMAJPATe
FIELD DEFINITION:
Fields with an * are required - if you do not send these fields, our process will reject your file. For all other fields, if data is not available then leave the field blank.
mobile_ad_id* IDFA or AAID. This must be delivered in cleartext (unhashed).
id_type* “IDFA” or “AAID”
ip_address* This value is the public /external IP address of the device that made the request, received on the server side. It must be in IPv4 or IPv6 format.
timestamp* Timestamp of the moment the user was observed using the app. Must be in Unix Time in seconds, aka the number of seconds since “the epoch” (January 1, 1970, 00:00:00 GMT)
event_type* The action that triggered the record (Install, session, or other) - Please provide a list of all available event_types for collection and definitions
country_code* A two-digit country code, using the standard ISO-3166-1 format.
model* This should be the name of the mobile device as collected from Android or iOS. It should include not just the brand (Samsung) or device type (iPad), but a model type and number as well (Samsung Galaxy S6 or iPad 3)
package_name* The Package Name that has been extracted from the phone, in its original format (e.g., “com.instagram.android”) - Each row should include one package_name as one observation.
device_model Android = android.os.Build.Model
os_version
device_language iOS = NSLocale preferredLanguages ; Android = getDisplayLanguage
user_agent
session_duration How long a particular session occurred (only applicable for session events,
in seconds)
spend_usd Amount of US dollars spent for this action (only applies to Purchase events)
us_privacy* CCPA consent string (for example: 1YN-). See more detail here
publisher_sub_id* id for each source of this data - individual apps or providers
gdpr_flag* Is the geo-located in GDPR protected territory - 1 or 0
tcf_v2.0_consent_string* Daisybit string collected from the interaction between an end-user and a consent management platform UI containing information on which vendors and purposes for which the user granted consent. Required if GDPR Flag is 1