1. Sovrn Data Products

Sovrn App Data IN

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