← All docsChannel setup · Google Ads

Google Ads — Conversion Tracking and CAPI

Server-side conversion uploads via the Google Ads API, abstracted by Beaconry's Phase-2 broker. You skip the four to six week developer-token approval and go live the same day.

Reading time: ~6 minLast updated: 2026-05-02

Why a broker

Google Ads requires a developer token on every API call that uploads conversions. Getting one approved involves a basic-access application with Google, then a request to upgrade to standard access. It typically takes four to six weeks of back-and-forth.

Beaconry runs a central Cloudflare Worker (the "Phase-2 broker") that holds Beaconry's own approved developer token. Customers connect their own Ad-account via OAuth. The broker proxies upload calls but never sees your conversion data: it forwards the encrypted body and rate-limits per customer. Refresh tokens stay encrypted in your WordPress database.

Result: you connect via OAuth in two minutes, instead of waiting for Google approval for over a month.

What you'll need

  • A Google Ads account that you have admin or "Edit" access to.
  • About 5 to 10 minutes (most of it spent creating Conversion Actions in Campaign Manager).

1. Connect with Google

WordPress Admin → Beaconry → Tracking → Google Ads. Click Connect with Google. You're redirected to Google's OAuth consent screen.

Approve the requested scope (adwords). Google redirects you back to the Tracking tab with the access-token and refresh-token stored automatically (encrypted at rest).

2. Find your Customer ID

  • Open Google Ads at ads.google.com.
  • Top-right corner shows your Customer ID, like 123-456-7890.
  • Paste it into Beaconry → Customer ID. Beaconry strips the dashes automatically.

3. Create Conversion Actions in Campaign Manager

You need one Conversion Action per event-type you want to track. Beaconry maps GA4 event names to Google Ads categories.

For each event-type:

  • Tools and Settings → Measurement → Conversions → New conversion action.
  • Source: Website.
  • Category: pick the matching one (see table below).
  • Set Value, Count, Click-through window per Google's recommendations.
  • Save. The conversion-action detail page URL contains the action ID and customer ID, like ...#?conversionTypeId=1234567890&ocid=98765.
  • Copy the full URL into the matching slot in Beaconry.

Event-type to category mapping:

Beaconry eventGoogle Ads category
WooCommerce purchasePurchase / Kauf
WooCommerce add_to_cartAdd to cart / In den Einkaufswagen
WooCommerce begin_checkoutBegin checkout / Bezahlvorgang starten
Form generate_lead + submit_applicationSubmit lead form / Lead-Formular senden
Newsletter signupSubscribe / Abonnieren
Booking formsBook appointment / Termin vereinbaren
Account signup / trialSign up / Registrierung
Contact formContact / Kontakt

4. (Shortcut) Import from GA4

If your GA4 property already has these events marked as conversions, you can import them in Google Ads instead of recreating each one:

  • Tools → Conversions → + New conversion action.
  • On the next page (step 2 of the wizard) scroll down and click Back. This lands on step 1 "Select data sources".
  • Pick Google Analytics 4.
  • Back on step 2 of the wizard, an "Import multiple conversion actions from an existing Google Analytics property" section now appears at the bottom. Pick the property and import the events (purchase, generate_lead, sign_up, contact).

5. Send the test event

Save the form, click Send Google Ads test event. The broker validates the OAuth token and Customer ID. HTTP 200 means the connection works. Conversion appears in Campaign Manager within ~3 hours. Google does not have a real-time test view for the API.

6. (Optional) Enhanced Conversions

Beaconry hashes email and phone server-side and sends them as Enhanced Conversions data alongside every upload. This significantly boosts match-rate when the visitor has not granted the Google ad cookie. No additional setup needed, it's automatic if you provide the token and Customer ID.

What ships automatically

  • WooCommerce: AddToCart, InitiateCheckout, Purchase. Order value and currency forwarded.
  • Forms: generate_lead, submit_application, subscribe, book, sign_up, contact (mapped per form-type).
  • gclid / wbraid / gbraid captured from URL parameters and persisted in nl_ext. Required by Google for click-to-conversion attribution.

Troubleshooting

  • "PERMISSION_DENIED". Your Google account does not have permission on the Customer ID. Use an account with Admin or Edit role.
  • "INVALID_ARGUMENT, conversion_action". The conversion-action URL was pasted incorrectly. The URL must contain conversionTypeId.
  • "Conversion uploaded but not visible". Google Ads Conversion data has up to 3 hours of latency. Wait, then check Campaign Manager → Tools → Conversions → Status column.
  • "User-rejected token". Refresh-token was revoked by the user (clicked Disconnect or rotated their Google password). Click Connect with Google again, the rest of the configuration stays intact.