Handling Existing Users Prior to SDK Implementation

Any time the TUNE SDK sees a user we've never seen before, TUNE logs a new install record for said user.  While this works perfectly for new apps being introduced to the app stores, it presents a problem for existing apps in the app store, but new to TUNE. If your mobile app already has an established user base before you implement the TUNE SDK, you will encounter issues with false positives – i.e. "new installs" that are in fact not new to your app; only new to TUNE.

To avoid unnecessary discrepancies and not attribute existing users as new installs when the open your updated app with the TUNE SDK, we recommend you select one of the following methods to inform TUNE about your pre-existing users.


Provide an "Onboarding Date"

The TUNE SDK (Android v4.5+ & iOS v4.9+) can determine when your app was first installed on a given device using the creation datetime (insdate) of the app's install directory for Android and the "original_install_date" field from the Apple install receipt for iOS.  By providing TUNE with a preset "onboarding date", we can inform the TUNE Measurement Engine such that any install record with an "insdate" value before the "onboarding_date" value will automatically be marked as an "existing_user" and made "Organic".

We recommend that you set the Onboarding Date to be the day when the app will first be published to the app store with the TUNE SDK included.

To provide TUNE with your Onboarding date before launching your app with the TUNE SDK, please contact support@tune.com.


Install Data Import Tool

If you know the Advertising Identifiers of your app's pre-existing users that you want to exclude from attribution, you can use our data import tool to register those attributions in the system directly.  This import tool will accept a CSV file with the following information on each row:

  • CSV file per mobile app (site), per identifier type:
    • google_aid
    • ios_ifa
    • android_id
  • publisher_id (optional)

For more detailed information on using the Install Data Import Tool, please see Importing Install Data to TUNE.


setExistingUser SDK Flag

CRITICAL NOTE: The setExistingFlag is only an indicator to tell TUNE that the user is pre-existing. The TUNE SDK does not handle the logic for determining your app's pre-existing users itself; this logic must come from your own internal system.

To flag users as pre-existing in Attribution Analytics, first call setExistingUser(true) for Android before your first Activity resumes or call setExistingUser:YES for iOS before calling measureSession.

For any install where this flag has been set, the new install will be recorded as “Organic” (i.e. not attributed to an advertising partner) in reports and flagged in our database as a pre-existing user. This will give us an install date that we will use for cohorts and other future reports.

Calling setExistingUser before session is measured

When implementing the SDK, you need to know if a user is installing the app for the first time (or if the user is updating the app). Typically, app developers set a preference on the user’s device at the initial install, thereby making the preference present when the user updates their app. When the app developer knows that the user has already installed their app, they can call “setExistingUser(true)” or “setExistingUser:YES”.

Select a preferred platform.


Viewing Pre-Existing Users in the Logs Report

To verify that your pre-existing users have been imported correctly:

  1. Go to the Logs report.
  2. Click on the Installs tab.
  3. Click the Configure Report button.
  4. Check off the Pre-Existing User attribute.
  5. Click Apply.




Disabling/Enabling Install Attribution for Pre-Existing Users

By default, install attribution is disabled for any user that has been flagged as pre-existing.  You can enable install attribution for pre-existing users by clicking on Data Sharing under the Partners tab, toggling the setting to “On” and clicking Update. You can see if the setting is On or Off as the option is green as shown in the following screenshot (which shows the setting is currently Off).