Google Analytics Native SDK modules for Titanium
Objective-C Java Python JavaScript
Switch branches/tags
Nothing to show
Clone or download
benbahrenburg Merge pull request #26 from caffeinalab/hotfix/customDimensions-prope…

Fixed "customDimensions" property name in the Android module.
Latest commit 5ba040a Apr 3, 2018


A Google Analytics module that provides just what you need, in a consistent way.

This module was developed as a result of the frustration in chasing Google's changing API between SDK versions. Since most developers only care about a few features of the SDK that is what this module provides.


Download the compiled modules at:


Looking for the source? Check out the following:

How to...

Android specifications

If you use ti.playservices, you need to remove the /lib folder in the Android zip module.

Also you need to edit the android manifest, in tiapp.xml, as specified in the Google Analytics dev guide:

<android xmlns:android="">
  <manifest xmlns:android="">
      <!-- Get permission for reliable local dispatching on non-Google Play devices. -->
      <uses-permission android:name="android.permission.WAKE_LOCK"/>

      <!-- Optionally, register AnalyticsReceiver and AnalyticsService to support background dispatching on non-Google Play devices -->
      <receiver android:name="" android:enabled="true">
          <action android:name=""/>
      <service android:name="" android:enabled="true" android:exported="false"/>

      <!-- Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable installation campaign reporting -->
      <receiver android:name="" android:exported="true">
          <action android:name=""/>
      <service android:name=""/>

Add to your project

You add the Ti.GA module into your project using the require keyword as shown below.
var ga = require('');

Module Level Options

Enable Trace You can enable or disable trace by calling ga.setDebug. Provide true to enable or false to disable this option.

The following shows how to enable this feature


OptOut Google Analytics provides the ability to opt out of collecting information. By default you are opt'ed into collecting information.

The following is an example on how to optout of collecting information:


If you have at one point opt'ed out you need to explicitly opt back in. Below is an example of opt'ing into collecting information:


setDispatchInterval The dispatch interval is how often in seconds that Google Analytics information should be submitted to Google.

The following show how to set the dispatch interval to 15 seconds.


setTrackUncaughtExceptions On iOS you can set use the setTrackUncaughtExceptions to track unhandled exceptions.

The following is an example on how to enable this feature.


Dispatch The dispatch method submits data to Google Analytics. Google Analytics will automatically do this for your, but you can "force" this programmatically. If you are going to use this it should only be done while your application is not active and has a network connection.


Creating a tracker

~~~ var tracker = ga.createTracker({ trackingId:'YOUR GOOGLE ANALYTICS TRACKER ID', useSecure:true, debug:true }); ~~~

Adding User ID

If you want to associate user IDs with your analytics data, you'll first need to create a view with User ID enabled.

Then, when a user logs in, pass a unique identifier for that user with the setUserID method on the tracker. You only need to set this once, and all hits for the session from then on will be attributed to that ID.


Adding Screen Viewed

More coming... here is an example for now


Adding Timing

More coming... here is an example for now


Adding Event

More coming... here is an example for now


Adding Social Network

More coming... here is an example for now


Adding Exception

More coming... here is an example for now

        description:"my error description",


Thank you to all of the contributors.

A special thank you to Mauro Piccotti for helping to address Google Play conflicts

Licensing & Support

This project is licensed under the OSI approved Apache Public License (version 2). For details please see the license associated with each project.

Developed by Ben Bahrenburg available on twitter @bencoding