> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashquotes.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Ads Offline Conversions

> Send booked revenue from Flashquotes to Google Analytics and Google Ads

<Note>
  **Scale subscription required.** Booking conversion tracking is available on the Flashquotes Scale plan. [Learn more about upgrading](https://flashquotes.com/pricing).
</Note>

Flashquotes can report revenue from Google Ads leads after their quotes become bookings. This connects the ad click captured by your Flashquotes form to a server-side `purchase` event in Google Analytics 4 (GA4). You can then use that event as a conversion in Google Ads.

Flashquotes sends the event to GA4 through Google's Measurement Protocol. It does not upload a conversion directly to Google Ads.

## Before you begin

You need:

* A Flashquotes Scale subscription
* A GA4 web data stream with a Measurement ID
* A Measurement Protocol API secret for that same data stream
* Lead tracking connected in Flashquotes before the Google Ads lead submits your form

Complete the Google-side configuration with Google's documentation:

* [Find your GA4 Measurement ID](https://support.google.com/analytics/answer/9539598)
* [Create a Measurement Protocol API secret](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag#api-secret)
* [Turn on user-provided data collection](https://support.google.com/analytics/answer/14077171)
* [Connect Google Ads to Google Analytics](https://support.google.com/analytics/answer/9379420)
* [Create a Google Ads conversion from the GA4 `purchase` event](https://support.google.com/google-ads/answer/2375435)

<Warning>
  Use the Measurement ID and API secret from the same GA4 web data stream. Keep the API secret private.
</Warning>

## Set up Flashquotes

<Steps>
  <Step title="Connect lead tracking">
    1. Go to **Settings > Integrations**.
    2. Find the **Google Analytics** card.
    3. Under **Lead tracking**, click **Connect**.
    4. Enter the Measurement ID for your GA4 web data stream and save.

    Lead tracking captures the Google click and GA client information that Flashquotes needs to connect a later booking to the original form submission.
  </Step>

  <Step title="Connect booking tracking">
    Under **Booking tracking**, click **Connect**, paste the Measurement Protocol API secret from the same GA4 web data stream, and click **Save**.

    Flashquotes stores the secret securely and only shows a masked preview after you save it. You cannot reveal the saved secret, but you can replace or delete it.
  </Step>

  <Step title="Send a test event">
    1. Open the **Booking tracking** connection.
    2. Click **Send test event**.
    3. In GA4 Realtime, look for `fq_connection_test` and compare the displayed reference.

    The test carries no customer information or revenue and does not create a record in Flashquotes. Do not mark `fq_connection_test` as a key event or import it into Google Ads.
  </Step>
</Steps>

<Note>
  A successful test confirms that Google accepted the request. It does not confirm that GA4 processed the event or that Google Ads can attribute a future booking.
</Note>

## How booking attribution works

<Steps>
  <Step title="A customer clicks your Google ad">
    Google adds a click identifier such as `gclid`, `gbraid`, or `wbraid` to the landing page URL. When the customer submits a Flashquotes lead form, Flashquotes saves the Google click identifier and GA client ID with that quote.
  </Step>

  <Step title="The quote becomes a booking">
    When the quote is booked, Flashquotes sends a server-side GA4 `purchase` event using the original attribution and the booking's invoice total.
  </Step>

  <Step title="Google attributes the purchase">
    GA4 associates the purchase with the original visitor when it can. If GA4 is linked to Google Ads and the `purchase` event is configured as a Google Ads conversion, Google Ads can use the booked revenue in reporting and bidding.
  </Step>
</Steps>

Google determines the final match and attribution according to your property, consent, and conversion-window settings. A successfully sent event does not guarantee that Google Ads will attribute a conversion.

### Wix embedded forms

Wix places embedded forms inside a sandbox that prevents them from reading the Google click and GA client information on the parent page. Install the Flashquotes attribution script described in [Wix Embed Best Practices](/forms/wix-embeds) before collecting leads. Other supported website builders do not need this extra script.

## Which bookings are sent

Flashquotes sends a booking conversion only when all of these conditions are met:

* The company has an active Scale subscription
* Lead tracking and booking tracking are both connected
* The quote came from a Flashquotes form submission attributed to Google Ads
* The submission included a valid GA client ID
* The quote becomes a booking through the standard booking flow
* The booking has at least one active, non-voided invoice
* All booking invoices use one supported currency: USD, CAD, GBP, AUD, or EUR

Flashquotes does not send conversions for direct or organic traffic, leads attributed to another ad platform, imported bookings, or bookings without the required Google attribution.

## What Flashquotes sends

Each eligible booking produces one GA4 `purchase` event with:

* The booking timestamp
* A stable, non-identifying transaction ID
* The invoice currency
* The full total of all active, non-voided invoices
* One aggregate item named `Booking`, with a quantity of `1`
* The saved GA client ID from the original quote submission
* Hashed email and international phone number when valid values are available

The reported value is booked revenue, not money collected. It reflects the invoice total after discounts and includes service charges, gratuity, and tax. Deposits, later payments, and invoice edits do not create additional purchase events.

<Warning>
  Flashquotes hashes customer data before sending it, but hashing does not replace your privacy, disclosure, consent, or opt-out obligations. Review Google's [user-provided data requirements](https://support.google.com/analytics/answer/14077171) before enabling this integration.
</Warning>

<Tip>
  Flashquotes uses a stable transaction ID so GA4 can deduplicate retries. Do not also send a browser-side `purchase` or directly upload the same booking to Google Ads, because that can double-count the conversion.
</Tip>

## Manage the connection

Use the menu next to **Booking tracking** to replace the API secret or delete the connection.

* Deleting **Booking tracking** removes the API secret and stops future booking events. Lead tracking remains connected.
* Deleting the Google Analytics **Lead tracking** connection removes both the Measurement ID and API secret, stopping lead and booking tracking.

## Troubleshooting

### Test event does not appear

* Confirm the Measurement ID and API secret belong to the same GA4 web data stream
* Send another test and check the GA4 Realtime report
* Replace the API secret in Flashquotes if it was revoked in Google Analytics
* Confirm your company still has an active Scale subscription

### A booking does not appear

* Confirm the lead submitted the form after both tracking connections were configured
* Confirm the quote originated from a Google Ads click, not direct traffic or another source
* If the form is embedded on Wix, verify the [Wix attribution script](/forms/wix-embeds#google-analytics-and-ad-tracking) is installed
* Confirm the booking was not imported and its invoices use one supported currency
* Allow time for GA4 and Google Ads reporting to update

### Revenue does not match a payment

This integration reports the full booked invoice total when the quote becomes a booking. It does not report deposits or payment transactions.

## Next steps

* [Track lead form activity with GA4](/settings/integrations/google-analytics)
* [Review Wix embed requirements](/forms/wix-embeds)
* [Learn how Google imports GA4 conversions](https://support.google.com/google-ads/answer/2375435)
