AnalyticsKit-Android

Additional

Language
Java
Version
0.7.0 (Sep 19, 2017)
Created
Mar 4, 2016
Updated
Feb 21, 2018
Owner
busybusy
Contributors
trevjonez
jahunt1
simon-the-canadian
3
Activity
Badge
Generate
Download
Source code

Show card

AnalyticsKit-Android

Analytics framework for Android

Installation

Add the JitPack repository to the end of your root build.gradle:

allprojects {
  repositories {
   ...
   maven { url "https://jitpack.io" }
  }
 }

In your module's build.gradle file, add the dependency:

dependencies {
  compile 'com.github.busybusy.AnalyticsKit-Android:analyticskit:0.6.0'
        ...
 }

You can include the implemented providers you want by adding them to the same dependency block:

dependencies {
  ...
        compile 'com.github.busybusy.AnalyticsKit-Android:answers-provider:0.6.0'
 }

Usage

In your Application's onCreate() method, register your provider SDKs as normal with your API keys. Then initialize AnalyticsKit-Android to work with those providers.

AnalyticsKit.getInstance()
    .registerProvider(new AnswersProvider(Answers.getInstance()));

Send events where appropriate in your application code.

new AnalyticsEvent("Your Event Name")
    .putAttribute("key", "value")
    .send();

The framework provides a ContentViewEvent to facilitate capturing content views:

new ContentViewEvent()
    .putAttribute("screen_name", "Dashboard")
    .putAttribute("category", "navigation")
    .send();

Event Priorities

By default, AnalyticsEvent objects have priority 0. However, you can set any integer priority on your events. It is up to you to decide on your priority scheme and provider filtering.

new AnalyticsEvent("Readme Read Event")
    .putAttribute("read", true)
    .setPriority(7)
    .send();

By default, providers will log all events regardless of priority. If desired, you can configure providers with a PriorityFilter so that only events that pass the PriorityFilter's shouldLog() filter method will be logged by that provider. In the following example, only AnalyticsEvent objects with priority less than 10 will be logged by the Answers provider:

answersProvider.setPriorityFilter(new AnalyticsKitProvider.PriorityFilter()
{
    @Override
    public boolean shouldLog(int priorityLevel)
    {
        return priorityLevel < 10;
    }
});

License

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.