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

# Connect Meta to Subtotal

> Send purchases from retailers and marketplaces, along with account-linking events, to your Meta dataset.

[Subtotal Signal](/docs/subtotal-signal/introduction) sends eligible purchases from retailers and marketplaces, along with account-linking events, to Meta through the Conversions API. Use these signals to understand the purchases Meta attributes to your ads.

This supports measurement of purchases beyond your DTC website—what we refer to as offline conversions in Signal. Meta can match received events to people and evaluate attribution to ad views or clicks. These purchases can take place in stores, on retailer websites, or through marketplaces. See [events and data](/docs/integrations/meta/events) for how purchase channels are represented.

**Connect → choose events → verify delivery → measure results**

## Before you start

* Access to Subtotal and the Meta business portfolio that owns your dataset.
* Permission to grant Subtotal access to that dataset.
* Access to the ad account you want to use for reporting.
* Your team's approval for ad-platform sharing. See [consumer choices and opt-outs](/docs/subtotal-signal/opt-outs).
* A working process for [communicating consumer opt-outs to Subtotal](/docs/subtotal-signal/opt-outs#connect-your-opt-out-process-to-signal), including applicable opt-outs you already hold, before enabling event delivery.

### Existing or new dataset?

| Choose | When |
| - | - |
| Existing dataset | You want retail signals alongside your current advertising data. |
| Separate dataset | You want to isolate setup and validation from existing data. |

Subtotal sends to datasets you grant access to; it does not create one for you.

<Warning>
  Avoid sending the same purchase through Subtotal and another provider. Overlapping feeds can double-count sales.
</Warning>

## Connect and configure

<Steps>
  <Step title="Connect Meta">
    Open [Meta in the Subtotal Dashboard](https://dashboard.subtotal.com/integrations/meta), then select **Connect**. Complete Meta authorization and grant the intended business assets.

    <div className="overflow-hidden rounded-lg border border-gray-200" style={{ aspectRatio: '1080 / 275' }}>
      <img src="https://mintcdn.com/typecastleinc/HOQHFAjwc84ScKsL/images/integrations/meta/connect.png?fit=max&auto=format&n=HOQHFAjwc84ScKsL&q=85&s=33407bc01fb7a1e624159a7af56f5264" alt="Meta integration before connecting, with the Connect Meta button." style={{ width: '100%', margin: 0 }} width="1080" height="978" data-path="images/integrations/meta/connect.png" />
    </div>
  </Step>

  <Step title="Confirm your dataset">
    Back in Subtotal, check **Connected business** and **Datasets**. Confirm the dataset ID, not just its name.

    If it is missing, check permissions in Meta and use **Update** on the integration to authorize again.

    <img src="https://mintcdn.com/typecastleinc/HOQHFAjwc84ScKsL/images/integrations/meta/connected-redacted.png?fit=max&auto=format&n=HOQHFAjwc84ScKsL&q=85&s=5aaee11b8e6d80c89f7895aa02ded56f" alt="Connected Meta business and available datasets. Business and dataset identifiers are redacted." className="rounded-lg border border-gray-200" width="1318" height="1193" data-path="images/integrations/meta/connected-redacted.png" />
  </Step>

  <Step title="Add an event">
    Open [Meta → Events](https://dashboard.subtotal.com/integrations/meta/events) and select **Add event**.

    | Setting | Choose |
    | - | - |
    | Trigger | `purchase.shared` or `account.linked` |
    | Event name | The name Meta receives. Starts as `SubtotalPurchase` or `SubtotalAccountLinked`; see [choosing an event name](/docs/integrations/meta/events#choose-an-event-name) |
    | Conditions | Which retailers reach this dataset, such as *Retailer is Walmart*. No conditions sends every retailer; see [retailer conditions](/docs/integrations/meta/events#retailer-conditions) |
    | Dataset | The destination for this event |

    Select **Create event** to save. Repeat for another trigger or dataset. Each trigger can be sent to a dataset once, under one event name.

    <Tabs>
      <Tab title="Purchase">
        <img src="https://mintcdn.com/typecastleinc/M-T9psFukvtdYfI8/images/integrations/meta/purchase-settings.png?fit=max&auto=format&n=M-T9psFukvtdYfI8&q=85&s=925bfafeeb354b62406192176cf56acf" alt="Add event dialog for purchase.shared: event name SubtotalPurchase, one condition (Retailer equals Walmart), and a destination dataset." className="rounded-lg border border-gray-200" width="866" height="1294" data-path="images/integrations/meta/purchase-settings.png" />
      </Tab>

      <Tab title="Account linked">
        <img src="https://mintcdn.com/typecastleinc/M-T9psFukvtdYfI8/images/integrations/meta/account-linked-settings.png?fit=max&auto=format&n=M-T9psFukvtdYfI8&q=85&s=b7cfe5e2068a0c5de1e58746a6c51f9e" alt="Add event dialog for account.linked: event name SubtotalAccountLinked, no conditions, and a destination dataset." className="rounded-lg border border-gray-200" width="866" height="1104" data-path="images/integrations/meta/account-linked-settings.png" />
      </Tab>
    </Tabs>
  </Step>

  <Step title="Verify delivery">
    Complete a new, eligible account link for a selected retailer. For purchase verification, wait for an eligible recent purchase to be collected.

    Open the matching dataset in [Meta Events Manager](https://business.facebook.com/events_manager2/list/) and inspect the configured event on the dataset's overview. Check its name, time, and available parameters. Events usually appear within an hour of being sent; allow for collection delays before that.

    Events from Subtotal do not appear in the **Test events** tab, which shows only website events.

    <img src="https://mintcdn.com/typecastleinc/HOQHFAjwc84ScKsL/images/integrations/meta/events-manager-redacted.png?fit=max&auto=format&n=HOQHFAjwc84ScKsL&q=85&s=c163f3ebec39cacc02cbe5f205e1d06a" alt="Meta Events Manager showing active Purchase and SubtotalAccountLinked events received through the Conversions API. Dataset identifiers are redacted." className="rounded-lg border border-gray-200" width="1318" height="1193" data-path="images/integrations/meta/events-manager-redacted.png" />
  </Step>
</Steps>

<Note>
  **Sending** in Subtotal means the event destination is configured. It is not a delivery receipt. An event appearing in Events Manager also does not prove ad attribution.
</Note>

## If events are missing

| Check | What to do |
| - | - |
| Wrong dataset or retailer | Compare dataset IDs and [retailer conditions](/docs/integrations/meta/events#retailer-conditions). |
| Reconnect banner | Reauthorize Meta; Subtotal keeps your event settings. |
| Existing account re-linked | Account-linked events fire on first activation, not each reauthorization. |
| Event renamed | A new name creates a different event in Meta. Audiences, custom conversions and campaigns using the old name stop receiving new events. |
| Old purchase history | Subtotal skips events older than seven days. Enabling delivery does not backfill history. |
| Missing email or opt-out | Check identity and [ad-sharing eligibility](/docs/subtotal-signal/opt-outs). |
| No matching brand items | Purchase events contain only items matching your brands. |
| Still missing | Contact Subtotal with the connection/purchase ID, dataset ID, and time. Never share access tokens. |

Next: [Understand the events](/docs/integrations/meta/events).


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