Android Integration

1. Gradle Integration:

Add the repository

maven { url 'https://bitbucket.org/tbdsrl/instal-publisher-sdk-releases/raw/master/' }

Add the dependency to our sdk

compile 'com.instal:instal-advertiser-sdk:1.+'

2. Integration:

In your AndroidManifest.xml, add the following elements to define Instal receveir (in the last line insert your api key as value):

<service
    android:name="com.instal.advertiser.sdk.CampaignService"
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:exported="false"/>

<receiver
    android:name="com.instal.advertiser.sdk.CampaignReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER"/>
    </intent-filter>
</receiver>
<meta-data android:name="instal_api_key" android:value="{{ api_key|default:"API_KEY" }}" />

3. Multiple sources tracking support:

In case you are using Google Analytics for campaign tracking your AndroidManifest.xml should look like this:

<service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
<meta-data android:name="instal_delegate_receiver" android:value="com.google.android.gms.analytics.CampaignTrackingReceiver" />

In your AndroidManifest.xml you need to remove existing CampaignTrackingReceiver receiver element to avoid conflicts, it will be called by instal receiver thanks to instal_delegate_receiver definition.

4. Advertising Id support

You need to add google play services to your project to use Advertising id. Instructions are available at http://developer.android.com/google/play-services/setup.html

Proguard configuration

In case you are using Proguard in you project you must add the following rules to keep Google Play Services classes:

-keep public class * extends android.content.BroadcastReceiver
-keep class com.google.android.gms.common.GooglePlayServicesUtil {
    *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
    *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
    *;
}

5. Tracking Events

To track an event you need to call

InstalAnalyticsTracker.getInstance(<context>).trackEvent(String event);

If you want to add numeric value to your event use passing NSNubmer object as value.

InstalAnalyticsTracker.getInstance(<context>).trackEvent(String event, float value);

6. Test

For testing the android integration you have to fire the post installation signal using your adb console:

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n {{ store_id|default:"com.instal.advertiser.sdk.demo" }}/com.instal.advertiser.sdk.CampaignReceiver --es "referrer" "callback_url=https%3A%2F%2Finstal.com%2Ftrkinst%2F%3Fclkid%3Dsdk-syntetic-test-android-sdk%26utm_source%3Dinstal.com%26appid={{store_id|default:"STORE_ID"}}" --ez "debug" true

Support

For any question do not hesitate to contact

E-Mail: support@instal.com