tracker-android-sample

Android client sample for KARTE

Setting up

1. Add to build.gradle

Add the module to the dependencies of app/build.gradle

repositories {
  maven { url 'https://github.com/plaidev/tracker-android-sample/raw/master/maven-repo' }
}

dependencies {
  compile 'io.karte.android:tracker:0.0.3'
}

2. Implement set up code in entry point of Application or Activity

import io.karte.android.tracker.Tracker;

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ...

    Tracker.getInstance(this, "YOUR_APP_KEY");
  }
}

3. Add to event tracking code

View event to track opening a view

Tracker tracker = Tracker.getInstance(this, "YOUR_APP_KEY");
try {
  JSONObject values = new JSONObject();
  values.put("sample_key", "sample_value");
  tracker.view("first_view", values);
} catch (JSONException e) {
  Log.e("App", "Failed to construct JSONObject", e);
}

Identify event to track user infomation

Tracker tracker = Tracker.getInstance(this, "YOUR_APP_KEY");
try {
  JSONObject values = new JSONObject();
  values.put("user_id", user_id);
  values.put("name", user_name);
  tracker.identify(values);
} catch (JSONException e) {
  Log.e("App", "Failed to construct JSONObject", e);
}

Custom event

Tracker tracker = Tracker.getInstance(this, "YOUR_APP_KEY");
try {
  JSONObject values = new JSONObject();
  values.put("sample_key", "sample_value");
  tracker.track("sample_event_name", values);
} catch (JSONException e) {
  Log.e("App", "Failed to construct JSONObject", e);
}

4. (Option) Track the instance id of Firebase Cloud Messaging

Add a class to track (Example)

public class MyKarteFirebaseInstanceIdService extends KarteFirebaseInstanceIdService {

  protected Tracker getTracker() {
    return Tracker.getInstance(this, SampleApp.APP_KEY);
  }
}

Add an intent filter to AndroidManifest.xml (Example)

        <service android:name=".MyKarteFirebaseInstanceIdService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
            </intent-filter>
        </service>