App remarketing events allow you to target users who already have your app installed, based on interactions with features in your app. Qualifying interactions include viewing a product page, selecting travel dates and airport codes, or adding a product to a shopping list. Remarketing events allow you to organize audiences based on those qualifying actions in order to tailor more relevant messages to them.
Example
- When a user abandons a shopping cart, you can show product ads to remind them to complete their transaction.
- When a user searches for hotels in Guam, you can show ads highlighting your hotel with deals on excursions.
- When a user views a language learning deal in Rome, you can show ads offering discounts for that same deal.
In order for your app to send remarketing events to Google Ads, there are 3 configurations to consider:
- Using Firebase
- Through a third-party (3P) app analytics provider SDK, or
- Using a server-to-server integration
Set up remarketing with Firebase
Firebase is Google's mobile platform, made to help you build better mobile apps and grow your business. To set up remarketing with Firebase:
- Configure your mobile app with the Firebase SDK for Android or iOS.
- Implement the recommended events for your business type.
- Link your Firebase and Google Ads accounts.
- Note: you must share conversion event data from both Firebase and from Google Ads.
- Configure how your app sends attribution data.
Set up remarketing with a third-party SDK
To help you make informed marketing decisions about your app, Google Ads works with many third-party app analytics providers to support the Google Dynamic remarketing for apps scheme. Together with Google Ads, the following third-party app analytics providers can give you a seamless understanding of your app’s campaign performance: Adjust, Adways, Appsflyer, CyberZ, Kochava, Singular, and TUNE. Learn more about Google’s third-party app analytics program.
If you use one of these third-party app analytics providers, link your third-party app analytics provider to Google Ads to enable remarketing list creation. Work with your third-party app analytics representative to set up their app’s SDK.
Set up remarketing with server-to-server
Google has announced an entirely new API for Google Ads app conversion tracking and remarketing. The new API makes app analytics and attribution simpler for advertisers, and is more reliable for Google Ads attribution providers.
It’s recommended to use the new API because Google will eventually deprecate the legacy API. For detailed instructions on how to set up remarketing through server-to-server integration, refer to the Google Developer’s guide to App Conversion Tracking and Remarketing API. Below are example specifications for both the new API and the legacy API.
New API (examples only)
Android example:
POST /pagead/conversion/app/1.0 ?dev_token=MY_DEVELOPER_TOKEN &link_id=MY_LINK_ID &app_event_type=session_start &rdid=MY_USER_ADID &id_type=advertisingid &lat=LAT_STATUS &app_version=1.2.4 &os_version=8.0.0 &sdk_version=1.0.0 ×tamp=1432681913.123456 &gclid=GCLID_VALUE_FROM_REFERRER Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (Android 8.0; en_US; SM-G900F; Build/MMB29M; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8 |
Android example:
Remarket to those who viewed an item (Education, Jobs, Local deals, Real estate, and Custom only)
POST /pagead/conversion/app/1.0 {"app_event_data":{"item_id":"id12345"}} |
Android example:
Remarket to those who reached the conversion screen (Education, Jobs, Local deals, Real estate, and Custom only)
POST /pagead/conversion/app/1.0 {"app_event_data":{"item_id":"id12345", "value":99.99}} |
Android example:
Remarket to those who viewed a product
POST /pagead/conversion/app/1.0 {"app_event_data":{"item_id":"id12345"}} |
Android example:
Remarket to those who purchased multiple products
POST /pagead/conversion/app/1.0 {"app_event_data":{"item_id":["id12345","id54321"], "value":99.99}} |
iOS example:
Session_start notification to Google Ads (a.k.a. Connector pings)
POST /pagead/conversion/app/1.0 ?dev_token=MY_DEVELOPER_TOKEN &link_id=MY_LINK_ID &app_event_type=session_start &rdid=MY_USER_IDFA &id_type=idfa &lat=LAT_STATUS &app_version=1.2.4 &os_version=10.0.2 &sdk_version=1.0.0 ×tamp=1432681913.123456 &gclid=GCLID_VALUE_FROM_REFERRER Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8 |
iOS example:
Remarket to those who viewed an item ( Jobs, Local deals, Real estate, and Custom only)
POST /pagead/conversion/app/1.0 {"app_event_data":{"item_id":"id12345"}} |
iOS example:
Remarket to those who reached the conversion screen ( Jobs, Local deals, Real estate, and Custom only)
POST /pagead/conversion/app/1.0 {"app_event_data":{"item_id":"id12345", "value":99.99}} |
iOS example:
Remarket to those who viewed a product
POST /pagead/conversion/app/1.0 {"app_event_data":{"item_id":"id12345"}} |
iOS example:
Remarket to those who purchased multiple products
POST /pagead/conversion/app/1.0 ?dev_token=MY_DEVELOPER_TOKEN &link_id=MY_LINK_ID &app_event_type=ecommerce_purchase &rdid=MY_USER_IDFA &id_type=idfa &lat=0 &app_version=1.2.4| &os_version=10.0.2 &sdk_version=1.0.0 ×tamp=1432681913.123456 &value=99.99 ¤cy_code=USD Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8 {"app_event_data":{"item_id":["id12345","id54321"], "value":99.99}} |
Legacy API (examples only)
The legacy API will be deprecated soon
New advertisers should use the latest integration (refer to the new API specs in the section above) as Google will be deprecating the legacy API soon.
For legacy app conversion tracking and remarketing integration, see the Android and iOS specifications.
Android example:
Session_start notification to Google Ads (a.k.a. Connector pings)
https://www.googleadservices.com/pagead/conversion/app/connect/MY_APP_ID/ ? app_event_type=deep_link&idtype=advertisingid&lat=LAT_STATUS&rdid=MY_USER_ADID&sdkversion=1.0.0&gclid=GCLID_VALUE_FROM_REFERRER |
Android example:
Remarket to those who viewed an item (Education, Jobs, Local deals, Real estate, and Custom only)
https://www.googleadservices.com/pagead/conversion/0123456789/? bundleid=MY_APP_ID&rdid=MY_USER_ADID&idtype=advertisingid&lat=LAT_STATUS&appversion=1.2.3&osversion=6.0.1&usage_tracking_enabled=1&remarketing_only=1&data.app_event=view_item&data.item_id=id12345 |
Android example:
Remarket to those who reached the conversion screen (Education, Jobs, Local deals, Real estate, and Custom only)
https://www.googleadservices.com/pagead/conversion/0123456789/? bundleid=MY_APP_ID&rdid=MY_USER_ADID&idtype=advertisingid&lat=LAT_STATUS&appversion=1.2.3&osversion=6.0.1&usage_tracking_enabled=1&remarketing_only=1&data.app_event=ecommernce_purchase&data.item_id=id12345&data.value=99.99 |
Android example:
Remarket to those who viewed a product
https://www.googleadservices.com/pagead/conversion/0123456789/? bundleid=MY_APP_ID&rdid=MY_USER_ADID&idtype=advertisingid&lat=LAT_STATUS&appversion=1.2.3&osversion=6.0.1&usage_tracking_enabled=1&remarketing_only=1&data.app_event=view_item&data.item_id=id12345 |
Android example:
Remarket to those who purchased multiple products
https://www.googleadservices.com/pagead/conversion/0123456789/? bundleid=MY_APP_ID&rdid=MY_USER_ADID&idtype=advertisingid&lat=LAT_STATUS&appversion=1.2.3&osversion=6.0.1&usage_tracking_enabled=1&remarketing_only=1&data.app_event=ecommernce_purchase&data.item_id=id12345&data.item_id=id54321&data.value=99.99 |
iOS example:
Session_start notification to Google Ads (a.k.a. Connector pings)
https://www.googleadservices.com/pagead/conversion/app/connect/MY_APP_ID/ ? app_event_type=deep_link&idtype=idfa&lat=LAT_STATUS&rdid=MY_USER_IDFA&sdkversion=1.0.0&gclid=GCLID_VALUE_FROM_REFERRER |
iOS example:
Remarket to those who viewed a product
https://www.googleadservices.com/pagead/conversion/0123456789/? bundleid=MY_APP_ID&rdid=MY_USER_IDFA&idtype=idfa&lat=LAT_STATUS&appversion=1.2.3&osversion=6.0.1&usage_tracking_enabled=1&remarketing_only=1&data.app_event=view_item&data.item_id=id12345 |
iOS example:
Remarket to those who purchased multiple products
https://www.googleadservices.com/pagead/conversion/0123456789/? bundleid=MY_APP_ID&rdid=MY_USER_IDFA&idtype=idfa&lat=LAT_STATUS&appversion=1.2.3&osversion=6.0.1&usage_tracking_enabled=1&remarketing_only=1&data.app_event=ecommerce_purchase&data.item_id=id12345&data.item_id=id54321&data.value=99.99 |
Event scheme
Different business types require different feeds and app remarketing events. Choosing the right scheme for your business ensures that your products or services are accurately represented. Some business types use the same required (or recommended) event scheme. Find your business type listed below:
Travel, Flights, Hotels and rentals
Important
- For Flight and Travel vertical implementations you must pass the "destination" parameters and values.
- For Hotels and rentals you must pass the item_id parameter and values.
- Make sure that the item_id, origin, and destination values match respectively with the item_id, origin, and destination values in your business data feed. The consistency will allow the creatives to display the most relevant items for users.
Event scheme definitions:
Event name | Requirement | Event Definition |
session_start | Required | This event tracks the start of a session in the app. Call this event when the user opens the app or resumes using the app. |
view_search_results | Optional | This event tracks search activity in the app. Call this event when search results are populated. |
view_item_list | Optional | This event tracks user-viewed items such as items in a category, favorite items, and so on. Call this event with item IDs when items are populated. |
view_item | Required | This event tracks how the user views detailed item information. Call this event with the relevant product id when the user views an item’s detailed view. |
add_to_cart | Strongly recommended | This event tracks shopping cart activity. Call this event with item IDs when a user adds items to the shopping cart. |
ecommerce_purchase | Strongly recommended | This event tracks transactions in the app. Call this event with item IDs and values when a user purchases items. |
Travel scheme:
Event name | Required parameters | Optional parameters |
app_event = session_start | ||
app_event = view_search_results | destination: ID of the destination city and/or item_id: An array of IDs from items seen by the user on an app screen (e.g. hotel, car) origin: ID from the origin city start_date: end_date: search_term: Search string google_business_vertical: String used to differentiate use cases |
|
app_event = view_item_list | destination: ID of the destination city and/or item_id: An array of IDs from the items seen by the user on an app screen (e.g. hotel, car) |
origin: ID from the origin city start_date: end_date: search_term: Search string google_business_vertical: String used to differentiate use cases |
app_event = view_item | destination: ID of the destination city and/or item_id: ID of an item seen by user on an app screen (e.g. hotel, car) |
origin: ID from the origin city start_date: end_date: google_business_vertical: String used to differentiate use cases |
app_event = add_to_cart | destination: ID of the destination city and/or item_id: IDs from an item seen by the user on an app screen (e.g. hotel, car) |
origin: ID of the origin city start_date: end_date: google_business_vertical: String used to differentiate use cases |
app_event = ecommerce_purchase | destination: ID of the destination city and/or item_id: An array of IDs from the items seen by the user on an app screen (e.g. hotel, car) |
origin: ID from the origin city start_date: end_date: value: google_business_vertical: String used to differentiate use cases |
Hotels and rentals scheme:
Event name | Required parameters | Optional parameters |
app_event = session_start | ||
app_event = view_search_results |
destination: ID of the destination city and/or item_id: An array of IDs from items seen by the user on an app screen (e.g. hotel, car) origin: ID from origin city start_date: end_date: search_term: Search string google_business_vertical: String used to differentiate use cases |
|
app_event = view_item_list | destination: ID of the destination city and/or item_id: An array of IDs from the items seen by the user on an app screen (e.g. hotel, car) |
origin: ID from origin city start_date: end_date: search_term: Search string google_business_vertical: String used to differentiate use cases |
app_event = view_item | destination: ID of the destination city and/or item_id: ID of an item seen by the user on an app screen (e.g. hotel, car) |
origin: ID from the origin city start_date: end_date: google_business_vertical: String used to differentiate use cases |
app_event = add_to_cart | destination: ID of the destination city and/or item_id: IDs from an item seen by the user on an app screen (e.g. hotel, car) |
origin: ID of the origin city start_date: end_date: google_business_vertical: String used to differentiate use cases |
app_event = ecommerce_purchase | destination: ID of the destination city and/or item_id: An array Array of IDs from items seen by the user on an app screen (e.g. hotel, car) |
origin: ID from the origin city start_date: end_date: value: google_business_vertical: String used to differentiate use cases |
Education, Jobs, Local deals, Real estate, and Custom
Important
Make sure that the item_id values match with the primary key values in your business data feed. If you use item_location_id, the values also need to match with the Location ID values in your feed. Matching the code with the feed will allow the creatives to display the most relevant items for users.
Event scheme definitions:
Event name | Requirement | Event Definition |
session_start | Required | This event tracks a session start in the app. Call this event when the user opens the app or resumes using the app. |
view_search_results | Optional | This event tracks search activity in the app. Call this event when search results are populated. |
view_item_list | Optional | This event tracks user-viewed items such as items in a category, favorite items, and so on. Call this event with product ids when items are populated. |
view_item | Required | This event tracks user views of detailed item information. Call this event with the relevant item id when the user views an item’s detailed view. |
add_to_cart | Strongly recommended | This event tracks cart/basket/checkout activity. Call this event with item ID(s) when a user intends to make a purchase. |
ecommerce_purchase | Strongly recommended | This event tracks transactions in the app. Call this event with item ID(s) and value(s) when a user makes a purchase (ex: a “Thank you” page). |
Custom scheme:
Event name | Required parameters | Optional parameters |
session_start | ||
view_search_results | item_id: An array of item IDs seen by the user on an app screen search_term: Search string item_location_id: Array of Item location ID (job/education verticals) google_business_vertical: String used to differentiate use cases |
|
view_item_list | item_id: item IDs of item seen by user on an app screen | app_event: view_item_list item_id: An array of item IDs seen by the user on an app screen item_location_id: Array of Item location ID (job/education verticals) google_business_vertical: String used to differentiate use cases |
view_item | item_id: item IDs of item seen by user on an app screen | item_location_id: An array of Item location ID (job/education verticals) google_business_vertical: String used to differentiate use cases |
add_to_cart | item_id: Array of item IDs added to the cart | item_location_id: An array of Item location ID (job/education verticals) google_business_vertical: String used to differentiate use cases |
ecommerce_purchase | item_id: Array of item IDs purchased | item_location_id: An array of Item location ID (job/education verticals) value: The total value of purchased items google_business_vertical: String used to differentiate use cases |
Retail
Important
- For retailers, upload your product feed to the Google Merchant Center.
- Make sure that item_id values match with id values in your Google Merchant Center feed. Matching these values will allow the creatives to display the most relevant items for users.
Event scheme definitions:
Event name | Requirement | Event Definition |
session_start | Required | This event tracks a session start in the app. Call this event when the user opens the app or resumes using the app. |
view_search_results | Optional | This event tracks search activity in the app. Call this event when search results are populated. |
view_item_list | Optional | This event tracks user-viewed items such as items in a category, favorite items, etc. Call this event with product IDs when items are populated. |
view_item | Required | This event tracks user views of detailed item information. Call this event with the relevant product ID when the user views an item’s detailed view. |
add_to_cart | Strongly recommended | This event tracks shopping cart activity. Call this event with product IDs when a user adds items to the shopping cart. |
ecommerce_purchase | Strongly recommended | This event tracks transactions in the app. Call this event with product IDs and values when a user purchases items. |
Standard scheme:
Event name | Required parameters | Optional parameters |
session_start | ||
view_search_results | app_event: view_search_results item_id: An array of product IDs seen by the user on an app screen search_term: Search string google_business_vertical: String used to differentiate use cases |
|
view_item_list | item_id: Array of product IDs displayed | app_event: view_item_list item_id: An array of product IDs seen by the user on an app screen google_business_vertical: String used to differentiate use cases |
view_item | item_id: the product IDs of items seen by the user on an app screen | google_business_vertical: String used to differentiate use cases |
add_to_cart | item_id: An array of product IDs added to the cart | google_business_vertical: String used to differentiate use cases |
ecommerce_purchase | item_id: An array of product IDs purchased | value: Total value of purchased items google_business_vertical: String used to differentiate use cases |
App advertisers using multiple use cases
How to set up the “google_business_vertical” parameter
Advertisers operating across multiple lines of business, should activate the additional “google_business_vertical” parameter when a user views a specific product. This enables the advertiser to create remarketing lists targeting users for each vertical, ensuring that they see relevant products for each campaign. For example, in the case of an online travel agency, users can see flights, hotels and travel packages. With "google_business_vertical" parameter, users who see hotels on the website will see hotels on dynamic ads, instead of travel packages.
For example:
Use google_business_vertical = “retail” for Retail
Use google_business_vertical = “travel” for Travel
Use google_business_vertical = “flights” for Flights
Use google_business_vertical = “hotel_rental” for Hotels and Rentals
Use google_business_vertical = “real_estate” for Real Estate
Use google_business_vertical = “education” for Education
Use google_business_vertical = “local” for Local Deals
Use google_business_vertical = “jobs” for Jobs
Use google_business_vertical = “custom” for Custom