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

# Events and data sent to Meta

> Understand purchase value, action sources, matching fields, and account-linked events.

Subtotal sends [purchase events](#purchase-events) and [account-linked events](#account-linked-events). Each has its own settings and data.

| Dashboard label   | Subtotal event type           | Meta event name                  |
| ----------------- | ----------------------------- | -------------------------------- |
| `purchase.shared` | `purchase.created`            | `SubtotalPurchase` or `Purchase` |
| `account.linked`  | `connection.first_activation` | `SubtotalAccountLinked`          |

Each event has its own dataset destinations. The dashboard's **Retailers** filter selects the supported retailers and marketplaces whose events reach each dataset.

## Purchase events

A purchase event represents an eligible retail purchase containing your brand's products.

### Choose your purchase event

Choose **SubtotalPurchase** to keep a distinct retail event name, or **Purchase** to use Meta's standard purchase event. The standard event can include purchases from your other data sources, so account for that when reporting totals.

Both options send the same purchase details. Choose one per dataset.

### When purchases are sent

<div id="meta-purchase-flow" className="not-prose my-8" role="img" aria-label="A consumer links a retailer account. Subtotal collects purchases and filters for eligible purchases and your brand's products, then sends purchase events to your Meta dataset.">
  <div className="meta-flow-track">
    <div className="meta-flow-stage">
      <div className="meta-flow-icon border border-gray-200 text-gray-600 dark:border-gray-700 dark:text-gray-300" aria-hidden="true">
        <Icon icon="link" size={20} />
      </div>

      <div className="meta-flow-title text-gray-900 dark:text-gray-100">Link account</div>
      <div className="meta-flow-detail text-gray-500 dark:text-gray-400">Consumer connects a retailer</div>
    </div>

    <div className="meta-flow-arrow text-gray-400" aria-hidden="true">
      <Icon icon="arrow-right" size={16} />
    </div>

    <div className="meta-flow-stage rounded-2xl bg-purple-50 dark:bg-purple-950/40">
      <div className="meta-flow-icon text-purple-700 dark:text-purple-300" aria-hidden="true">
        <Icon icon="filter" size={20} />
      </div>

      <div className="meta-flow-title text-purple-700 dark:text-purple-300">Subtotal</div>
      <div className="meta-flow-detail text-gray-600 dark:text-gray-300">Collect purchases<br />Match your products<span className="mt-1 block text-xs text-gray-500 dark:text-gray-400">Eligible purchases only</span></div>
    </div>

    <div className="meta-flow-arrow text-gray-400" aria-hidden="true">
      <Icon icon="arrow-right" size={16} />
    </div>

    <div className="meta-flow-stage">
      <div className="meta-flow-icon border border-gray-200 text-gray-600 dark:border-gray-700 dark:text-gray-300" aria-hidden="true">
        <Icon icon="database" size={20} />
      </div>

      <div className="meta-flow-title text-gray-900 dark:text-gray-100">Meta dataset</div>
      <div className="meta-flow-detail text-gray-500 dark:text-gray-400">Receives your purchase events</div>
    </div>
  </div>
</div>

Only eligible purchases for your selected retailers are sent. Purchases more than seven days old are skipped, so linking an account does not send its entire purchase history.

Purchase delivery also requires your brand to have access to the purchase, an active account and connection, items matching your brands, eligible identity information, no matching opt-out, and valid Meta authorization.

The event retains the original purchase timestamp. Collection time does not give an older purchase a new event date. This seven-day sending window is separate from Meta's attribution window, which determines which ad interactions can receive credit for a conversion.

### Purchase value

Example: a \$60 retailer basket contains two of your products at \$8 each. Subtotal sends **\$16**, not \$60.

Value reflects the available prices and quantities of your brand's items—not a fixed average order value or the total basket. Purchase values are sent in **USD**.

Value is calculated from each matching item's price multiplied by its quantity. A matching item can contribute to value even when a resolvable UPC is unavailable for product contents.

### Purchase details

| Data               | What is sent                           |
| ------------------ | -------------------------------------- |
| Value and currency | Your brand's item value, in USD        |
| Products           | Available UPCs, quantities, and prices |
| Purchase channel   | Online, in-store, or unknown           |
| Delivery category  | In-store, when known                   |

Available parameters include `retailer`, `retail_purchase_channel`, and `content_ids`, which you can use to filter results in Meta. Product details depend on the data available from the retailer.

### Purchase action source

The purchase setting controls the source sent to Meta; it does **not** filter purchases by channel.

| Setting        | In-store       | Online         | Unknown        |
| -------------- | -------------- | -------------- | -------------- |
| Best effort    | Physical store | Other          | Other          |
| Physical store | Physical store | Physical store | Physical store |
| Other          | Other          | Other          | Other          |

**Best effort** is the default. **Website** is not a purchase option.

`retail_purchase_channel` always describes the known purchase channel, independent of this setting. Online does not imply home delivery: Subtotal does not infer shipping versus pickup.

<Warning>
  **Physical store** applies to every purchase, including online purchases. Choose a source that accurately describes the event, not one intended to unlock a Meta feature.
</Warning>

### Avoid duplicate purchase counts

Avoid sending the same purchase through multiple providers. Selecting a different event name does not prevent duplicate sales from appearing in combined reports. Changing the name affects future events, not previously delivered purchases.

## Account-linked events

**SubtotalAccountLinked** represents a retail connection's first successful account link, not each reauthorization.

It is **not a purchase** and has no monetary value. It is also not a unique-person count: a consumer may have multiple retailer connections.

Account-linked events use the first-activation timestamp and must fall within the integration's seven-day sending window. They also require an eligible connection, identity information, no matching opt-out, valid authorization, and a configured destination accepting the retailer.

### Account-linked action source

| Setting | When to use it                                                        |
| ------- | --------------------------------------------------------------------- |
| Website | The consumer linked their account through a web-based Link experience |
| Other   | Another or unknown channel                                            |

Website describes the Link experience—not a purchase on your brand's site.

### Browser context

Account-linked events include these fields when available:

| Data          | What is sent                                                     |
| ------------- | ---------------------------------------------------------------- |
| Link URL      | Website origin, without page paths or query parameters           |
| Referring URL | Referring website origin, without page paths or query parameters |
| User agent    | The consumer's browser user agent during Link                    |
| IP address    | The consumer's IP address during Link                            |

Browser information describes the Link experience, **not retailer checkout**, and is not attached to purchase events.

## Shared across both events

Both event types include the event name, time, reference ID, action source, and retailer.

For consumer matching, both include hashed email and available phone, name, and postal code.

A usable connection email is required for delivery eligibility, and the event must contain an email that passes matching-identifier validation. Available profile information can provide additional match keys. Browser-context fields described above are not hashed matching identifiers; do not assume every field sent to Meta is hashed.

Review your ad-sharing requirements before enabling either event. See [consumer choices and opt-outs](/docs/subtotal-signal/opt-outs).
