Skip to content

First of all!

Michael edited this page Sep 23, 2017 · 4 revisions

Get library

With gradle:

compile 'com.github.programmerr47:ganalytics-core:1.1.0'

With maven:

<dependency>
  <groupId>com.github.programmerr47</groupId>
  <artifactId>ganalytics-core</artifactId>
  <version>1.1.0</version>
  <type>pom</type>
</dependency>

Basic Usage

To start with gathering analytics:

  1. Create an group or category interface and fill it with necessary annotations:
@Prefix
interface CategoryInterface {
    fun action()
    @NoPrefix fun otherAction(@Label(LabelConverter::class) String label)
}

or

interface GroupInterface {
    @Prefix fun category(): CategoryInterface
    @Convention(NamingConventions.LOWER_CAMEL_CASE) fun otherCategory(): OtherCategoryInterface
}

For more information about interfaces and annotations read linked sections.

  1. Prepare Ganalytics instance through:

For group interfaces:

val ganalytics = Ganalytics({ System.out.println(it) /**or do something with received incoming events**/ }) {
     cutOffAnalyticsClassPrefix = false
     prefixSplitter = "_"
     namingConvention = NamingConventions.LOWER_SNAKE_CASE
     labelTypeConverters += TypeConverterPair<DummyDataClass> { it.name } +
             TypeConverterPair<DummyReversedClass> { it.id.toString() } 
}

wich is equal to:

val ganalytics = GanalyticsSettings {
    cutOffAnalyticsClassPrefix = false
    prefixSplitter = "_"
    namingConvention = NamingConventions.LOWER_SNAKE_CASE
    labelTypeConverters += TypeConverterPair<DummyDataClass> { it.name } +
            TypeConverterPair<DummyReversedClass> { it.id.toString() }
}.createGroup { System.out.println(it) /**or do something with received incoming events**/ }

For category interfaces:

val ganalytics = GanalyticsSettings {
    cutOffAnalyticsClassPrefix = false
    prefixSplitter = "_"
    namingConvention = NamingConventions.LOWER_SNAKE_CASE
    labelTypeConverters += TypeConverterPair<DummyDataClass> { it.name } +
            TypeConverterPair<DummyReversedClass> { it.id.toString() }
}.createSingle { System.out.println(it) /** or do something with received incoming events**/ }
  1. Pass an interface class to ganalytics:

val analytics = ganalytics.create(GroupInterface::class)

  1. Now you can use analytics. For example:

analytics.category().otherAction("label")

will print to the standart output: Event(category=sampleinterface, action=sampleinterface_method1)

Note: instead of System.out.println you can pass, for example:

googleAnalyticsTracker.send(HitBuilders.EventBuilder()
        .setCategory(it.category)
        .setAction(it.action)
        .setLabel(it.label)
        .setValue(it.value)
        .build())

Or any analytics method as you want.

For more info of basic usage see samples folder in project. Also please visit the wiki pages to know more details.

л

Clone this wiki locally