Skip to content
SourceLoop
Google Ads

How to troubleshoot Google Ads sync issues

Checklist for diagnosing Google Ads connection and conversion-push issues. OAuth errors, GCLID mismatches, missing conversions in Google Ads, MCC permissions.

On this page
  1. Before you start
  2. Step 1: Check the connection status
  3. Step 2: For ‘Token expired’ / ‘Disconnected’
  4. Step 3: For ‘conversions not showing in Google Ads’
  5. Step 4: For ‘GCLID missing on the conversion’
  6. Step 5: For ‘developer token approval required’
  7. Step 6: For ‘Insights data not updating’
  8. How to disconnect or reset
  9. When to email support

Google Ads sync issues fall into a handful of buckets. This checklist runs through them in order so you can get from “something’s off” to a working sync in fifteen minutes.

Before you start

Have these tabs open:

  • SourceLoop’s Google Ads card at Setup -> Ad Platforms -> Google Ads
  • Google Ads at Tools -> Conversions (for verifying conversion actions)
  • Google Ads at Tools -> API Center (for checking API quota usage)
  • The most recent Sync log on the Google Ads card (three-dot menu)

Step 1: Check the connection status

  1. Open Setup -> Ad Platforms -> Google Ads in SourceLoop.
  2. Look at the card:
    • Active with recent Last sync → healthy
    • Active with stale Last sync (>24 hours) → Insights sync stuck
    • Token expired → reconnect needed
    • Disconnected → run the Connect flow

Step 2: For ‘Token expired’ / ‘Disconnected’

  1. Click Reconnect.
  2. Sign in to Google with a user that has Standard access or higher on the Google Ads account.
  3. Authorise the adwords scope.
  4. Pick the same Google Ads account in the picker.
  5. The card flips to Active.

If reconnect fails immediately:

  • “User not authorized” → the Google user doesn’t have Standard+ access on the Google Ads account. Switch to a user that does.
  • “Invalid customer ID” → rare; happens if the Google Ads account was renamed or transferred. Email [email protected] with the Customer ID.

Step 3: For ‘conversions not showing in Google Ads’

This is the most common case. Walk through these checks:

  1. Open the Sync log on the Google Ads card (three-dot menu).
  2. Find the conversion you expected. Each push is logged with the GCLID, conversion action, value, and status:
    • sent → SourceLoop successfully pushed the conversion to Google Ads. Allow up to 6 hours for it to appear in Google Ads UI.
    • pending_identity → the visitor had no GCLID and no email/phone to fall back on. Either Enhanced Conversions wasn’t enabled, or the visitor really has no identifiable signal. Skip these.
    • error → Google Ads rejected the push. Click into the row to see the exact error from Google.

Common errors and fixes:

  • CONVERSION_ACTION_NOT_FOUND → wrong Conversion Action ID in the config. See FAQ above for how to find the right one.
  • UNSUPPORTED_DECIMAL_VALUE → conversion value has too many decimal places. Cap at 4 decimals; SourceLoop usually handles this, but bespoke value sources can produce floats.
  • CONVERSION_PRECEDES_CLICK → conversion timestamp is before the GCLID’s click timestamp. Usually a clock-skew issue; should resolve on the next push.
  • CONVERSION_TIME_TOO_LATE → conversion is outside Google’s 90-day lookback. Nothing to do; the conversion is too old to attribute.

Step 4: For ‘GCLID missing on the conversion’

If the Sync log shows pending_identity for most conversions, the GCLID isn’t being captured by your tracking pixel. Two checks:

  1. Pixel placement. Confirm the SourceLoop tracking script is installed on every page that receives Google Ads traffic, especially landing pages. The tracker needs to be on the landing page (where the GCLID first arrives), not just the checkout page.
  2. GCLID URL param. Open a real Google Ads campaign URL, click an ad, and check the destination URL. There should be a gclid= parameter. If not, your Google Ads account’s “Auto-tagging” is off; turn it on at Google Ads -> Admin -> Account settings -> Auto-tagging.

Once the pixel sees GCLIDs, future conversions get pushed with them. Past conversions can’t be retroactively GCLID-stamped, but Enhanced Conversions (hashed email / phone) can still match many of them.

Step 5: For ‘developer token approval required’

This means your Google Ads account’s API operations exceeded SourceLoop’s Basic Developer Token tier limit. Rare for most accounts, but possible for very large advertisers.

  1. Note the message in the Sync log.
  2. Email [email protected] with the subject “Developer token upgrade” and your Customer ID.
  3. We submit a Standard Tier upgrade request to Google with our use case; approval usually takes 5-7 business days.
  4. During the wait, SourceLoop continues to push conversions for accounts under the Basic tier limit; only the over-limit account is affected.

Step 6: For ‘Insights data not updating’

If campaign / ad group / ad spend and impressions look stale in SourceLoop:

  1. Check the last sync timestamp on the Google Ads card. Insights sync is daily at 05:00 UTC. Within 24 hours is normal.
  2. Force a manual resync. Click Resync now on the card. This triggers an immediate Insights sync that re-fetches the last 14 days.
  3. Check Google Ads quota. At Google Ads -> Tools -> API Center, look at the daily API operation count. If you’re near the quota, other tools are consuming it; investigate which.

How to disconnect or reset

If you want to fully reset the integration:

  • Soft reset (re-run the click mapping backfill): three-dot menu -> Reset click mapping on the Google Ads card. Useful if attribution history looks wrong.
  • Hard reset (disconnect entirely): see Disconnect Google Ads from SourceLoop.

When to email support

If you’ve worked through the checklist and conversions still aren’t pushing correctly, email [email protected] with:

  • The Google Ads card’s current status
  • Two or three error messages from the Sync log (verbatim)
  • Your Google Ads Customer ID (visible on the Google Ads card)
  • The Conversion Action ID(s) you configured

We respond within one business day.

Frequently asked questions

  1. My Google Ads card shows 'Token expired'. What now?

    Click **Reconnect** on the Google Ads card. SourceLoop refreshes the access token via the stored refresh token automatically on every API call; 'Token expired' usually means the refresh token itself was revoked (someone removed SourceLoop access from the Google account, or the account's OAuth grants were cleared). A fresh OAuth flow fixes it.

  2. Conversions are firing in SourceLoop but not showing in Google Ads. What should I check?

    Five common causes. (1) GCLID missing, the visitor's session didn't have a `gclid` URL param, so there's no way to match to an ad click. (2) Conversion Action ID wrong, double-check the numeric ID in your SourceLoop config matches the Google Ads action. (3) Conversion in dedup window, repeated conversions of the same type from the same GCLID within 24 hours are skipped. (4) Pending verification status on the Google Ads action, normal for new actions, flips automatically once Google sees real conversions. (5) Conversion time outside the lookback window, Google Ads only accepts conversions within 90 days of the click.

  3. Google Ads says 'CONVERSION_ACTION_NOT_FOUND' in the sync log. Why?

    The Conversion Action ID in your SourceLoop config doesn't match a valid conversion action in the connected Google Ads account. Open Google Ads -> Tools -> Conversions, click into the right action, copy the ID from the URL, and update the SourceLoop config.

  4. My MCC user can't see the sub-account in the picker. What's missing?

    The Google user authorising the OAuth must have **Standard access or higher** on the specific Google Ads sub-account (not just on the MCC). Open Google Ads -> Tools -> Access and security -> Users, find the user, and verify their permission level. Read-only access doesn't include API write permissions.

  5. I'm getting 'developer token approval required' in the sync log. What does that mean?

    SourceLoop's Developer Token tier is Basic, which covers ad accounts up to about 15M monthly API operations. If your account exceeds that, Google Ads rejects requests until SourceLoop's Developer Token is upgraded. Email [email protected] with your Customer ID and we'll request the upgrade for you.

  6. Insights data (spend, impressions) is stale. When does it refresh?

    Insights sync runs daily at 05:00 UTC and re-fetches the last 14 days to catch Google's late attribution. To force an immediate refresh, click **Resync now** on the Google Ads card. Heads up, very recent campaign performance (last 1-3 days) often lags in Google Ads itself, you're not behind, Google is.

  7. How do I force a fresh 90-day click mapping backfill?

    Click the three-dot menu on the Google Ads card and select **Reset click mapping**. SourceLoop re-runs the 90-day GCLID-to-ad mapping backfill, useful if you suspect historical mappings are off due to attribution changes in Google Ads.

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

kayden@abc.com

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta