Adjust can pass data back to your Google Analytics setup. This guide describes how to set your app and configure your Adjust dashboard to fill in attribution data in Google Analytics.

Google Analytics and related documentation uses slightly different terminology, so it’s useful to check the section below on this as well.

1Activating Google Analytics

There are two options for activating the connection between Adjust and Google Analytics

Activating with multiple country-specific tracking IDs

If you have multiple tracking IDs, send your global tracking ID (the top-level ID) and append your lower-level IDs on clicks by using the google_country_property_id=[value] click parameter. Using this click parameter will result in two callbacks being fired: one for each ID. Note that since this is a click parameter, the value will not always be available, e.g., if this is organic traffic. You can find out more about appending click parameters in our Tracker Generation guide, and you can review Google Analytics’ other click parameters here.

1.1Adjust SDK and Google Analytics module

To activate the Google Analytics module integration, copy your tracking ID from your Google Analytics admin panel. In your Adjust dashboard, paste this into the corresponding field in App Settings > Partner Setup > Google Analytics.

It’s that simple and that reliable.

1.2Adjust SDK and Google Analytics SDK

If both the Google Analytics SDK and the Adjust SDK are integrated into your app, then you must match the values each SDK transmits as cid in order to prevent duplicate reporting. By default, the Adjust SDK transmits the IDFA or Google Play Store advertising ID (GPS_ADID), while the Google Analytics SDK automatically generates a unique client ID. Thus, to match these values, you must override the cid that Adjust writes by sending it to Adjust with custom partner parameters.

With custom partner parameters, you can send the cid to Adjust with all activity kinds (install, session, event, etc.).

This is sent to Adjust simply as cid=123456, as per any custom partner parameter. Documentation on the implementation of session partner parameters in the Adjust SDK can be found here for iOS and here for Android.

2Google Analytics naming conventions

You should note some of the differences between Adjust and Google Analytics’ naming conventions for hit type (Adjust’s activities) and campaign structure names:

Hit Types

Google Analytics has four hit types that correspond with Adjust’s events in this way:

Google Analytics Hit Type Adjust equivalent
event Adjust installs, reattributions, or events
transaction Adjust revenue events
item Adjust events that include the item_id partner parameter
screenview Adjust session

Campaign Structure Parameters

Google also uses its own naming conventions for campaign structure parameters:

Adjust Campaign Structure Parameter Name Google UTM Parameter Name Explanation
Network name utm_source campaign source
Campaign name utm_campaign campaign name
Adgroup name utm_content campaign content
Creative name utm_term campaign keyword

3Click parameters

When tracking your marketing spend, you can also append specific parameters that can be forwarded to Google Analytics via Adjust. This follows the general workflow for appending click parameters to a dynamic tracker URL.

These are the available tracker parameters for Google Analytics:

Name Adjust Click Parameter Name Google Parameter Name: Example Value Type Notes
Campaign Medium utm_medium utm_medium: organic string, 50B  
Campaign ID utm_id utm_id: ID string, 100B  
Google Display Ads ID dclid dclid: d_click_id string  
Google Adwords ID gclid gclid: CL6Q­OXyqKUCFcgK2goddQuoHg string Automatically appended by Google. This is not mandatory: if it is appended, it will override the automatically appended Adwords ID.
Screen Name google_cd cd: High Scores string, 2048B Can be appended on click or by the SDK. The click value will override the SDK value.

3.1Click URL examples

When you append click parameters to your tracker URL, they should resemble the following examples.

A URL with the top level set as tracker and the additional campaign structure parameters appended would resemble the following:

https://app.adjust.com/abc123?campaign=[network macro for campaign - utm_source  or hardcoded value from the client]&adgroup=[network macro for adgroup - utm_content or hardcoded value from the client]&creative=[network macro for creative - utm_content or hardcoded value from the client]&utm_medium=[network macro for utm_medium or hardcoded value from the client or hardcoded value from the client]&utm_id=[network macro for utm_id or hardcoded value from the client]&dclid=[network macro for google display ads id or hardcoded value from the client]&gclid=[network macro for google adwords or hardcoded value from the client]&google_cd=[network macro for screen name or hardcoded value from the client]

Alternatively, you can use the bottom-level tracker, and exclude the campaign structure parameters. We will send all the campaign structure parameters that are set for this tracker to Google Analytics. In this case, the URL would resemble this:

https://app.adjust.com/def456?utm_medium=[network macro for utm_medium or hardcoded value from the client or hardcoded value from the client]&utm_id=[network macro for utm_id or hardcoded value from the client]&dclid=[network macro for google display ads id or hardcoded value from the client]&gclid=[network macro for google adwords or hardcoded value from the client]&google_cd=[network macro for screen name or hardcoded value from the client]

All filled campaign structures will be sent to Google Analytics, and any campaign structures that are not set will be dropped. You can read more about campaign structure parameters and how they work in our Tracker Generation guide.

4Partner parameters

Google Analytics also supports a large variety of additional tracking parameters that are useful for tracking in-app events. These parameters are sent as partner parameters from the Adjust SDK, and they should use the parameter names and values below. You can read Google’s specifications for each event parameter in the Google developers guide.

Adjust supports all of Google Analytics’ measurement protocol parameters for mobile. Note the required parameters–Adjust will automatically classify events according to the set of required parameters. If required parameters are missing, the events will be transmitted as events.

Before viewing the full list of partner parameters, be sure to keep in mind Google Analytics requires the following parameters per hit type:

Hit type Required parameter
transaction ti
item in, ti

If the required parameters are missing, the events will not be transmitted as these hit types.

The following are the available partner parameters you can set within the Adjust SDK for each event. Once these values are set, they will be transmitted to Google Analytics.

Name Name in SDK: Example Value Type Event Item Screenview Transaction Notes
Anonymize IP aip: 1 boolean yes yes yes yes Sender’s IP address is anonymized only if any of the following examples are in the payload: &aip=, &aip=0, &aip=1, etc.
Campaign Content cc: content string, 500B yes yes yes yes  
Screen Name cd: High Scores string, 2048B yes yes yes yes Can be appended on click or within the SDK. The click value will override the SDK value.
Campaign ID ci: ID string, 100B yes yes yes yes  
Campaign Keyword ck: Blue Shoes string, 500B yes yes yes yes  
Campaign Medium cm: organic string, 50B yes yes yes yes  
Currency Code cu: EUR string, 10B no yes yes no  
Coupon Code tcc: SUMMER08 string, 500B yes yes yes yes  
Google Display Ads ID dclid: d_click_id string yes yes yes yes  
Document Encoding de: UTF8 string, 20B yes yes yes yes  
Document Title dt: settings string, 1500B yes yes yes yes  
Event Action ea: Action string, 500B required no no no  
Event Category ec: Category string, 150B required no no no  
Event Label el: Label string, 500B yes no no no  
Event Value ev: 55 int yes no no no  
Google Adwords ID gclid string, 500B yes yes yes yes  
Item Code/SKU ic: SKU 45 string, 500B no yes no no  
Item Name in: Shoe string, 500B no required no no  
Item Price ip: 3.50 float no yes no no Precision of up to 6 decimal digits. Can be negative. Default is 0.
Item Quantity iq: 4 int no yes no no Default is 0.
Item Category iv: Blue string, 500B no yes no no  
Non-Interaction Hit ni: 1 boolean yes yes yes yes The following values specify whether a hit is non-interactive: 0 = interactive; 1= non-interactive. The value for installs, sessions and reattributions is 0 as they require the user’s app to be open.
Screen Colors Depth sd: 24bits string, 20B yes yes yes yes  
Screen Resolution sr: 800x600 string, 20B yes yes yes yes  
Transaction Affiliation ta: Member string, 500B no no no yes  
Transaction ID ti: 0D564 string, 500B no required no required  
Transaction Revenue tr: 15.47 currency no no no yes  
Transaction Shipping Cost ts: 3.5 float no no no yes Precision of up to 6 decimal digits, can be negative, default is 0.
Transaction Tax tt: 11.20 float no no no yes Precision of up to 6 decimal digits, can be negative, default is 0.
Viewport Size vp 123x456 string, 20B yes yes yes yes  

5Google Analytics user IDs

Google Analytics allows the matching of mobile traffic with online traffic. You can do this internally by tagging the traffic or by using the user ID (uid). Proper coordination ensures Google Analytics will correctly attribute the traffic across a single user’s devices. Please note that Adjust does not support uid–this section is a suggestion for setting up traffic matching.

You can read more on the difference between user and client IDs in Google’s developers guide.