> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.pivolio.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.pivolio.com/_mcp/server.

# Event mappings

Every ad platform has its own vocabulary. Meta wants `Purchase`, TikTok wants
`CompletePayment`, Reddit wants `Purchase`, Google Ads wants a conversion
action you created yourself. An **event mapping** is the row that says *this
Pivolio event name becomes that platform event name* — and whether it is
delivered at all.

Mappings live per destination, so the same `order_completed` event can go to
Meta as a purchase and to Google as a specific conversion action, without you
renaming anything upstream.

## What a mapping holds

* **Source event** — the Pivolio event name, e.g. `order_completed`. This is
  the name you passed to `track()`.
* **Platform event** — what the destination receives.
* **Enabled** — a per-mapping on/off switch.

Google Ads mappings carry three more fields, because Google resolves to an
account object rather than a name:

* **Conversion action** — the action in your Google Ads account that receives
  the conversion.
* **Conversion category** — seeds the type when Pivolio creates the action for
  you.
* **Primary** — whether this action counts toward Smart Bidding and your
  Conversions column, or is secondary reporting only.

## The defaults each platform ships

Three of the four destinations arrive already mapped, so a freshly connected
destination starts delivering without configuration:

* **[Meta](/documentation/destinations/meta)** — 17 mappings covering the standard commerce, lead and
  engagement events.
* **[TikTok](/documentation/destinations/tik-tok)** — 13 mappings. `page_view` and `view_content` both
  land on ViewContent, since TikTok has no separate page-view event.
* **[Reddit](/documentation/destinations/reddit)** — 8 mappings. Reddit also supports a `CUSTOM`
  tracking type, but only for names you map explicitly — it is not a catch-all.
* **[Google Ads](/documentation/destinations/google-ads)** — **no defaults**. Google delivers nothing
  until you map events to conversion actions yourself.

## What happens to an unmapped event

On every destination, an event with no enabled mapping is **skipped** — recorded
in reporting with a `skipped` status, not counted as a failure, and never sent.
There is no catch-all on any platform.

Skipped is not an error. A `page_view` reaching Google Ads with no mapping is
working exactly as intended; you would not want every pageview uploaded as a
conversion.

## When to add a custom mapping

Add one when you have a business event the defaults don't know about:

* A domain-specific conversion — `demo_requested`, `quote_accepted`,
  `plan_upgraded` — that you want reported as a platform conversion.
* An event you want sent to one platform only. Map it on Meta, leave it unmapped
  elsewhere, and it goes exactly where you want.
* A standard event you want remapped. If your `subscribe` really means a paid
  subscription rather than a newsletter signup, point it at the platform event
  that reflects the money.

Before adding a custom name, check whether a
[standard event name](/documentation/core-concepts/events) already fits. Standard names get
the correct taxonomy treatment — conversions earn attribution credit and trigger
click backfill, intent events do not — and a custom name that duplicates a
standard one splits your reporting for nothing.

## Turning a mapping off

Each mapping has its own enable switch, separate from the destination's. Use it
to stop sending one event without disconnecting the whole platform — for
example, muting `page_view` on Meta because the volume is drowning out your
conversion signal, while purchases keep flowing.

Disabling a mapping takes effect on the next event. It does not retract events
already delivered.

## Related

* [Destinations overview](/documentation/destinations/overview)
* [Consent rules](/documentation/destinations/consent-rules) — a mapped event can still be gated.
* [Troubleshooting](/documentation/destinations/troubleshooting-delivery)