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

# Integrations

> Connect your cart, your pixels and your CRM so a sale finds its way back to the video.

A play is only half the story. An integration closes the loop: your cart tells TrackPlay
the sale happened, and TrackPlay tells you which video caused it.

Everything lives under **Integrations** in the sidebar. Each platform is a card. Click
**Connect**.

## Cart platforms

These carry the viewer's session into the checkout and post the sale back.

<CardGroup cols={2}>
  <Card title="BuyGoods" icon="cart-shopping" href="/integration/buygoods" />

  <Card title="ClickBank" icon="cart-shopping" href="/integration/clickbank" />

  <Card title="Digistore24" icon="cart-shopping" href="/integration/digistore24" />

  <Card title="ThriveCart" icon="cart-shopping" href="/integration/thrivecart" />

  <Card title="SamCart" icon="cart-shopping" href="/integration/samcart" />

  <Card title="WarriorPlus" icon="cart-shopping" href="/integration/warriorplus" />

  <Card title="JVZoo" icon="cart-shopping" href="/integration/jvzoo" />

  <Card title="ElasticFunnels" icon="cart-shopping" href="/integration/elasticfunnels" />
</CardGroup>

Not on the list? Post the sale yourself with the [Conversions
API](/api-reference/conversions).

## How a cart integration works

<Snippet file="connect-integration.mdx" />

Once it is **Active**:

1. A viewer watches your video. TrackPlay gives them a session.
2. Every link on the page pointing at your cart is tagged with that session,
   automatically. You never edit a buy button.
3. They buy. The session rides into the cart.
4. The cart posts the sale back.
5. The sale is joined to the play. It shows up against the video, the traffic source,
   the affiliate, and the split-test arm.

<Warning>
  Pick a tracking parameter nothing else is using. TrackPlay **overwrites** the one you
  choose on every cart URL. If an affiliate network is already writing to it, one of you
  loses the data.
</Warning>

<Note>
  The tracking parameter carries the viewer's **session** into checkout, and the session is
  what credits the sale to a play. The buyer email on the postback links the buyer to a
  **profile** (Customer 360), but it does not, on its own, credit the sale to a video. See
  [Viewer identity](/identity/overview#how-a-sale-finds-its-video).
</Note>

## Pixels, tags and analytics

<CardGroup cols={2}>
  <Card title="Google Tag Manager" icon="google" href="/integration/gtm">
    Player events pushed to your `dataLayer`.
  </Card>

  <Card title="Segment" icon="chart-simple" href="/integration/segment">
    Video events through `analytics.track()`.
  </Card>
</CardGroup>

**Meta CAPI**, **TikTok Events** and **GA4** connect the same way: card, **Connect**,
paste your credentials. They fire server-side, so an ad blocker cannot quietly drop your
conversions.

**RedTrack** and **Everflow** take a postback template, with macros for click ID, payout,
currency and order ID.

## CRM

**ActiveCampaign** and **GoHighLevel** connect with an API key. Once connected, you can tag
a viewer in your CRM based on how far they watched: see [Timed
events](/player/cta-and-timing#timed-events).

## Outbound

<CardGroup cols={2}>
  <Card title="Webhooks" icon="webhook" href="/integration/webhooks">
    Signed, retried, and yours to consume.
  </Card>

  <Card title="Zapier" icon="bolt" href="/integration/webhooks#zapier">
    Leads, sales and split-test winners into anything.
  </Card>
</CardGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="The status will not leave 'Not configured'">
    The status only flips when a real test conversion arrives. It is not a save
    confirmation. It is proof the postback actually works. Check the URL is pasted into
    your cart exactly, then push a test sale.
  </Accordion>

  <Accordion title="Sales are recorded, but no video is attached">
    The buy link was not tagged. It has to point directly at the cart's domain, and sit on
    the same page as the player. A redirect or link shortener in between strips the query
    string, and the session with it.
  </Accordion>

  <Accordion title="Nothing is tracked at all">
    Check the player is on the same page as the buy button. If your checkout lives
    elsewhere, carry the session yourself and post the sale through the [Conversions
    API](/api-reference/conversions).
  </Accordion>
</AccordionGroup>
