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

# Conversion tracking

> Record the actions that matter, such as a booking or a form sent, and tell your ad platforms which ads brought them.

Conversion tracking records the actions that matter to your business, such as a form sent, a call button tapped or a booking made. It tells your ad platforms about each one, so they can see which ads bring you customers.

&#x20;**Who can do this:** Admins and Owners.

## How it fits together

Three things work together, each on its own screen:

* **The switch**: one setting that turns conversion tracking on for the whole site. It's on the **Conversions** card in **Visitor data**.
* **Conversions**: your rules. Each conversion says which visitor action counts, such as "the booking form is sent", what it's worth, and where to send it. You list them on the **Conversions** screen.
* **Conversion Events**: the record. Each time a visitor does what a rule describes, one conversion event is saved. You read them on the **Conversion Events** screen.

Each conversion can reach a platform in two ways:

* **From the page**: the platform's own tag, running in the visitor's browser, reports it. This needs only the tag in [Embed scripts](https://docs.fetchski-attract.com/guides/connections/embed-scripts.md). Ad blockers can stop it.
* **From the server**: your site reports it to the platform directly, without going through the visitor's browser, so ad blockers can't stop it. This also needs the platform connected in **Connections**. That's the optional part: skip it and page sends still work.

### Words used here

* **Ad platform**: where you run ads, such as Google Ads, Meta (Facebook and Instagram) or TikTok.
* **Analytics tool**: measures visits rather than running ads, such as Google Analytics 4.
* **Tag manager**: a tool that loads other tags for you, such as Google Tag Manager. Its **container** is the set of tags it holds.
* **Tag** or **pixel**: a small script from a platform that you add to your site. Meta and TikTok call theirs a pixel.
* **Data stream** and **Measurement ID**: in Google Analytics 4, a data stream is your website as Google sees it, and its Measurement ID (it starts with G-) names it.
* **Attribution**: working out which ad or campaign brought a visitor, so the conversion is credited to it.
* **Lead**: someone who might become a customer, such as a person who sends a form or calls you.

## Before you start

* Add each ad platform's tag in [Embed scripts](https://docs.fetchski-attract.com/guides/connections/embed-scripts.md). Conversions sent from the page go through these tags. Look for the **Advertising** services, **Analytics — Google Analytics 4 (Google tag)** and **Tag manager — Google Tag Manager**.
* Set up your cookie banner, which asks visitors what they allow. Sends from the page follow each tag's own cookie category: Google Analytics 4 starts as **Analytics**, the ad platforms as **Marketing**. Sends from the server always need the visitor to allow marketing cookies. See [Cookie consent](https://docs.fetchski-attract.com/guides/site-settings/cookie-consent.md).
* For Google Ads, create a conversion action in your Google Ads account first. You copy its label from there.

## Turn on conversion tracking

**1. Open Visitor data**

Open the command palette (⌘K, or Ctrl+K on Windows) and choose **Visitor data**. The shortcut is T then Shift+V (press T, let go, then hold Shift and press V, while you're not typing in a box; see [Keyboard shortcuts](https://docs.fetchski-attract.com/guides/get-started/toolbar-and-command-palette.md#keyboard-shortcuts)). It's also at the bottom of the list in the **Connections** window.

**2. Turn it on**

On the **Conversions** card, turn on **Record conversions and ad attribution**.

**3. Add linked sites (optional)**

Do visitors go on to another site of yours to book or buy? List it in **Linked domains**, one per line, such as book.example.com. Google then credits a purchase there to the ad that brought the visitor here.

This is only half the setup: the same domains must also be added to the Google tag on that other site, in Google's tag settings (**Admin** → **Configure your domains**). If someone else runs that site, send them this list.

**4. Choose how long to keep data (optional)**

Under **Advanced options**:

* **Days to keep visitor attribution**: how long to remember where a visitor came from, after their last visit. It starts at 180 and can't go below 90.
* **Days to keep conversion events**: how long to keep each recorded conversion. It starts at 730, about two years.

**5. Save**

Choose **Save**. The card's badge turns to **On**.

![The Visitor data screen with the Conversions card open: Record conversions and ad attribution on, the "Sending conversions from the server" guide.](https://mintcdn.com/fetchski-attract-api/DSJs5HmTF1-gpNT3/images/cms/guides/connections/conversion-tracking/guides-connections-conversion-tracking-visitor-data-light.png?fit=max\&auto=format\&n=DSJs5HmTF1-gpNT3\&q=85\&s=d0d916dec227ca8fcd5e68aa4ca0075d)

Turn on conversion tracking in Visitor data.

## Say what counts

Each conversion is a rule for one action you care about: what sets it off, what it's worth, and which platforms hear about it.

**1. Open Conversions**

In the command palette, choose **Conversions**. The shortcut is G then Shift+A (press G, let go, then hold Shift and press A).

**2. Start a new one**

Choose **New conversion**. A picker opens with ready-made starters in three groups: **Sales**, **Leads** and **More actions**. They match the categories Google Ads uses. Choose one, such as **Book appointment**, or choose **Start from scratch**.

![The New conversion picker with its Sales, Leads and More actions groups of starter cards, and the Start from scratch card.](https://mintcdn.com/fetchski-attract-api/DSJs5HmTF1-gpNT3/images/cms/guides/connections/conversion-tracking/guides-connections-conversion-tracking-starters-light.png?fit=max\&auto=format\&n=DSJs5HmTF1-gpNT3\&q=85\&s=1fee65bbf0459969f409d08298fde1ed)

Start from a ready-made conversion, or from scratch.

**3. Check the Conversion tab**

The starter fills in most of it.

* **Name**: for your own reference, such as "Daycare tour booked".
* **Key**: the conversion's name for other systems. It follows the name as you type. Leave it as it is. Change it only if someone connecting another system, such as a webhook or a report, asks you to, and don't change it again after they use it.
* **Enabled**: on, below **Key**. Turn it off to stop the conversion without losing its settings.
* **Triggers**: what makes it happen. Add as many rows as you need. In each row, choose **When**, then fill in what it asks for. Choices include **A form is submitted**, **A phone number is clicked**, **A page is viewed** and **A link to another website is clicked**.

For example, Parker's books tours through a form on its site. The **Book appointment** starter adds a row with **When** set to **A form is submitted**. In that row's **Form**, choose the booking form, "Book a trial day". The conversion now counts each time that form is sent successfully.

If your bookings happen on another website instead, use **A link to another website is clicked** and list that site in **Websites**.

* **Value** and **Currency**: optional. What one of these is worth to you, such as 45 USD.
* **Count**: **Once per visit** suits leads and calls: a visitor who clicks your phone number three times is one lead. A visit lasts until they close that browser tab. **Every time** suits purchases.

![The Conversion tab of "Daycare tour booked": Key "daycare-tour-booked", Enabled on, one trigger row with When "A form is submitted" and Form "Book a trial day", Value 45, Currency USD.](https://mintcdn.com/fetchski-attract-api/eK8pBpUam_xD3uEM/images/cms/guides/connections/conversion-tracking/guides-connections-conversion-tracking-conversion-tab-light.png?fit=max\&auto=format\&n=eK8pBpUam_xD3uEM\&q=85\&s=9d68af0e74134803f8ad875001097a6d)

The Conversion tab: what counts, and what it's worth.

**4. Check the Send to tab**

There's one row per ad platform. The starter adds a row for each platform whose tag is on your site. With no tags yet, it adds rows for Google Analytics 4, Google Tag Manager, Meta and TikTok, with their events already chosen.

* **Platform** and **On**: the platform, and whether to send to it. Turn **On** off to pause a row without losing it.
* **Send**: **From the page (the platform’s tag)**, **From the server** or **Both (the platform counts the pair once)**. Sending from the server reaches the platform even when an ad blocker stops the tag.

**Both** is offered for Google Ads, Meta and TikTok, which count the pair once. Google Analytics 4 counts every copy, so it takes the page or the server, never both. Google Tag Manager is page only.

* **Event**: what the platform receives, from its own list of standard events. Choose **Other (name it yourself)** to type your own.
* For Google Ads, paste the **Conversion label** from your Google Ads conversion action. To send from the server, also paste its **Conversion action ID**.
* **Send hashed contact details**: starts on. For form conversions, the form's email and phone go along as a one-way code (hashed), not as readable text. The platform makes the same code from its own users' details and compares the two, to find who converted.

So it's still personal data, used for matching, not anonymous data. It helps platforms match more conversions, and it's only sent for visitors who allow marketing cookies. Turn it off and no contact details are sent, so platforms match fewer conversions.

![The Send to tab with three rows: Google Ads (Send set to Both, with the Conversion label and Conversion action ID filled), Google Analytics 4 (From the page, Other event named book\_appointment) and Meta (Both, Schedule event), then Add Item.](https://mintcdn.com/fetchski-attract-api/DSJs5HmTF1-gpNT3/images/cms/guides/connections/conversion-tracking/guides-connections-conversion-tracking-send-to-light.png?fit=max\&auto=format\&n=DSJs5HmTF1-gpNT3\&q=85\&s=b179c86427adb296bee709acdef3a975)

One row per platform, each with that platform's own event.

**5. Save**

Choose **Save**. A conversion has no draft: it works as soon as you save. Turn off **Enabled** on the **Conversion** tab to stop it without losing its settings.

**6. Try it**

Open your site in a private window (Incognito in Chrome), which isn't signed in, and do the action once, such as sending the booking form. Then open **Conversion Events** (see [Check what happened](#check-what-happened)): the new event is at the top.

## Send from the server (optional)

A row whose **Send** is **From the server** or **Both** also needs that platform connected:

**1. Open the platform's card**

In the toolbar (the bar across the top of your site once you're signed in; see [The toolbar](https://docs.fetchski-attract.com/guides/get-started/toolbar-and-command-palette.md#the-toolbar)), choose **Connections**. Under **Ads and conversions**, choose **Google Ads**, **Google Analytics 4**, **Meta** or **TikTok**.

**2. Follow its setup guide**

Each card has a step-by-step guide to the platform's own site. Paste what it tells you to copy:

* **Google Ads**: the service account key file, in **Google Ads — service account JSON**, and the **Google Ads — customer ID**.
* **Google Analytics 4**: a row in **Google Analytics — data streams**, with the stream's **Measurement ID** and its **Measurement Protocol API secret**.
* **Meta**: the **Meta — Conversions API access token**.
* **TikTok**: the **TikTok — Events API access token**.

**3. Save**

Choose **Save**.

**4. Test it (optional)**

Each card has a test switch or code, such as **Google Ads — test mode** or **Meta — test event code**. Meta and TikTok give you the code in their own **Test events** screen. While it's set, the platform checks your conversions but doesn't use them for ads. Test in this order:

1. Turn on the test switch, or paste the test code, and choose **Save**.
2. In a private window, do an action one of your conversions counts, such as sending the form.
3. In **Conversion Events**, open that event (**View →**): its **Delivery** shows **Sent (test mode)**. Meta and TikTok also show it in their **Test events** screen.
4. Turn the test switch off, or clear the code, and choose **Save** again. Until you do, real conversions aren't used for ads.

Each platform needs its tag on your site as well:

* **Meta** and **TikTok** send only to the pixel set up in Embed Scripts, so a matching **Meta Pixel** or **TikTok Pixel** script must be on.
* **Google Analytics 4** sends only to a data stream whose Google tag is on in Embed Scripts, with the same **Measurement ID**.
* **Google Ads** needs the **Conversion action ID** on each row sent from the server.

![The Meta card with a Needs attention badge, the "Setup guide — Meta (Conversions API)" panel, the access token saved as dots with Replace and Remove.](https://mintcdn.com/fetchski-attract-api/XGXm295htfOP45LA/images/cms/guides/connections/conversion-tracking/guides-connections-conversion-tracking-meta-card-light.png?fit=max\&auto=format\&n=XGXm295htfOP45LA\&q=85\&s=4a68ab87fe3b9d5f6e21874dac01428b)

Each card shows how its last send went.

Each card's badge shows where it stands:

* **Off**: conversion tracking is off in **Visitor data**.
* **Not set up**: the card isn't filled in.
* **Connected**: it's set up. The detail line shows its last send, or "No conversions sent yet."
* **Not sending yet** or **Needs attention**: the last send didn't go through. The last-send line, such as **Meta — last send**, says why.

## What happens after saving

From then on, each matching visitor action is recorded as a conversion event and sent to the platforms in its **Send to** rows. A send from the page follows its script's **Consent category** in Embed scripts: Google Analytics 4 starts as **Analytics**, the ad platforms as **Marketing**. A send from the server, Google Analytics 4 included, always needs marketing cookies.

Your **Privacy Policy** updates by itself. When you connect Google Analytics 4, Meta or TikTok to send from the server, your visitors are asked for consent again.

## Check what happened

Open the command palette and choose **Conversion Events**. The shortcut is T then V (press T, let go, then press V, while you're not typing in a box; see [Keyboard shortcuts](https://docs.fetchski-attract.com/guides/get-started/toolbar-and-command-palette.md#keyboard-shortcuts)).

![The Conversion Events window: the tiles Last 7 days, Need attention, Sending and Kept 730 days; the filters row; a table of recent events with a colored chip per platform.](https://mintcdn.com/fetchski-attract-api/XGXm295htfOP45LA/images/cms/guides/connections/conversion-tracking/guides-connections-conversion-tracking-events-light.png?fit=max\&auto=format\&n=XGXm295htfOP45LA\&q=85\&s=bda1eaa07d27454b71f3dc4b6a856de2)

Every conversion, and whether each platform received it.

* **The tiles** count the **Last 7 days**, those that **Need attention**, those still **Sending**, and how many are kept. Choose **Need attention** or **Sending** to show just those.
* **The filters** narrow the list by **Conversion**, **Platform**, **Delivery**, **Status**, **Source** and dates. You can also paste an exact ID into **Event, visitor or submission ID**.

  An event ID is one recorded conversion. A visitor ID is one visitor, so it lists all their conversions. A submission ID is one form submission. Each event's details (**View →**) list its event and visitor IDs, plus the submission ID when a form set it off, ready to copy.
* **Each row** shows when it happened, the conversion, its value, the page, and a chip per platform.

Choose **View →** on a row to see the whole story:

* **Delivery**: for each platform, whether the page's tag fired, and how the server send went.
* **Journey**: the visitor's first visit, the pages they saw (when the [request log](https://docs.fetchski-attract.com/guides/connections/request-log.md) is on), the ad or campaign that brought them, and their other conversions.
* **Attribution** and **Consent at the time**: the ad click details, and what the visitor had agreed to.

A server send shows one of these states:

| State | What it means | What to do |
| - | - | - |
| **Queued** or **Retrying** | On its way. **Retrying** means a try didn't go through and it's trying again by itself. | Wait. |
| **Sent** | The platform received it. | Nothing. |
| **Failed** or **Not set up** | It couldn't be sent, or the platform's card isn't filled in. | Fix the cause, then retry (below). |
| **Too old to send** | It waited past the age the platform accepts. | Nothing: it can't be sent now. |
| **Not sent** | There was nothing the platform could match it on. The detail line says why. | Nothing, unless the detail names a setting to fix. |
| **Not sent — no Marketing consent** | The visitor didn't allow marketing cookies, so on purpose nothing went from the server. The page's own tag may still have fired: the **Delivery** row shows it. | Nothing: this is normal. |
| **Browser only** | The row sends from the page only. | Nothing. |

When a send **Failed** or was **Not set up**, fix the cause first, usually the platform's card in Connections. Then choose **Retry** on that platform, or **Retry all** when more than one send can be retried. Retry is offered only for visitors who allowed marketing cookies.

![The detail panel of one event: the Delivery table with Google Ads fired by the browser tag and Meta Failed with its error and a Retry button.](https://mintcdn.com/fetchski-attract-api/XGXm295htfOP45LA/images/cms/guides/connections/conversion-tracking/guides-connections-conversion-tracking-detail-light.png?fit=max\&auto=format\&n=XGXm295htfOP45LA\&q=85\&s=8b61e5af5afb8bfb71897562f525731d)

Fix the cause, then retry the send.

## Good to know

* **Every conversion is recorded, whatever the visitor's consent.** Only sending it to ad platforms needs marketing consent.
* **Some visitors have no history.** A visitor who allows neither analytics nor marketing cookies isn't followed from visit to visit. Their conversions are still recorded, without the journey.
* **Form Submissions links here.** A submission's details list its conversions. Choose **View event** to open one in Conversion Events. See [Form submissions](https://docs.fetchski-attract.com/guides/forms/form-submissions.md).
* **With tracking off, the history stays.** Conversion Events still shows what was recorded, under a notice that nothing new is recorded.

## Troubleshooting

> [accordion] Conversion Events says "Track conversions
>
> Conversion tracking is off and nothing has been recorded yet. Choose **Open Visitor data** and follow "Turn on conversion tracking" above.

> [accordion] Paste the conversion action ID to send from the server, or choose “From the page”.
>
> A Google Ads row is set to send from the server, but its **Conversion action ID** is empty. In Google Ads, open the conversion action and copy its ID number from the address bar. The help under the field shows where it is. Or set **Send** to **From the page (the platform’s tag)**.

> [accordion] A Google Ads row asks for the Google Ads tag
>
> Sending from the page needs the Google Ads tag on your site. Add **Advertising — Google Ads (Google tag)** in [Embed scripts](https://docs.fetchski-attract.com/guides/connections/embed-scripts.md), then save the conversion again. With more than one Google Ads tag, paste the full label that includes the AW- account number.

> [accordion] A platform's card says Needs attention
>
> Read its last-send line. It usually means the key or token is wrong or has expired. Replace it on the card, choose **Save**, then retry the failed sends in **Conversion Events**.

## Related

> [card] [Embed scripts](https://docs.fetchski-attract.com/guides/connections/embed-scripts.md)
>
> add your ad platforms' tags.

> [card] [Request log](https://docs.fetchski-attract.com/guides/connections/request-log.md)
>
> every visit and the campaign it came from.

> [card] [API keys and webhooks](https://docs.fetchski-attract.com/guides/connections/api-keys-and-webhooks.md)
>
> let other systems report sales, or hear about each conversion.

> [card] [Cookie consent](https://docs.fetchski-attract.com/guides/site-settings/cookie-consent.md)
>
> the banner that asks visitors first.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.