This document describes how to get started using the Google Analytics SDK v4 for Android.
Before you Begin
Before implementing the SDK, make sure you have the following:
- Install the Android SDK
- Download the Google Play Services SDK
- At least one Google Analytics property and app view (profile) to which to send data from your app.
Getting Started
There are three steps to getting started with the SDK:
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/analytics/mobileplayground.
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" />
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(
TrackerName.APP_TRACKER);
// Enable Advertising Features.
t.enableAdvertisingIdCollection(true);
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"?>
<resources>
<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="com.google.android.gms.analytics.samples.mobileplayground.ScreenviewFragment">
AnalyticsSampleApp ScreenViewSampleScreen
</screenName>
<screenName name="com.google.android.gms.analytics.samples.mobileplayground.EcommerceFragment">
AnalyticsSampleApp EcommerceSampleScreen
</screenName>
<!-- The following value should be replaced with correct property id. -->
<string name="ga_trackingId">UA-XXXXXXX-Y</string>
</resources>
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="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
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(
TrackerName.APP_TRACKER);
// Set screen name.
t.setScreenName(screenName);
// Send a screen view.
t.send(new HitBuilders.AppViewBuilder().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 lists 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.