Articles on: Traffic Source Integrations

Direct integration setup with Google Ads

This is the Google Ads walkthrough for our native integration.


Once it's set up, we upload your conversions straight to Google Ads, pull campaign spend into your reports, and swap campaign, ad group and ad IDs for their names.


If you're unsure about any of the settings below, use our Google Ads traffic source template when you create the traffic source. Everything will be configured correctly.


The general concepts (connections, linking, event mapping, Classic Options vs Integrations) are explained in Using traffic source integrations. This article only covers what's specific to Google Ads, so read that one first if you haven't.


Note that the older method -- a Google Ads custom scenario with a manually generated refresh token -- is still documented in Using S2S tracking with Google Ads for anyone who needs it. For new setups, use the native integration below.


Step 1: Connect your Google account


Go to Settings > Integrations > Traffic Sources.


Click Connect on the Google Ads card (1). If you already have a Google Ads connection, the button says Add account instead -- use it to connect a second Google login.


You'll be sent to Google to sign in and approve access. When you come back, the login appears under Connections with an Active status (2).


Traffic Source Integrations settings: the Google Ads card and an active Google Ads connection


Sign in with the Google login that has access to the ad accounts you advertise from.


If you reach your ad accounts through a manager (MCC) account, that's fine -- the manager login works, as long as it still has access to the client account you want to use.


Step 2: Make sure the gclid is captured


Google Ads matches uploaded conversions using the click ID, and also using hashed email and phone number when you pass those to us with the conversion. If we have neither a click ID nor any of that customer data for a visitor, we can't send their conversion to Google.


When you click an ad, Google's auto-tagging appends a gclid parameter to the landing URL. We need to capture it in the traffic source's External Click ID field.


If you created the traffic source from our Google Ads template, this is already done for you. Check the Tracking Fields tab:


  1. External Click ID has the URL parameter gclid and a blank source token. That's intentional -- Google adds the gclid itself, so we don't put a placeholder in your links, we just read it when it arrives.
  2. gbraid and wbraid are set up as custom fields. Google uses these instead of a gclid for some iOS and app traffic, and we use them as fallbacks if there's no gclid.


Tracking Fields tab of a Google Ads traffic source: External Click ID set to gclid, and gbraid and wbraid custom fields


If you built the traffic source by hand, rename the External Click ID parameter to gclid and add gbraid and wbraid fields with those exact names.


Also make sure auto-tagging is on in your Google Ads account, otherwise there is no gclid to capture.



Open the traffic source and go to the Integrations tab.


In Platform Integration:


  1. Traffic Source Integration Type -- pick Google Ads. For a traffic source made from our Google Ads template, this is usually pre-selected.
  2. Connection -- the Google login from Step 1.
  3. Ad Account -- the Google Ads account this traffic source spends from. Accounts show with their currency, e.g. "FunnelFlux Pro · USD".


Integrations tab with Google Ads, a connection and an ad account selected, and the Delayed 6h badge


Under the ad account you'll see a Delayed 6h badge.


This is Google's rule, not ours: Google won't accept an uploaded conversion until 6 hours after the click. We hold each conversion in a queue and send it once it's due, with its original conversion time.


So don't panic if a test conversion isn't in Google Ads straight away -- give it at least 6 hours, plus whatever time Google takes to process it on their side.


View delivery logs takes you to Integration Logs for this setup (see Step 6).


If the ad account you pick shows an access error, the connected login can't reach that account. If you go through a manager account, that manager must still have access. Reconnect with a login that does, or choose another ad account.


Step 4: Map your conversions to Google Ads conversion goals


Go to the Conversion Tracking tab and switch the toggle at the top from Classic Options to Integrations.


Integration Event Mapping for Google Ads, with Conversions mapped to a Google Ads conversion goal


For each event you want Google to see:


  1. Pick a Triggering Event -- Conversions or one of your custom events.
  2. Pick a Destination Event -- this lists the conversion goals that exist in your Google Ads account, with their ID in brackets, e.g. "Offline Conversions (890371861)".
  3. Leave Value Override blank to send the revenue FunnelFlux tracked, or set a value if you want Google to receive something different. Currency Override works the same way for the currency code.


Each conversion goal can only be used once per traffic source. A goal that is already used shows as "(mapped to ...)", e.g. "(mapped to Custom Event 1)", and can't be picked again.


The conversion goal must already exist in Google Ads. We load the list live from your account, we don't create goals. If the list is empty or the one you want is missing, create it in Google Ads first.


For the conversion goal itself, create a goal that accepts imported (offline) click conversions. The Google side of this is covered in Using S2S tracking with Google Ads.


Then click Save.


Note that saving in Integrations mode removes the traffic source's classic postback settings, so the same conversion isn't sent twice. If you are moving from the old custom scenario, take a note of its settings first.


Step 5: Turn on cost sync and dictionary sync


Back in the Integrations tab, below Platform Integration.


Cost Sync


Cost Sync section with campaign-level cost sync and daily reconciliation enabled


  • Enable campaign-level cost sync -- imports your Google Ads campaign spend every hour.
  • Reconcile finalized daily costs -- Google often adjusts the previous day's spend. With this on, we recheck each finished day once Google has finalized it, so your costs end up matching Google's own numbers. Hover the info icon to see when this runs.


Cost sync is campaign-level ONLY -- the Campaign chip is highlighted, Adset and Ad aren't. If you need spend per ad group or per ad, that's available using Argosync.


For campaign costs to land on the right campaign, the campaign ID needs to be in your links. Our Google Ads template already passes {campaignid} in the Campaign ID field.


Dictionary Sync


Google passes IDs in your URLs, not names, so by default your reports show campaign 123456789 rather than "US - Search - Brand".


Turn on Enable ID to name sync and we pull campaign, ad group and ad names from Google Ads and show them in reporting.


Dictionary Sync for Google Ads with the campaign, ad group and ad fields present


The table shows each level and the URL value we look for:


Level

URL value

Campaign

{campaignid}

Ad Group

{adgroupid}

Ad

{creative}


We match on the URL value, not the field name, so it doesn't matter what you called the field. With our Google Ads template all three show Field present. If a row says Add field, add a tracking field with that URL value.


Turn on Show original IDs after synced names if you still want to see the raw ID next to the name.


Once you save, a Sync status panel shows the last and next runs for both syncs, with buttons to run them now if you don't want to wait.


Step 6: Check Integration Logs


Go to Logs > Integration Logs. There are two views at the top: Event Logs and Queue.


Event Logs shows each event we tried to send, its destination conversion goal and its outcome. If a conversion was rejected, this is where you'll see why -- for example, a missing click ID means the visitor arrived without a gclid, gbraid or wbraid (Step 2) and the conversion had no email or phone to match on.


Queue shows conversions that haven't been sent yet. With Google Ads, that's every conversion during its 6-hour delay, so seeing them here is normal. Columns include Updated, Queued, Platform, Integration, Traffic Source, Event Type, Status and Hold Reason, and the next attempt time shows e.g. "in 4 hr".


Integration Logs Queue view with Google Ads conversions waiting to be sent


Held conversions


If your Google connection expires, gets an auth error or is disconnected, we don't throw conversions away. They are held in the queue instead.


A held row shows a Hold Reason (e.g. "Credentials invalid") and a link to the fix, e.g. Reconnect Google Ads integration, which takes you to Settings > Integrations > Traffic Sources. The next attempt shows as "After fix".


Click Reauth on the Google Ads connection, and the held conversions are sent once it's active again.


Note that Google only accepts conversions within its time limit for late uploads. If a connection stays broken for too long, conversions that pass that limit expire and can no longer be sent -- they show "Expired while held". So if you get a connection warning, fix it sooner rather than later.


Troubleshooting


The Ad Account list doesn't show the account I want


The Google login you connected doesn't have access to it. Check access in Google Ads (including via your manager account), or connect another login with Add account.


The Destination Event list is empty


No conversion goals exist in that Google Ads account yet. Create one in Google Ads, then reopen the traffic source.


Conversions aren't showing in Google Ads


Wait at least 6 hours after the click first. Then check Integration Logs -- Queue for anything still waiting or held, and Event Logs for rejected events. A missing click ID almost always means auto-tagging is off, or the gclid is being dropped by a redirect before it reaches our tracking.


Costs or names aren't appearing


Check the Sync status panel on the Integrations tab. If it shows an error, the connection usually needs a Reauth or the login lost access to the ad account.

Updated on: 15/10/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!