Testing Android SDK Integration Using the Test App

Introduction

AppsFlyer provides a simple test app to test the integration of your app with our Android SDK.

Using the Android SDK Integration test app, you can track integration issues in your project. The test app can perform automated click-install tests that provide a non-organic install on your dashboard (before and after publishing).
DOWNLOAD LINK

Test App Overview and Set-Up

  1. Integrate the AppsFlyer’s Android SDK into your app and install the app on your device. You can install the app any way you like - directly from the API, via Android studio or via the Play Store (if the version in the store already has the SDK integrated). What's important is not to launch it after installing it.
  2. Download the test app from Google Play and open it.
  3. The following window is displayed:

    test_integration_first_screen.png
    Click the WHITELIST DEVICE button to display your device’s whitelist parameter values - Android ID and Google Advertising ID.

    test_integration_white_list_device.png
    Click the green share button to send these values via email.

  4. Click on the blue WHITELIST button to whitelist your device.
  5. Enter your login details to whitelist the device

    test_integration_login_screen.png
    These values are added to your account’s Whitelist page. Make sure you run the test app on a Whitelisted device, otherwise you are unable to receive a non-organic install.

  6. Go back to the main screen and enter your app’s Package Name or App name in the search bar (e.g. android.appsflyer.sampleapp or ‘Sample App’)

    test_integration_search_app.png

  7. Click SDK INTEGRATION TESTING to begin performing tests on your selected app.

Testing a Non-Organic Install

Once the SDK INTEGRATION test finishes running and no integration errors are discovered, the following window is displayed:

test_integration_success_screen.png

As a result of this test, a referrer broadcast has been simulated on your app - this works for both published and unpublished apps. If your app is published in the Play Store, the attribution is generated using the Play Store Referrer. Otherwise, it is generated using Device ID Matching.

  1. In the AppsFlyer dashboard, go to the Overview Page.
  2. Filter by Media Source AppsFlyer_Test

    filter_test.png

You can see a non-organic install on your dashboard, under the AppsFlyer_Test media source.

test_media_source.png

The integration is complete and you are good to go!

Testing Retargeting Attribution

In addition to install attribution, the test app can test your Retargeting and Deep Link configurations.

Make sure you to use the Integration Test at least once, before trying the Retargeting Test.

  1. Click RETARGETING TESTING on the home page.
    The following window opens:

    retargeting-testing-screen.png

  2. Enter your app’s Deep Link scheme and host (according to your AndroidManifest configurations). Select Http:// to quickly add http:// to the search bar.
  3. Once your scheme is found, the test app generates a tracking link that redirects back to your deep linked activity.

If the deep linked Activity is the main Activity or contains AppsFlyerLib.getInstance().sendDeepLinkData(this) in the onCreate() method the test works and the test app displays the following screen:

retargeting-testing-screen-success.png

 Note

The test app waits six seconds before timing-out the attempt - a slow internet connection may cause the test to fail.


You can use the test to generate Re-Engagement attribution in your dashboard. To do so, make sure that your app has retargeting enabled on the dashboard, and that you open the app at least three times before testing.

If everything is successful, you can see a Re-Engagement attribution under AppsFlyer_Test media source and Test campaign, as follows:

Detecting Integration Problems in your App

The test app can be used to quickly detect common problems with the integration.

If you are not using AppsFlyer's BroadcastReceiver directly, but have a custom BroadcastReceiver, the following warning is displayed: 

custom-broadcast-receiver-error.png

If you do not have a custom BroadcastReceiver and you receive a warning, implement your receiver according to our guide.

If you tried to run a test on an app that is not integrated correctly, the following error message is displayed:

 Note

The error message may vary in accordance with the errors found.

custom-broadcast-receiver-error-2.png

If you receive an error, try to fix it in your project, rebuild and test again.

Possible Integration Errors

The table lists all possible errors and their corresponding solutions:

# Error Message Cause Solution

1

"This app cannot be monitored.
Please make sure you are using a supported AppsFlyer SDK version"

Unsupported SDK versions:

4.3.9 and below, 4.6.1, 4.6.3, 4.6.4

2

"Your_PackageName is not installed"

Install your integrated app and run the test again.

3

"android.permission.INTERNET is missing from the
AndroidManifest.xml"

Add the Internet permission to your app’s manifest, without it the SDK will not run.

4

"Please make sure you have
added your app to the
AppsFlyer's dashboard"

Add your package name in your AppsFlyer dashboard.

5

"AppsFlyer’s BroadcastReceiver is missing from the
AndroidManifest.xml"

Your referrer could not be collected from the app (this message applies for unpublished apps as well). Make sure you integrated your BroadcastReceiver properly.

6

"Google Services is not integrated correctly"

Could not collect your Advertising ID from the app. Make sure to properly integrate Google Play Services in your app, as this can cause a problem with attribution.

7

"Dev Key could not be verified.
Please check your dashboard for your account’s Dev Key"

Make sure you entered the proper Dev Key, which can be found in your dashboard under “SDK Integration” tab

8

"This app cannot be monitored.
Please make sure that you have an active internet connection,
and that sendDeepLinkData() is
present in your deep linked
activity"

Your app is being opened via your browser - a bad internet connection may lead to the test app being timeout.

If you do not use sendDeepLinkData() in your activity, the deep link launch is not attributed.

Was this article helpful?
3 out of 7 found this helpful