GoodInbound

Send Real Leads to Google Ads

GoodInbound uploads every real lead to Google Ads as an offline click conversion through Google's Data Manager API. Spam, bots, and leads you reject are never uploaded, so Smart Bidding (Maximize conversions, Target CPA, Performance Max) learns from people who want to buy instead of from junk form fills. You add GoodInbound's service account to your Google Ads account and paste two IDs. No developer token, no Google Cloud project, and no OAuth app are needed on your side.

Google Ads connected in GoodInbound and sending real leads

Before you start#

  • Auto-tagging is on in Google Ads (Admin → Account settings → Auto-tagging), so ad clicks carry a gclid.
  • Click IDs are captured. The Lead Screen script is on the pages your ads land on, or your ads point to GoodInbound hosted forms.
  • You have admin access to the Google Ads account.

1. Add GoodInbound to your Google Ads account#

  1. In Google Ads, open Admin → Access and security.
  2. On the Users tab, click +.
  3. Enter conversions@goodinbound.iam.gserviceaccount.com.
  4. Choose Standard access. Read only isn't enough to upload conversions.
  5. Click Add account. Access is granted right away; there's no invitation to accept.

If you manage this account from a manager (MCC) account, you can add the email to the manager account instead. Enter the manager account's ID when you connect.

2. Create a conversion action for real leads#

  1. Open Goals → Conversions → Summary and click + Create conversion action.
  2. Choose Import, then CRMs, files, or other data sources, then Track conversions from clicks, and click Continue. If you're asked for a data source, choose Skip this step and set up a data source later.
  3. Set the goal to Qualified lead (or Submit lead form) and name the action, for example GoodInbound real lead.
  4. Under Value, choose Use the same value for each conversion and enter what a lead is worth to you, or choose not to use a value. GoodInbound doesn't send a value, so Google uses this one.
  5. Set Count to One, set the Click-through conversion window to cover your sales cycle (up to 90 days), and click Done.

Then turn on enhanced conversions, so Google can also match leads by their hashed email and phone when a click ID is missing:

  1. Open Goals → Settings → Customer data use.
  2. Tick Turn on enhanced conversions and agree to the customer data terms.

Copy the conversion action's ID: open the action from Goals → Conversions. The ID is the number after ctId= in your browser's address bar.

Create the action a few hours before your first lead: Google drops uploads to a conversion action created in the last few hours.

3. Connect Google Ads in GoodInbound#

  1. Open Settings → Integrations. In the Ad platforms card, click Connect next to Google Ads.
  2. Enter your Customer ID (top right in Google Ads, formatted 123-456-7890) and the Conversion action ID.
  3. If you added GoodInbound to a manager account in step 1, enter its ID under Manager account ID.
  4. Click Connect.

The Connect Google Ads dialog with the service account email, customer ID, and conversion action ID

GoodInbound makes a test upload in Google's validate-only mode to check its access to the account and the conversion action. Nothing is recorded. If Google accepts it, the connection is saved and the Real leads to Google Ads workflow is switched on.

4. Use real leads for bidding#

In Goals → Conversions → Summary:

  • Set the new action to Primary, so bidding optimizes toward it.
  • Set any action that fires on every form submit, such as a website "Submit lead form" tag, to Secondary, or remove it. Otherwise spam keeps counting.

Uploaded conversions appear in reports about three hours after upload, dated to the ad click.

What GoodInbound uploads#

Field Value
Transaction ID The submission ID. Uploading the same lead twice never counts it twice.
Event time When the submission became a lead
Click ID gclid, gbraid, or wbraid, whichever the visit carried
User data SHA-256 hashes of the email (lowercased; dots and +tags removed for Gmail addresses) and of the phone number in E.164 format (+15550100199)
Device The IP address and user agent of the visit

Only leads are uploaded. Submissions labelled review wait until someone relabels them as lead in the inbox, and are uploaded then.

Why uploads wait an hour#

Google can't retract an upload made through the Data Manager API. The Real leads to Google Ads workflow starts with a one-hour Wait step, then checks the submission again before it uploads. A lead you relabel as spam in that hour is never sent. To change the wait, open the workflow from Workflow on the Google Ads row and edit the Wait step.

The Real leads to Google Ads workflow: a one-hour Wait step, then Send to Google Ads

If you relabel a lead after it's uploaded#

The conversion stays in Google Ads until you retract it there:

  1. In Google Ads, open Goals → Conversions → Uploads and click +.
  2. Click View templates and download the Conversion adjustments template.
  3. Add a row with the conversion action's name, the submission ID as the Order ID, the adjustment type RETRACT, and the adjustment time.
  4. Upload the file.

Check the connection#

Click Check connection on the Google Ads row at any time. It makes the same validate-only upload as connecting does.

The Check connection dialog after Google accepted the validate-only upload

Troubleshooting#

"Google refused access." The service account isn't a user on the account, has Read only access, or was added to a different account than the customer ID you entered. If you added it to a manager account, enter that account's ID under Manager account ID.

The row shows a failed send. The message is Google's own. Fix the cause, then click Check connection. The next lead is sent normally.

Leads are sent but don't show in Google Ads. Give it three hours. If they're still missing, check that auto-tagging is on, that the Lead Screen script runs on the landing page, and that the click falls inside the conversion action's click-through window. Leads without a click ID are only matched through enhanced conversions, which needs the customer data terms accepted.