Skip to content
sandadocs

Send conversions to Google Ads

Send jobs won and invoices paid to a Google Ads conversion action, matched to the click or the customer. Each conversion is sent once.

Standard · EnterpriseFor owners and admins

A push to Google Ads conversions sends the jobs you won and the invoices you were paid to a conversion action in Google Ads, as offline conversions. Google matches each one to the ad click that brought the customer in, or to the customer themselves, so your campaigns are measured on work that paid rather than on form fills, and Google's bidding can learn from it.

Each conversion is sent once, by its transaction ID: the job, order or invoice ID it comes from. A value from your semantic fluid can go with it, such as the job's revenue.

Before you start

  • A conversion action that imports clicks. In Google Ads, under Goals · Conversions, make a conversion action whose source is Import from clicks, in the Google Ads account the conversions belong to. Google takes conversions for a new action a few hours after it is made.
  • A Google account with access to it. Whoever connects signs in to Google as someone who is a user on that Google Ads account, or on a manager account above it. Google asks for 2-Step Verification and a passkey on that Google account before it lets sanda connect, and a passkey made just now can take up to a week before Google accepts it, so set one up ahead of time.
  • Matching on customers' details. To match a conversion on an email, a phone number or an address rather than a click ID (what Google calls enhanced conversions for leads), turn on enhanced conversions for leads and accept the customer data terms in Google Ads, under Goals · Settings. Google takes a conversion matched this way for a shorter time: up to 63 days after its click, where one with a click ID has 90.
  • Be an owner or admin in sanda. Only owners and admins connect a Google account and make a push.

Connect a Google account

  1. Open Push. In the console, go to Data · Streams and open the Push tab.
  2. Start connecting. Under Choose a destination, press Google Ads conversions. Once a Google account is connected, the card opens a new push on it instead.
  3. Sign in to Google. Choose the Google account that can reach your Google Ads account.
  4. Allow sanda. Google lists what sanda asks for in its own words: to see, edit, create and delete your Google Ads accounts and data, and to see, edit, create, import or delete your customer data in Google Ads (and in Google's other advertising and analytics products). Allow both. A push sends its conversions with the customer data permission, and uses the Google Ads one only to read your accounts and their conversion actions for the editor's lists: it changes nothing in your Google Ads accounts.
  5. Make the push. You land back on Push, in a new push on the account you connected.

A Google account you connected for a Google Ads pull is the same sign-in, and a push can use it once it has been connected for pushes too: connecting it here adds what a push needs to what it already allowed.

If you untick Google Ads access on Google's screen, the push still connects and runs. The editor can't list your accounts or conversion actions then, so you type their IDs instead.

Create the push

Open New push, choose Google Ads conversions as the destination, and fill in the form. Its sections are those of every destination with a set form.

Where it writes

  • Google account: the sign-in that sends the conversions.
  • Google Ads account: the account that owns the conversion action, as its ten-digit ID. The list shows the accounts the sign-in reaches directly, and those one step under the manager accounts it reaches (those say through and the manager's name); a sign-in that reaches a great many lists only the first of them. For any other account, such as one two steps under a manager, Type the ID instead lets you type it from the top of Google Ads.
  • Manager account: only when you reach the account through a manager account. Choosing the account above fills it in.
  • Conversion action: an action whose source is Import from clicks, owned by the account above. The list shows only those. To type its ID, open the action in Google Ads under Goals · Conversions: the ID is the number after ctId= in the page's address.

When you save, sanda checks with Google Ads that the account owns the action and imports clicks into it, and keeps its name for the push's page. Where the sign-in can't read Google Ads, or Google doesn't answer, nothing is checked, and the page names the action by its ID.

What it sends

Part Required What to give it
Transaction ID Yes The job, order or invoice ID, from a column or a dimension. Google treats a second conversion with the same ID as the first, restated.
Conversion time Yes When the job was won or the invoice paid. A date alone counts as the end of that day (see times).
Value No In dollars and cents of the conversion's currency, from a column, a dimension or a metric. A fixed value instead gives every conversion the same value.
Currency No Each conversion's own currency, where it has one. Left empty, the push's Currency is used.
Event source No Each conversion's own source, so web form and phone leads can go in one push. Left empty, the push's Event source is used.
Customer's consent to use their data No Each customer's own yes or no, where you keep one. It overrides the push's consent for their conversion.
Customer's consent to personalised ads No The same, for personalised ads.

Then, under At least one of these, so Google Ads can match each conversion, the details Google matches on:

Part What it is
Google click ID, gbraid, wbraid The click ID your web form kept. A gbraid or a wbraid is a click ID Google uses on an iPhone or iPad in place of a gclid. Google takes one click ID a conversion: the gclid, else the gbraid, else the wbraid.
Email, Second email Hashed before they leave (see what Google receives).
Phone, Second phone Hashed before they leave. A number without a country code is read in the push's Country for numbers without one.
First name, Last name, Country code, Postcode The customer's address. Google matches on it only with all four parts, so they are sent together or not at all. Country code starts as AU, a fixed value; the names are hashed, the country code and postcode are not.

A row with none of these is counted as Can't be matched and isn't sent.

How it sends

  • Event source: where these conversions happened: Website, Phone call, In store, App, Message or Other. Sent with every conversion whose own event source is empty.
  • Currency: sent with every conversion whose own currency is empty. Starts as AUD.
  • Consent to use customer data and Consent to personalised ads: what your customers agreed to (see consent).
  • Country for numbers without one: Australia (+61) or New Zealand (+64).
  • Time zone: the time zone your job and invoice times are recorded in.

Which rows

Add a condition on the column that holds the conversion time, such as last_30_days, so each run reads only recent conversions. The editor reminds you when there is none, because Google takes none older than 90 days, and none older than 63 days without a click ID.

A push to Google Ads runs at most once every 60 minutes: Google's limits on conversion uploads are shared by every sanda workspace, so the faster schedules are greyed out.

Times and the time zone

Google refuses a conversion timed before its click, so a time read in the wrong zone (ten or eleven hours out, read as UTC) can refuse a whole morning's work. sanda reads each conversion time in the push's Time zone:

  • a time that carries its zone is that moment;
  • a time without one, as job systems usually store them, is that clock time in the push's time zone;
  • a date alone is the end of that day (one second before midnight) in the push's time zone: the latest the conversion can have happened, so it is never before its click.

Google asks whether each customer agreed to their details being used for advertising (Consent to use customer data) and to personalised ads (Consent to personalised ads). Each setting is Granted, Denied or Not stated, and the editor makes you choose: sanda sends what you choose here, and your privacy notice is what makes it true.

  • Granted and Denied are sent with every conversion.
  • Not stated sends nothing for that question, for a business that keeps no consent record.
  • A customer's own answer, from Customer's consent to use their data or Customer's consent to personalised ads, overrides the push's for their conversion. Yes is granted, no is denied, and an empty value leaves the push's answer.

A push whose Consent to use customer data is Denied, with no customer's own answer mapped, can't be saved: Google would keep none of what it sent.

What Google receives

  • Personal details are hashed. An email address, a phone number and a first and last name are hashed with SHA-256 before they leave sanda, so Google receives the hash, never the value. sanda prepares each one the way Google matches it first: an email address in lower case (and, for a Gmail address, without its dots or anything after a plus), a phone number in its international form (0412 345 678 becomes +61412345678), and a name in lower case. The preview shows the start of each hash.
  • A detail that can't be used is left out. An email that isn't one, a phone number sanda can't place, a click ID in the wrong form or half an address is left out of that conversion, which is sent on its other details. The run's note says how many were left out. A 13, 1300 or 1800 number is a business's, not a customer's, so it is left out without a word.
  • One click ID, and each detail once. The first click ID a row has, each email and phone number once, then the address.

A push to Google Ads is a push to an advertising network, so it checks where everything it reads came from, as every such push does (see what a push never does).

Each conversion is sent once

Google counts conversions, so sanda sends each one once, by its transaction ID, and never again, even when its value changes afterwards.

  • Too new. A conversion less than 6 hours old waits for a later run, because Google refuses a click it isn't ready for yet. So does one timed in the future. The run counts them as left for a later run.
  • Too old. A conversion more than 90 days old, or more than 63 days old with no click ID, is counted as too old to send, and isn't sent: Google takes a conversion up to 90 days after its click, and one it matches on the customer's details up to 63 days.
  • Many at once. A run sends at most 2,000 conversions, the oldest first, and leaves the rest for the next run.
  • Leaving the rows. A conversion that leaves the push's rows (its window moved on) is remembered for 120 days, so one that comes back is not sent again.

Once Google has taken any conversion, the push's Transaction ID can't change: Google would count every conversion again. Make a new conversion action and a new push instead.

Changing the Google Ads account or the Conversion action starts the push over: every conversion in the push's rows goes to the new action. If both actions count toward bidding, Google counts them twice, and the editor says so before you save. Connecting the Google account again, or with another sign-in, doesn't start it over: the conversions belong to the Google Ads account, not to whoever reached it.

How a run goes

Each run sends one request to Google with the conversions that are ready, and shows waiting. Google checks the request at once: when it names conversions it can't take (a hash it can't read, say), sanda takes those out and sends the rest, and the ones it named are listed on the run.

Google then works through the request in its own time. sanda first looks 30 minutes after it was sent, and keeps looking for up to 5 hours. If Google hasn't finished by then, sanda counts what it took as sent, because Google's first check had already passed, and the run says so.

Google says what it made of a request only in totals, never which conversion: so many taken, so many refused for each reason. The run lists one line for each reason with how many it covered, whether Google took the rest of the request or refused all of it, and is partial when Google refused any. A conversion Google already had (the same transaction ID, sent before) counts as sent.

When Google refuses conversions in a request for a reason that passes (a problem on Google's side, or a click too recent), or refuses some for a reason about the push while it takes the rest (customer data terms not yet accepted, say), sanda sends all of that request's conversions again on the next run, up to 3 times. Google reads the ones it already took as the same conversions, restated. After that they are held, and the push offers Try held conversions again, which sends them once more as they stand. Saving a change to the push releases them too. See held records.

When something goes wrong

The run says what happened in one sentence. A refusal about the push rather than a conversion fails the run, and owners and admins get the failed-run email if it is turned on (see when runs fail). When Google took the rest of the request, the run is partial instead, and its conversions go again on the next run (see how a run goes).

The run says What to do
The conversion action isn't in this account, or doesn't take imported clicks Choose the conversion action again, one whose source is Import from clicks, owned by the account on the push.
The manager account doesn't manage the Google Ads account Choose the account again from the list, which fills in the right manager account, or clear Manager account.
The Google account sanda connects as can't send conversions to this account Give that Google account access to the Google Ads account, or set the manager account it reaches it through.
Turn on enhanced conversions for leads, or accept the customer data terms Do so in Google Ads under Goals · Settings, then run the push again. If the push holds conversions by then, press Try held conversions again to send them.
Google takes conversions for a new conversion action a few hours after it is made Nothing: the run is skipped, and a later one sends them.
Google's daily limit for sanda is used up Nothing: the run is skipped, and the next carries on. The limit is shared by every sanda workspace.
The click is older than the conversion action's click window The click came too long before the conversion for this action to count it.
The conversion time is before the click Check the push's Time zone against the times in your job system.
Google won't use these without consent Check the push's consent choices, and the customers' own answers if you send them.
Connect the Google account again and allow sanda to send conversions The Google account no longer allows sanda to send conversions. Under Connected, press Connect Google Ads, sign in as the same Google account, and allow both on Google's screen.
This deployment's Google project doesn't have the Data Manager API switched on Contact sanda support.

If Connect fails

What happened What to do
Google shows a screen saying it hasn't verified the app sanda's Google app is still being verified by Google on this deployment. Ask sanda support before you carry on.
Google says access is blocked by your organisation's admin A Google Workspace admin has to allow sanda for your organisation first. Once they have, connect again. A Google account already connected is marked connect again for the same reason.
Google won't let you sign in without a passkey or 2-Step Verification Set them up on the Google account (Google's Security settings), then connect again. A passkey made just now can take up to a week before Google accepts it, so set one up ahead of connecting.
The lists of accounts and conversion actions say to type instead The Google account didn't allow Google Ads access, or Google didn't answer. Type the IDs, or connect again and allow both.

Disconnect

Press Disconnect beside the Google account under Connected, then Disconnect again to confirm. sanda forgets its token, and the pushes that send with it wait until you connect a Google account again. A Google Ads pull that reads with the same Google account waits too, because it is the same sign-in. The conversions the pushes sent stay in Google Ads.

sanda doesn't revoke its access at Google, because one Google sign-in may serve several workspaces. To remove sanda's access in Google too, remove it under Third-party connections in your Google Account's security settings.

Something unclear or out of date? Tell us, and we will fix the page.