Conversion Tracking

For details on the new app conversion tracking and remarketing integration, see specifications here. The new integration provides a much more seamless conversion tracking setup with one-stop linking and conversion import experience. New users should use the latest integration as we will be deprecating the legacy API soon.

We suggest that AdWords advertisers who are promoting an iOS app use Firebase Analytics to report conversions to AdWords. However, some advertisers manage their own user analytics and prefer to report mobile app conversions from the server side (both app download conversions and advertiser-defined in-app conversions)--read on to find out how.

Reporting downloads from an analytics server

Define an iOS app download conversion in your AdWords account. During the last step, you should indicate that you plan to report conversion to AdWords using a server-to-server integration. You'll be provided with an ID number and a label for the conversion. Take note of these.

For each new user who installs your app and opens it for the first time, you should construct a GET request to:

https://www.googleadservices.com/pagead/conversion/MY_CONVERSION_ID/

where MY_CONVERSION_ID is the conversion ID provided in your AdWords conversion tracking code snippet. The GET request should include the following required parameters:

  • label=MY_CONVERSION_LABEL

    This is the label provided in your AdWords conversion tracking code snippet.

  • rdid=ADVERTISING_IDENTIFIER

    This is the exact string returned by:

    NSString *idfa = [[[ASIdentifierManager sharedManager]
                        advertisingIdentifier] UUIDString];
    

    An example value would look like this: 8880EA97-DB86-4E10-A10F-4E71461AB8F9.

    • The rdid is case insensitive.
  • bundleid=MY_IOS_APP_BUNDLE_ID

    Include the fully-qualified bundle ID of your iOS app, for example: com.mycompany.MyApp

    • The bundleid is case sensitive.
  • idtype=idfa

    Include the exact string shown above--this lets us know that you are using the advertising identifier to report conversions.

  • lat=LIMIT_AD_TRACKING_STATUS

    Include the limit-ad-tracking status of the advertising identifier. If limit-ad-tracking is on, set to 1. If limit-ad-tracking is off, set to 0.

  • sdkversion=VERSION_OF_YOUR_SDK

    We suggest the format:

    <your_company>-sdk-<first_letter_of_operating_system>-v<version>

    For example, myapptrackingcompany-sdk-a-v1.0.0. This is useful for debugging.

Reporting in-app conversions from an analytics server

If you are tracking events beyond downloads in your analytics tools, it's helpful to feed those events back into AdWords as "conversions". This allows AdWords to gather data for better optimizing your ad campaign. It also allows you to view performance reporting conveniently in your AdWords account.

Events you track in your app might include things like whether a user completes a gameplay tutorial, or whether a user completes a purchase. Conversion events will show up in your AdWords account if a user carries out one of these conversions after clicking an ad.

To track these events, simply define additional conversions in your AdWords account, one for each event you'd like to track. Give each one a descriptive name. (AdWords allows you to define a large number of different conversions, and gives you a different label for each one.)

Each time a user completes one of these conversion events, make a GET request, just as described above for tracking downloads, but using the conversion label for the in-app conversion event that you've defined.

Optionally, the GET request can also contain these two parameters:

  • value=MY_VALUE

    This is the value of your conversion, e.g., value=1.99 for a $1.99 conversion. It can be useful to include monetary values for in-app conversions that have them (e.g., in-app purchases). AdWords is able to report back on the total value driven by your advertising. AdWords can also use this data to steer your ads toward users who are likely to produce more value.

  • currency_code=CURRENCY_OF_TRANSACTION

    This is the three-letter ISO 4217 currency code of the monetary currency that was used in the transaction.

Getting instant confirmation

Optionally, you can configure AdWords so that each time you notify of a new app install, you get instant confirmation of whether the install came from AdWords via an HTTP response. Learn more.

To measure in-app events as conversions for ads that use universal links, you must notify AdWords every time the app was opened with a link which deep links the user into the app.

Implementation specifications

  1. Enable auto-tagging in your AdWords account. This ensures that the google click ID (GCLID) parameter is attached to all your ad URLs.
  2. Each time you detect that the app is opened with a universal link and the URL contains a GCLID, fire a deep link click request to AdWords. This request can be sent either from the client app or from the server.
https://www.googleadservices.com/pagead/conversion/app/connect/MY_IOS_APP_BUNDLE_ID/?app_event_type=deep_link&idtype=idfa&lat=LIMIT_AD_TRACKING_STATUS&rdid=ADVERTISING_IDENTIFIER&sdkversion=VERSION_OF_YOUR_SDK&gclid=GOOGLE_CLICK_ID
  • MY_IOS_APP_BUNDLE_ID

    Include the fully-qualified bundle ID of your iOS app, for example: com.mycompany.MyApp.

    • The bundle ID is case sensitive.
  • LIMIT_AD_TRACKING_STATUS

    Include the limit-ad-tracking status of the advertising identifier. If limit-ad-tracking is on, set to 1. If limit-ad-tracking is off, set to 0.

  • ADVERTISING_IDENTIFIER

    This is the exact string returned by:

    NSString *idfa = [[[ASIdentifierManager sharedManager]
                        advertisingIdentifier] UUIDString];

    • An example value would look like this: 8880ea97-db86-4e10-a10f-4e71461ab8f9.

    • The rdid is case insensitive.

  • VERSION_OF_YOUR_SDK

    We suggest the format:

    <your_company>-sdk-<first_letter_of_operating_system>-v<version>

    For example, myapptrackingcompany-sdk-a-v1.0.0. This is useful for debugging.

  • GOOGLE_CLICK_ID

    Include the GCLID parameter that was in the URL which opened the app.

Verification

Your GET request for the pings you send us will end up looking something like this:

https://www.googleadservices.com/pagead/conversion/0123456789/?label=abCDEFG12hIJk3Lm4nO&rdid=8880EA97-DB86-4E10-A10F-4E71461AB8F9&bundleid=com.example.MyApp&idtype=idfa&lat=0
  • 0123456789 - your conversion ID
  • abCDEFG12hIJk3Lm4nO - your conversion label
  • 8880EA97-DB86-4E10-A10F-4E71461AB8F9 - the advertising identifier
  • com.example.MyApp - the fully-qualified bundle ID of your iOS app
  • 0 - the limit-ad-tracking status of the advertising identifier

If your request is malformed, you will get a 400 Bad Request error response. If your request is correct, we will return an HTTP 200 response.

If you've enabled instant confirmation of app conversions, then the HTTP responses you receive will be different. In that case, if the conversion was driven by AdWords advertising, you will receive a 302 Redirect with information about the AdWords ad click that drove this conversion. If it was not driven by AdWords advertising, you'll receive an HTTP 200 response.

Send feedback about...

Mobile Apps Conversion Tracking and Remarketing
Mobile Apps Conversion Tracking and Remarketing