Download Tracking

Download Tracking Overview

Conversant conversion tracking works by informing Conversant that an application launch has occurred.

Integration Instructions

  1. Contact your Conversant Account Manager
  2. Plan a download tracking campaign
  3. Receive a unique download tracking ID (sometimes called an "ROI Pixel ID")
  4. Choose an integration method
  5. Integrate
  6. Test
  7. Release

Integration Options

While direct integration with Conversant will provide greater optimization opportunities for your campaigns, we also support the following third-party download tracking services.

If you do not see your preferred service in this list please contact Conversant with a certification request.

Company iOS Android
Conversant (Direct)
AD-X
adeven
Amobee
AppsFlyer
Appsher
Apsalar
Cake
Flurry
HasOffers MobileAppTracking (MAT)
Kochava Kochava
Localytics
TapSense
Tapstream
Trademob

Integration Key

  • - Integrated
  • - Coming Soon

Client-Side Download Tracking

Conversant download tracking works by informing Conversant via a 'postback' that your application has been launched on a specific device. This information is sent in the background as part of application start-up. Because this request will be made in a separate thread, if Conversant cannot be reached for whatever reason (ex. device has limited or no network connectivity) your application will still be able to proceed smoothly. Once Conversant has been successfully informed of the download, the download tracking code will no longer attempt to contact Conversant on application start-up.

Client-Side download tracking is available for both the iOS and Android mobile operating systems:

Both iOS and Android Client-Side files can be downloaded on GitHub using the button below:


iOS Client-Side Download Tracking

Steps to Integrate

Integrate our download tracking code in three simple steps:

  1. Add our class files to your code.
  2. Call our download tracking function at app start-up.
  3. After testing it with your Conversant account manager, submit your updated app to the App Store for release.

After your updated app is available to the public in the App Store you can work with your Conversant account manager to set your download campaign live.

CMDownloadTracker Class

The first step is to add our class files for our download tracking function. In the ios-client-side folder, you will see two files CMDownloadTracker.h and CMDownloadTracker.m.

Add these files to you Xcode project, then import this class into your AppDelegate.m:

 #import "CMDownloadTracker.h"

TrackDownloads Method

The second step is to call our tracker function with your Conversant download tracking ID (a.k.a. Application ID) ("CM_APP_ID") for the application being tracked. Your Account Manager should have provided this via email.

At the end of your UIApplication Delegate’s application:didFinishLaunchingWithOptions call this static selector:

[CMDownloadTracker trackWithAppID:@"CM_APP_ID"];

This will run on a background thread, confirming the app activation with our server. Once we’ve successfully tracked the app activation this will become a no-op and will no longer contact our server.

Testing

Before releasing your app:

  1. Build and run your app on a device with network access.
  2. Email your Account Manager to confirm that you have generated an install.
  3. Your Account Manager can confirm that the activation was received on our end.

Android Client-Side Download Tracking

Integration Process

Set up download tracking code in four simple steps:

  1. Configure the download tracking application ID (appId) provided by your Conversant representative.
  2. Add the Conversant class file CMDownloadTracker.java to your application code.
  3. Call our download tracking function at app start-up.
  4. After testing it with your Conversant account manager, submit your updated app to Google Play or the Amazon Appstore for release.

After your updated app is available to the public you can work with your Conversant account manager to set your download campaign live.

CMDownloadTracker

The first step is to add our class files for our download tracking function. In the android-client-side folder, you will see a java class file CMDownloadTracker.java.

Add CMDownloadTracker.java to your Eclipse project then import the package into your start-up Activity:

 import com.yourpackagename.CMDownloadTracker;

In CMDownloadTracker.java, be sure to update the Android package on line 1 package com.conversantmedia.android; to your app package's name.

Conversant uses the hashed Android ID for matching downloads. Call the following tracker method during your main Activity’s onCreate method, passing in your app’s Context and the download tracking ID (appID) String provided by your Conversant account manager.

  • Hashed Android ID - call this method (be sure to replace 987654 with your app id):
CMDownloadTracker.trackDownload(getApplicationContext(), "987654");

Notes:

  • This information is sent in the background as part of application start-up. Because this request will be made in a separate thread, if Conversant cannot be reached for whatever reason (e.g. device has no network) your application will still be able to proceed smoothly.
  • Once Conversant has been successfully informed of the download, the download tracking code will no longer attempt to contact Conversant on application start-up.

Integration Testing

Before releasing your app:

  1. Build and run your app on a device with network access.
  2. Email your Account Manager to confirm that you have generated an install.
  3. Your Account Manager can confirm that the activation was received on our end.

Server-Side Download Tracking

Conversant Server-Side Download Tracking records app installs via a server-to-server postback, rather than directly from the app itself. This requires that the client is already collecting this information on their server, and that they are receiving the necessary ID(s) to enable Conversant's correlation.

Publishers who choose not to use client-side integration may use the server-to-server (or “server-side”) solution by firing our postback for each first-time app launch.

Postback Policy

We accept individual postbacks or batch requests for download conversion tracking.

If you are planning on batching the requests, we require that you report a given download to Conversant within 24 hours of the actual download. To better optimize your campaign in real-time, we recommend that batch requests be sent every hour.

Work with your Conversant Account Manager to come up with a postback implementation that works best for you.

Postback Setup

We require that there is only a single postback per user, i.e. don't fire the postback every time a given user launches the app, as this would create unnecessary load on our servers.

If you choose Server-Side implementation over Client-Side Implementation, please notify us as soon as your release is live so that we may verify the integration is configured correctly.

Server-Side Postback URL and Parameters

All variables below are highlighted in bold and uppercase.

Android

http://ads2.greystripe.com/AdBridgeServer/track.htm?gaid=GOOGLE_ADVERTISER_ID&hid=HASHED_ANDROID_ID&appid=CM_APP_ID&action=dl

iOS

http://ads2.greystripe.com/AdBridgeServer/track.htm?idfa=IDFA&appid=CM_APP_ID&action=dl

Parameter Definitions

Parameter NameParameter ValueComment
gaidGoogle Advertiser ID (Android)Device ID (Android) provided by Google. Do not hash this value.
hidSHA-1 Hashed ANDROID_ID (Android)Device ID (Android). Send the value hashed (SHA-1).
idfaIDFA (iOS)Device ID (iOS). Required as of June 2013. Do not hash this value. Requires AdSupport.framework
appidConversant Download Tracking ID
Example: 100009876
Contact your Conversant Account Manager for your download tracking ID
actiondl"dl" records the action as a download. This parameter is always the same

* Note: UDID and Hashed MAC address for iOS have been deprecated.

Heads Up! All hashed values must be hashed using SHA-1 hex encryption so that the values sent to us match the values we have recorded from the click on the ad.

For more information on SHA-1, click here. We can provide sample code and examples upon request.

Example postback for an Android app:

http://ads2.greystripe.com/AdBridgeServer/track.htm?hid=15b5057354dc1eb90b0f202f17529f4c366ed383&appid=100003266&action=dl

Example postback for an iOS 6 app:

http://ads2.greystripe.com/AdBridgeServer/track.htm?idfa=CDBC23D8-21DD-566A-B4A1-B45243245142&appid=100003265&action=dl