Skip to main content

For Match Partners: Uploading Mobile App Files

LiveRamp's match partners can monetize match data from their mobile app registrations and logins by uploading log files to LiveRamp via SFTP. To send mobile app match data to LiveRamp:

  1. Format the file.

  2. Test your hash function.

  3. Name the file.

  4. Upload the file via SFTP.

Create a file that follows the guidelines listed below:

  • Deliver files in .psv (pipe separated value) or .csv (comma separated value) format, gzipped, with unix line endings.

  • Include all of the columns listed in the table below.

  • Provide all three hash types for email addresses. Make sure all email addresses are lowercased and all whitespace is removed before hashing.

  • Do not hash mobile device IDs.

  • Remove any duplicate records from your file.

Note

LiveRamp highly recommends sending only IPv4 IP addresses. You can send IPv6 IP addresses but in most cases, we will not be able to match to those.

Column

Header Label

Definition

Example

Mobile Device ID

advertising_id

The mobile device ID (mobile advertising ID) of the device.

69A2109A-0134-4EEC-B4AF-65855133B008

ID Type

id_type

Mobile Device ID Type - Apple Identifier for Advertising (“IDFA”) or Google Android Advertising ID (“AAID”).

IDFA

User Agent

user_agent

User Agent string of the device.

"iPhone 6; iPhone OS 9.2"

IP Address

ip_address

IP address of the device.

70.212.10.74

Timestamp

timestamp

Unix Timestamp (seconds since Unix epoch) of when the user was active/logged in.

1455172609

MD5 Hash

md5_hash

Email address using MD5 hashing.

a010407ea27f6a9ccc70e5d149a7818f

SHA-1 Hash

sha1_hash

Email address using SHA-1 hashing

3b31875f46abd81fb6c003d7a84492f6ef1b2d5e

SHA-256 Hash

sha256_hash

Email address using SHA-256 hashing.

7f0098da19b0f540dbcde477f969fec3e4d8b40f6d1686c6b24d4c2aaea48fea

Opted-Out

opted-out

“1” indicates that the user has explicitly opted out (otherwise the value should be “0”). If “1”, all fields except Mobile Device ID and ID Type should be empty.

0

File Examples

Here is an example of what the header row should look like:

advertising_id|id_type|user-agent|ip_address|timestamp|md5_hash|sha1_hash|sha256_hash|opted-out

A populated row might look like this:

AEBE52E7-03EE-455A-B3C4-E57283966239|IDFA|"Mozilla/5.0 (iPhone; CPU iPhone OS7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53"|208.185.26.20|1441137534|3cb7232fcc48743000cb86d0d5022bd9|790d12777b2a83253a14c748a1b1cb09b3a91cca|899d3387a5c5a7555d51d2f0a0b7b50e397fe481fd9a58fafb389b7dc94e11f6|0

Populating the User Agent

The user-agent string describes the software (app or browser) and device of a user. This field allows LiveRamp to to perform additional validation on the mobile device IDs.

We recommend that you obtain the user agent with the codes below.

For Android devices:

final String userAgent = System.getProperty("http.agent");

For iOS devices:

NSString *userAgent;

{

struct utsname systemInfo;

uname(&systemInfo);

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];

NSString *baseAgent = [webView stringByEvaluatingJavaScriptFromString:@"

navigator.userAgent"];

NSString *hardware = [NSString stringWithCString:systemInfo.machine encoding:

NSUTF8StringEncoding];

userAgent = [NSString stringWithFormat:@"%@ [FBDV/%@;PPOSDK/%@]", baseAgent,

hardware, kPPOSDKVersion, nil];

}

Populating the Opted-Out Column

The opted-out column should be set to ‘1’ only if you have a policy that allows your mobile app users to explicitly opt out of data collection. Click here for an example of an opt-out policy.

Caution

Do not set the opted-out column to ‘1’ if you detect a ‘do not track’ or ‘limit ad tracking’ signal from the device or operating system. Do not send us any records for devices where you find ‘do not track’ or ‘limit ad tracking’.

Ensure all email addresses meet the requirements below before hashing:

  • The hash input is a valid, non-empty email address.

  • The email address is lowercased.

  • Any whitespace or extra text is removed from the beginning and end of the email address.

Caution

For privacy reasons, LiveRamp does not accept raw (plaintext) email addresses from match partners.

Hash the email address ‘Test@Foo.com’ to verify that your hash function is working properly. ‘Test@Foo.com’ should produce the following alphanumeric strings:

  • MD5: 3cb7232fcc48743000cb86d0d5022bd9

  • SHA-1: 790d12777b2a83253a14c748a1b1cb09b3a91cca

  • SHA-256: 899d3387a5c5a7555d51d2f0a0b7b50e397fe481fd9a58fafb389b7dc94e11f6

Name your file using the exact naming syntax below.

match_{TIMESTAMP}.psv.gz

Caution

Files will be rejected from our servers if a different syntax is used.

"{TIMESTAMP}" = date and time on the Internet in RFC 3339 timestamp standard.

An example file name might look like this:

match_2015-10-28T15:04:05.psv.gz

Renaming a File for Re-Upload

A LiveRamp account manager may ask you to re-upload a file if the first upload fails. When you re-upload a file, be sure to give it a unique name. Once we process a file successfully, we will not reprocess another one with the same name even if it is modified.

For example, if you re-upload a file called "match_2015-11-02T09:07:15.psv.gz", change the name to "match_2015-11-02T09:07:15_part02.psv.gz."

Use your SFTP credentials to upload the file via LiveRamp's SFTP.

Caution

The SFTP server and credentials to use for match partner mobile app files are different than the ones for the LiveRamp SFTP server you might use to upload other LiveRamp files. Make sure to use the correct SFTP information.

We recommend using the open source client “Cyberduck”.

  • Server: sftp.pippio.com

  • Port: 4222

Tip

Upload your files daily to maximize your match rates and device reach.

Note

If you do not have credentials for the LiveRamp SFTP server, email the Match Network team at publisher-success@liveramp.com for assistance.