> 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.

# Destinations vs integrations

These are the two terms the dashboard uses most, and mixing them up will send
you looking for settings that live somewhere else entirely. The distinction is
direction of travel:

* **Integrations are inbound.** Sources that put events *into* a workspace.
* **Destinations are outbound.** Ad platforms Pivolio delivers conversions *to*.

```
integrations ──▶ Pivolio ──▶ destinations
  (SDK,                       (Meta, Google Ads,
   webhook,                    TikTok, Reddit)
   Shopify)
```

An integration never receives anything. A destination never sends you anything.
If you're asking "why aren't my events showing up", that's an integration
problem; if you're asking "why isn't Meta seeing my purchases", that's a
destination problem.

## Integrations — inbound sources

Three are live today:

* **JavaScript SDK** — the browser packages. This is the default source for a
  website. See [SDKs](/documentation/sd-ks/overview).
* **Inbound webhook** — generate a write key and POST a `UnifiedEvent` to
  `/ingest/integration` with the `X-Write-Key` header. Useful for server-side
  events and systems that can post JSON.
* **Shopify** — generate a write key, install the Pivolio app from your Shopify
  admin, and paste the key into the app's connect screen. The dashboard
  confirms the connection automatically.

> **Warning**
>
> The inbound webhook has **no request signing and no HMAC**. The write key is the
> only credential — anyone holding it can post events into your workspace. Treat
> it as a secret, keep it server-side, and re-create the source to rotate it.

Each integration gets its own write key, distinct from your first-party SDK key.
Posting to `/ingest/integration` with an SDK key returns `403`. See
[Workspaces & write keys](/documentation/core-concepts/workspaces-write-keys).

## Destinations — outbound ad platforms

Pivolio recognizes **nine ad platforms** but delivers to **four**. This is the
single most misread fact in the product, so here it is explicitly:

| Platform   | Click IDs                   | Channel     | Server-side delivery    |
| ---------- | --------------------------- | ----------- | ----------------------- |
| Meta       | `fbclid`                    | paid_social | **Destination**         |
| Google Ads | `gclid`, `gbraid`, `wbraid` | paid_search | **Destination** (OAuth) |
| TikTok     | `ttclid`                    | paid_social | **Destination**         |
| Reddit     | `rdt_cid`                   | paid_social | **Destination**         |
| Microsoft  | `msclkid`                   | paid_search | Click source only       |
| LinkedIn   | `li_fat_id`                 | paid_social | Click source only       |
| Pinterest  | `epik`                      | paid_social | Click source only       |
| Snapchat   | `sc_click_id`               | paid_social | Click source only       |
| X          | `twclid`                    | paid_social | Click source only       |

**The five click-source-only platforms are never delivered to.** There is no
adapter, no credential form, and no way to connect one. Their click IDs are
captured, persisted, backfilled onto conversions and counted in
[attribution](/documentation/core-concepts/attribution) — so LinkedIn and Pinterest campaigns show up
correctly in your reports — but no conversion is ever sent to their Conversions
APIs. If you need server-side delivery to those platforms, Pivolio does not
provide it today.

> **Note**
>
> Attribution coverage and delivery coverage are independent. A conversion can be
> attributed to Pinterest *and* delivered to Meta in the same breath — one is
> about reporting, the other about who gets told.

## Delivery is per destination

Each connected destination gets its own independent attempt for every event.
One platform's outage never blocks another, and each attempt records its own
outcome — see [Delivery statuses](/documentation/core-concepts/delivery-statuses).

Destinations are also **per workspace**. Connecting Meta in one workspace does
nothing for another.

#### [Destinations](/documentation/destinations/overview)

Connect Meta, Google Ads, TikTok, or Reddit.

#### [Sending events over HTTP](/documentation/guides/http-api)

The inbound endpoints in detail.