https://github.com/guitcastro/darylandroidtracker
Use multiples analytics and other trackers in your Application easily
https://github.com/guitcastro/darylandroidtracker
crashlytics custom-tracker facebook firebase google-analytics intercom mixpanel multiples-analytics tracker
Last synced: about 1 year ago
JSON representation
Use multiples analytics and other trackers in your Application easily
- Host: GitHub
- URL: https://github.com/guitcastro/darylandroidtracker
- Owner: guitcastro
- License: mit
- Created: 2016-06-22T14:37:21.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-05-25T14:36:37.000Z (about 8 years ago)
- Last Synced: 2025-03-23T21:35:42.096Z (about 1 year ago)
- Topics: crashlytics, custom-tracker, facebook, firebase, google-analytics, intercom, mixpanel, multiples-analytics, tracker
- Language: Java
- Homepage:
- Size: 261 KB
- Stars: 39
- Watchers: 2
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DarylAndroidTracker [](https://codecov.io/gh/guitcastro/DarylAndroidTracker)
Use multiple analytics and other trackers in your Application easily
## Supported trackers:
* Google Analytics
* Crashlytics
* Firebase
* Facebook
* Dito
* Intercom
* Mixpanel
## Installing
Just added the necessary SDKs to your gradle file:
```
def darylVersion = '0.0.58'
compile "com.appprova.daryl:daryl:$darylVersion"
compile "com.appprova.daryl:googleanalytics:$darylVersion"
compile "com.appprova.daryl:crashlytics:$darylVersion"
compile "com.appprova.daryl:firebase:$darylVersion"
compile "com.appprova.daryl:facebook:$darylVersion"
compile "com.appprova.daryl:dito:$darylVersion"
compile "com.appprova.daryl:intercom:$darylVersion"
compile "com.appprova.daryl:mixpanel:$darylVersion"
```
## Usages instructions
### Registering your trackers
#### Google Analytics
```
GoogleAnalytics googleAnalytics = GoogleAnalytics
.getInstance(app.getApplicationContext());
Tracker googleTracker = googleAnalytics.newTracker(R.xml.app_tracker);
googleTracker.enableAdvertisingIdCollection(true);
TrackerAdapter googleAnalyticsTracker = new GoogleAnalyticsTracker(googleTracker);
```
#### Firebase
```
TrackerAdapter firebaseTracker = new FirebaseTracker(FirebaseAnalytics.getInstance(context.getApplicationContext()));
```
#### CrashLytics Log
```
TrackerAdapter crashlyticsLogTracker = new CrashlyticsLogTracker();
```
#### Facebook Log
```
TrackerAdapter facebookTracker = new FacebookTracker(AppEventsLogger.newLogger(context.getApplicationContext()));
```
#### Intercom
```
TrackerAdapter intercomTracker = new IntercomTracker(Intercom.client());
```
#### Mixpanel
```
MixpanelAPI mixpanel =
MixpanelAPI.getInstance(context, MIXPANEL_TOKEN);
TrackerAdapter mixpanelTracer = new MixpanelTracer(mixpanelApi);
```
### Registering multiple trackers
```
MultipleTrackerAdapter trackerAdapter = new MultipleTrackerAdapter();
trackerAdapter.addTracker(googleAnalyticsTracker);
trackerAdapter.addTracker(ditoTracker);
trackerAdapter.addTracker(firebaseTracker);
trackerAdapter.addTracker(facebookTracker);
trackerAdapter.addTracker(intercomTracker);
trackerAdapter.addTracker(mixpanelTracker);
if (!BuildConfig.DEBUG) {
trackerAdapter.addTracker(crashlyticsLogTracker);
}
```
### Starting Tracking
After all trackers are registered you can just use the multiple tracker to track all events at once
#### Tracking event
```
trackerAdapter.logEvent(new EventBuilder("event name")
.setCategory("event category")
.setAction("event action")
.setProperty("custom property", "property value")
.get());
```
#### Tracking page view
```
trackerAdapter.logPageView("page name");
```
#### Tracking exceptions
Avaibles for : Firebase, CrashlyticsLog and Google Analytics
```
trackerAdapter.logException(new Exception("something went wrong"));
```
#### Logging user properties
Avaibles for : Firebase, CrashlyticsLog
```
trackerAdapter.setUserProperty(Constants.USER_PROPERTY_EMAIL, "example@gmail.com");
```
## Creating custom tracker
In oder to create a custom tracker you just need to implement the `TrackerAdapter` interface.