You are on page 1of 9

mobile app tracking

hasoffers

Best Practices
for Tracking App-to-App Installs

Prepared by the Mobile App Tracking Engineering Team ©2012 HasOffers, Inc. | All rights reserved

Best Practices for Tracking App-to-App Installs Page 2

mobile app tracking
hasoffers

Best Practices for Tracking App-to-App Installs
Table of Contents
1. Unique Identifiers 2. How Unique Identifier Attribution Works 3. Including Device ID in Tracking Links 4. Including OS ID (Android ID) in Tracking Links

5. Including MAC Address in Tracking Links 6. Including ODIN in Tracking Links 7. Including OpenUDID in Tracking Links 8. Including User IDs in Tracking Links (cross-promotion) 9. Including Truste’s TPid in Tracking Links 10. Conclusion

Best Practices for Tracking App-to-App Installs Page 3

mobile app tracking
hasoffers

1. Unique Identifiers In an app-to-app scenario, the app displaying the advertisement generally has access to unique identifiers that are not available in a mobile web environment. We recommend including all available unique identifiers in the tracking link to increase attribution accuracy. Currently, Mobile App Tracking supports the following unique identifiers: Device ID The UDID of the iOS device or DEVICE ID of the Android device (IMEI for GSM phones, MEID or ESN for CDMA phones, or SerialID for tablets without a cell radio). iOS UDID:
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIDevice_Class/Deprecation Appendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instp/UIDevice/uniqueIdentifier

Android DEVICE ID:
http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29

OS ID The ANDROID_ID for Android devices only. It is 64-bit number (as a hex string) that is randomly generated on the device's first boot and should remain constant for the lifetime of the device.
http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID

Mac Address The MAC address of the phone’s wifi adapter. ODIN The ODIN of the device. To be generated or retrieved using the official implementation according to: http://code.google.com/p/odinmobile/wiki/ODIN1 OpenUDID The OpenUDID of the device. To be generated or retrieved using the official implementation according to: http://OpenUDID.org

Best Practices for Tracking App-to-App Installs Page 4

mobile app tracking
hasoffers

User ID ID generated by app developer (advertiser) that is the same ID of the user in their system. This ID will be the same as long as the same user is using the app. TPid The TPid is a persistent cross-application unique device identifier that TRUSTe has created as a privacy-safe alternative to the deprecated UDID on the iPhone. The TPid is deletable, expirable and revocable. 2. How Unique Identifier Attribution Works The purpose of including any available unique identifiers in the click link is to match those identifiers upon install. While device fingerprinting is ~96% accurate, unique identifier matching is 100% accurate making implementation of all available unique identifiers a recommended best practice when available. Unique identifier attribution works by specifying a unique identifier such as MAC Address in the click link. MAC Address would be appended onto a tracking link like this:
http://hastrk3.com/pub_c?adgroup_id=553&mac_address=E0:F8:47:AC:D5:6C

Mobile App Tracking associates the additional unique identifier of the user’s MAC Address and starts a tracking session. After the user downloads and installs the mobile app, the MAT SDK collects the user’s MAC Address again (E0:F8:47:AC:D5:6C). The tracking servers search for any tracking sessions associated with this MAC Address. In this example, there would be a tracking session started with ad group 553 which is associated with: mac_address=E0:F8:47:AC:D5:6C publisher_id=365 site_id=533 *site_id is the ID of the mobile app campaign_id=232757 The tracking server attributes the install to publisher ID 365 and campaign ID 232757 by matching the MAC Address from the click to the subsequent install.

Best Practices for Tracking App-to-App Installs Page 5

mobile app tracking
hasoffers

Unique Identifier attribution only works when a unique identifier passed in on click is collected from the SDK upon install. If the unique identifier passed in on click cannot be collected upon install, then unique identifier attribution cannot be used. In these cases where unique identifier attribution cannot be used, tracking servers rely on our device fingerprinting methodology. For this reason, it is important for app-to-app tracking to be conscientious of what unique identifiers your developers have the SDK setup to collect and which unique identifiers you can pass in from a publisher into tracking links. 3. Including Device ID in Tracking Links Device ID - the UDID of the iOS device or DEVICE ID of the Android device - is the original unique identifier. Device ID matching is a form of unique identifier attribution in which a Device ID on click is matched to an install with the same Device ID. With Apple deprecating this parameter, many other unique identifiers are being used as well. Several ad networks still rely on UDID as the basis for tracking installs. Since Mobile App Tracking is an agnostic platform, it is at your discretion to decide whether you want your SDKs to collect the device ID for the purpose of Device ID matching. If you intend to use Device ID, it is recommended to use at least one additional unique identifier as well, in preparation for UDID deprecation on iOS. You can pass the raw value of Device ID into a tracking link using the “device_id” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&device_id=a815bb11d06381aa1b8fc7d451af7b08d29eec3

You can pass an MD5 encrypted value of Device ID by using the “device_id_md5” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&device_id_md5=78C5D0F91B5F6AA187BE0ABC1F56C97C

You can pass an Sha1 encrypted value of Device ID by using the “device_id_sha15” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&device_id_sha1=0F23610B6AD8DBE2E2FC6A02CBFA7789 C76FAAD3

Best Practices for Tracking App-to-App Installs Page 6

mobile app tracking
hasoffers

4. Including OS ID (Android ID) in Tracking Links The OS ID is our parameter for Google’s Android ID. OS ID stands for operating system identifier. Only Android devices should be using the OS ID parameter to store the Android ID. The current version of the SDK collects the Android ID and stores it as the OS ID. The OS ID value can be included in tracking links, allowing for unique identifier attribution based on this value. You can pass the raw value of Android ID into a tracking link using the “os_id” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&os_id=9774d56d682e549c

5. Including MAC Address in Tracking Links A growing number of publishers and ad networks are using MAC Address as the unique device identifier. The MAC address is the unique number identifying the device’s wifi adapter. The MAT SDK collects the device MAC Address by default. The raw value is encrypted and sent to our tracking servers. Our tracking servers take the raw value of the MAC Address and store MD5 and Sha1 versions as well. This allows the raw value, MD5, or Sha1 version of MAC Address to be included in tracking links, allowing unique identifier matching to be done based on any of these versions. You can pass the raw value of MAC Address into a tracking link using the “mac_address” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&mac_address=E0:F8:47:AC:D5:6C

You can pass an MD5 encrypted value of Mac Address by using the “mac_address_md5” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&mac_address_md5=78C5D0F91B5F6AA187BE0ABC 1F56C97C

You can pass an Sha1 encrypted value of Mac Address by using the “mac_address_sha15” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&mac_address_sha1=0F23610B6AD8DBE2E2FC6A02CBFA7 789C76FAAD3

Best Practices for Tracking App-to-App Installs Page 7

mobile app tracking
hasoffers

The MAT SDK collects the device MAC Address by default. The raw value is encrypted and sent to our tracking servers. Our tracking servers take the raw value of the MAC Address and store MD5 and Sha1 versions as well. This allows the raw value, MD5, or Sha1 version of MAC Address to be included in tracking links, allowing unique identifier matching to be done based on any of these versions. 6. Including ODIN in Tracking Links ODIN is a standard way of creating a Sha1 hash of the device’s MAC Address. ODIN should be generated or retrieved using the official implementation according to: http://code.google.com/p/odinmobile/wiki/ODIN1 If the SDK is setup to collect MAC Address, then ODIN can be specified in tracking links and matched on install since the tracking servers can take the collected MAC Address and generate then ODIN value for matching. If the SDK is setup only to collect ODIN, then only ODIN can be specified in tracking links with publishers and no other form of unique identifier attribution matching can be used. You can pass the ODIN value into a tracking link using the “odin” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&odin=82a53f1222f8781a5063a773231d4a7ee41bdd6f

7. Including OpenUDID in Tracking Links The OpenUDID of the device is a unique value generated by additional code provided by the OpenUDID organization. OpenUDID should be generated or retrieved using the official implementation according to: http://OpenUDID.org To use OpenUDID as part of unique identifier attribution, you will need pass this additional value into the SDK. Once the SDK is configured to collect the OpenUDID value, you can have publishers (specifically ad networks) include the OpenUDID value in tracking links. After this value is configured for tracking by the ad network, any tracking session started and associated with OpenUDID on click can be attributed to the install associated with the same OpenUDID. You can pass the OpenUDID value into a tracking link using the “open_udid” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&open_udid=ea3cd8b5c6f3701a4bce288be656ac1647 0f4d06

Best Practices for Tracking App-to-App Installs Page 8

mobile app tracking
hasoffers

8. Including User IDs in Tracking Links (cross-promotion) If you have multiple mobile apps and you have your own unique identifier for a user that is the same cross the multiple apps, you can use the user_id parameter to do User ID matching for unique identifier attribution. For User ID matching to work as part of unique identifier attribution, the same user ID will be need to passed into the tracking link from the app publishing the advertisement and the app being installed. User IDs generated by the developer specifically for a single mobile app can not be used for User ID matching, since the user ID would be different from click and install. You can pass your own user ID into a tracking link using the “user_id” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&user_id=tom123

9. Including Truste’s TPid in Tracking Linkst TRUSTe has developed their own unique identifier called TPid. The TPid is a persistent cross-application unique device identifier that TRUSTe has created as a privacy-safe alternative to the deprecated UDID on the iPhone. The TPid is deletable, expirable and revocable. Generating the TPid requires an SDK provided by TRUSTe. Unique identifier attribution can be done based on the TPid if both the publisher and the advertiser have the TRUSTe SDK installed. You can pass the TRUSTe TPid into a tracking link using the “tpid” parameter:
http://hastrk3.com/pub_c?adgroup_id=553&tpid=x123456789

The Mobile App Tracking SDK will need to be setup to collect the TPid as well.

Best Practices for Tracking App-to-App Installs Page 9

mobile app tracking
hasoffers

10. Conclusion While tracking and attributing installs on Android is stable, the methods and unique identifier used are changing on iOS. To adapt to these changes multiple unique identifiers should be used for iOS. This allows you to use unique identifier matching with your publishers without requiring your publishers to install another SDK as well. Working with Mobile App Tracking’s integrated networks already takes into account which unique identifiers can be collected and passed into tracking links. Meanwhile, working with your own publishers or ad networks not currently integrated with MAT, requires you to be conscious of which unique identifiers are supported for install attribution.