Click here to see your recently viewed pages and most viewed pages.

Google Analytics SDK v4 for Android - Getting Started

This document describes how to get started using the Google Analytics SDK v4 for Android.

  1. Before You Begin
  1. Getting Started
    1. 1. Update AndroidManifest.xml
    2. 2. Initialize Trackers
    3. 3. Create a configuration XML file
    4. 4. Send a Screen View
  1. Next steps

Before you Begin

Before implementing the SDK, make sure you have the following:

Getting Started

There are three steps to getting started with the SDK:

  1. Update AndroidManifest.xml
  2. Initialize Trackers
  3. Create a Configuration XML file

This guide uses code snippets from the Mobile Playground sample application included with the Google Play Services SDK. The complete source for this project is available in: <android-sdk-directory>/extras/google/google_play_services/samples/analytics.

After completing these steps, you'll be able to measure the following with Google Analytics:

  • App installations
  • Active users and demographics
  • Screens and user engagement
  • Crashes and exceptions

1. Updating AndroidManifest.xml

Update your AndroidManifest.xml file by adding the following permissions:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

If your devices are running Google Play Services, add the following meta-data tag as a child of the <application> element:

<meta-data android:name=""
           android:value="@integer/google_play_services_version" />

2. Initialize Trackers

With the new SDK, developers should manage the trackers themselves. To ensure that the metrics are not over-counted, it is highly recommended that the tracker be created and managed in the Application class.

In the following example, three trackers are created and represented by APP_TRACKER, GLOBAL_TRACKER, ECOMMERCE_TRACKER. They are used throughout the application for different purposes.

 * Enum used to identify the tracker that needs to be used for tracking.
 * A single tracker is usually enough for most purposes. In case you do need multiple trackers,
 * storing them all in Application object helps ensure that they are created only once per
 * application instance.
public enum TrackerName {
  APP_TRACKER, // Tracker used only in this app.
  GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
  ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.

HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

Next, the Application class can provide a method to get the tracker that is requested and can create them on demand if needed. Note that the tracker can be created from a PROPERTY_ID using analytics.newTracker(PROPERTY_ID) or it can be created from a xml resource file as analytics.newTracker(R.xml.global_tracker).

synchronized Tracker getTracker(TrackerName trackerId) {
  if (!mTrackers.containsKey(trackerId)) {

    GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
    Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
        : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
            : analytics.newTracker(R.xml.ecommerce_tracker);
    mTrackers.put(trackerId, t);

  return mTrackers.get(trackerId);

Enabling Advertising Features

Enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more.

To enable advertising features requires a single addition to your Google Analytics tracking code to collect the advertising id. Call the enableAdvertisingIdCollection method on the tracker for which you want to enable advertising features. For example:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(

// Enable Advertising Features.

The feature works by collecting the advertising identifier. Please make sure to review and adhere to all applicable SDK policies when using this feature.

3. Create a configuration XML file

Configuration settings can be managed using resources defined in XML. For example, if you have a global tracker you could create a file called global_tracker.xml in your project's res/xml directory and add the following resources:

<?xml version="1.0" encoding="utf-8"?>
  <integer name="ga_sessionTimeout">300</integer>

    <!-- Enable automatic Activity measurement -->
    <bool name="ga_autoActivityTracking">true</bool>

    <!-- The screen names that will appear in reports -->
    <screenName name="">
        AnalyticsSampleApp ScreenViewSampleScreen
    <screenName name="">
        AnalyticsSampleApp EcommerceSampleScreen
    <!--  The following value should be replaced with correct property id. -->
    <string name="ga_trackingId">UA-XXXXXXX-Y</string>

Your lint checker may warn you about the use of the figure dash ('-') in your tracking ID. You can suppress that warning by adding additional attributes to your <resources> tag:

<resources xmlns:tools=""

See the configuration parameters reference for the complete list of parameters you can use to configure your implementation.

Your app is now setup to send data to Google Analytics.

4. Send a Screen View

To send a screen view, set the screen field values on the tracker, then send the hit:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(

// Set screen name.

// Send a screen view.
t.send(new HitBuilders.ScreenViewBuilder().build());

Next steps

You can do much more with Google Analytics, including measuring campaigns, in-app payments and transactions, and user interaction events.

Review the Mobile App Implementation Guide for an overview of how to use Google Analytics to measure user interactions and answer questions about app usage.

The following developer guides provide additional details on how to implement Google Analytics features in your app:

  • Demographics and Remarketing – Use Display Features to understand user demographic data like age/gender and create remarketing audiences for re-engaging users.
  • Measuring Events – Learn how to measure user engagement with interactive content like buttons, videos, and other media using Events.
  • Measuring In-App Payments – Learn how to measure in-app payments and transactions.
  • Measuring Campaigns – Learn how to implement campaign measurement to understand which channels and campaigns are driving app installs.
  • User timings – Learn how to measure user timings in your app to measure load times, engagement with media, and more.
  • Advanced Configuration – Learn more about advanced configuration options, including using multiple trackers.
  • Configuration Parameters – See the complete list of configuration parameters.