Google Ads
Connect Google Ads to import Signal Campaign reporting and upload SDK installs and events as click-based offline conversions. Use this guide to set up your Google Signal Campaign workflow end to end.
Requirements
- The AppSprint SDK installed and sending installs/events for this app.
- A Google account with access to the Google Ads customer account you want to connect.
- Access to the Google Ads customer account that runs your Signal Campaigns. AppSprint can load accessible accounts after OAuth; you can still enter the Customer ID manually if needed.
- Auto-tagging enabled on that customer account (Tools → Account settings → Auto-tagging). It's on by default. Without it, clicks reach AppSprint with no click ID and conversions can't be uploaded.
Available metrics and definitions
| Metric | Definition |
|---|---|
| Spend | Amount spent on the Google Signal Campaign over the selected window. |
| Installs | Installs attributed by AppSprint to this Signal Campaign. Falls back to Google's reported conversions when AppSprint has no match. |
| CPI | Cost per install. Spend divided by attributed installs. |
| IPM | Installs per 1,000 impressions. |
| Impressions | Times the ad was shown, reported by Google. |
| CPM | Cost per 1,000 impressions. |
| Clicks | Ad clicks, reported by Google. |
| CPC | Cost per click. |
| CTR | Click-through rate. Clicks divided by impressions. |
| CTI | Click-to-install rate. Installs divided by clicks. |
| ROAS | Return on ad spend. Attributed revenue divided by spend. |
| Revenue | Revenue from in-app events attributed to this Signal Campaign. Falls back to Google's reported conversion value when AppSprint has no match. |
Eligible in-app events
Map any of these SDK events to a Google Ads conversion action. Events from installs without a Google click ID are skipped automatically (Google would reject them).
installloginsign_upregisterpurchasesubscribestart_trialadd_payment_infoadd_to_cartadd_to_wishlistinitiate_checkoutview_contentview_itemsearchsharetutorial_completeachieve_levellevel_startlevel_completeClick identifiers AppSprint accepts
| Click ID | When it's used |
|---|---|
| gclid | Standard Google click ID for web clicks and older/pre-ATT iOS flows. |
| gbraid | SKAdNetwork-compatible identifier for web-to-app iOS clicks. Sent alongside gclid for iOS App Campaigns when both are present. |
| wbraid | SKAdNetwork-compatible identifier for app-to-web iOS clicks. |
AppSprint does not fall back to IDFA, GAID, or mobileId for Google uploads. Without a Google click ID, the conversion is skipped.
Connect Google Ads
- In AppSprint, open your app and go to Integrations → Google Ads.
- Click Connect Google Ads and sign in with a Google account that can access the customer account you want to connect.
- Approve access, then select the Google Ads account that runs your Signal Campaigns. If the Google user has access to multiple accounts, AppSprint shows them in a picker.
- Use manual IDs only if the account is missing from the picker. Fill the Manager Customer ID or Conversion Customer ID only for cross-account setups.
Create the conversion actions in Google Ads
Use click-based import actions
- In Google Ads, go to Goals → Conversions → Summary → New conversion action.
- On the data-source screen, pick Conversions offline.
- Click Edit data sources on the offline card, then choose Skip this step and set up a data source later. The card should show Connect data source later.
- Leave Enhanced conversions for leads off unless you are also sending hashed lead-form data. If Google shows a click/call choice, pick Track conversions from clicks.
- On Group your conversions, choose the category that matches the event: Sign-up for trials or account creation, Purchase for one-time purchases, and Subscribe for paid subscriptions. Avoid qualified/converted lead unless you intentionally track lead statuses.
- In the category card, click + Create conversion. Name the action after the AppSprint event, for example
appsprint_start_trial,appsprint_purchase, orappsprint_subscribe. - Keep the action Primary when campaigns should optimize for it. Use different values for purchases/subscriptions, and use a simple default value for trials or sign-ups.
- After Google indexes the actions, return to Integrations → Google Ads → Event mapping and click Discover actions . New actions can appear immediately; select them in the dropdowns, click Save mappings, then reload the page to confirm the saved mappings are still selected.
Map your in-app events
In Integrations → Google Ads → Event mapping, click Discover actions and map the events your Signal Campaigns optimize for. Only enabled click-based actions are shown. Click Save mappings after selecting the dropdowns, then reload the page to verify the mappings were saved.
When your app sends googleAdsConsent.adUserData, AppSprint forwards it as Google's consent.adUserData on the upload. AppSprint never invents a consent value.
Create the Google Ads Signal Campaign
Campaign-level template, store URL as final URL
- In AppSprint, copy the generated Google Signal link from the Google Ads integration. Use the full Google Tracking template URL.
- In Google Ads, click + Create → Campaign. On What's your campaign objective?, choose Website traffic or Create a campaign without guidance. Do not choose App promotion for this workflow.
- On the campaign type screen, Google shows options like Performance Max, Search, Demand Gen, Video, Display, and Shopping. Choose Search for your first Signal Campaign.
- On Select the ways you'd like to reach your goal, enter the real destination link: your App Store URL for iOS or your Play Store URL for Android. Do not enter the AppSprint Tracking template URL here.
- On Use these conversion goals to improve Website traffic, keep only the goal that contains the AppSprint conversion action you mapped, such as Purchases, Sign-ups, or Begin checkout. Expand the goal or action count if needed and check the action name. Remove unrelated account-default goals from More actions.
- Name the campaign, then continue through Google's normal campaign setup: bidding, budget, locations, languages, keywords, and ads. Choose the bidding settings that match your Google Ads strategy.
- Set devices to mobile only. If Google exposes operating-system targeting for the campaign type, keep only the platform for this app: iOS for App Store campaigns, Android for Play Store campaigns.
- Create the ad group and ad. Use keywords that match your app or use case, and put your App Store or Play Store page in the ad Final URL.
- Before publishing, open Settings → Campaign URL options → Tracking template and paste the full AppSprint Google Tracking template there. AppSprint's template already includes Google click IDs and the final-URL insertion token Google needs.
- Click Test. The test should resolve through AppSprint and end on the store page. Fix any URL errors before launch.
- Publish the campaign. Conversions usually appear in Google Ads within 24 hours.
Troubleshooting
| Problem | What to try |
|---|---|
| Authentication failed | The Google account you connected lost access to the Google Ads customer account. Disconnect Google Ads in AppSprint and reconnect with an account that can access that customer. |
| Customer not found | Re-check the Customer ID (10 digits, hyphens stripped). If you access the account through an MCC, also fill in the Manager Customer ID field. |
| Conversions aren't showing up in Google Ads | New conversion actions need around six hours to index before Google accepts uploads. AppSprint retries automatically. Total click-to-conversion latency in Google Ads is up to 24 hours. |
| Events being skipped | Google requires a click ID on every offline conversion. Installs without one (typically organic users who never clicked a tracked ad) are skipped intentionally; Google would otherwise reject them. |
| Reporting numbers don't match Google Ads | AppSprint reports use AppSprint attribution. Google reports use its conversion view. Numbers diverge for users without a Google click. AppSprint uses its own number whenever it has one. |