-
Notifications
You must be signed in to change notification settings - Fork 4
First of all!
Michael edited this page Sep 23, 2017
·
4 revisions
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>
To start with gathering analytics:
- 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.
- 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**/ }
- Pass an interface class to
ganalytics
:
val analytics = ganalytics.create(GroupInterface::class)
- 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.
л