> ## 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 event names, retailer conditions, purchase value, 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 | Default Meta event name |
| - | - | - |
| `purchase.shared` | `purchase.created` | `SubtotalPurchase` |
| `account.linked` | `connection.first_activation` | `SubtotalAccountLinked` |

Each event has its own dataset destinations, and each destination has its own event name and retailer conditions.

## Choose an event name

The event name is sent to Meta exactly as you enter it, up to 50 characters.

| Name | Use it when |
| - | - |
| A custom name, such as the default `SubtotalPurchase` | You want retail events kept apart from events your own site sends. |
| A Meta standard event, such as `Purchase` or `CompleteRegistration` | You want Meta to optimize on the event and report it in its standard columns. It counts together with any events of that name your own site sends. |

An account-linked event cannot be named `Purchase`: it has no value, and would feed your purchase reporting and optimization.

<Warning>
  Renaming creates a different event in Meta. Audiences, custom conversions and campaigns that use the old name stop receiving new events. Update them in Meta when you rename, and remember earlier events keep their old name.
</Warning>

## Retailer conditions

Conditions choose which supported retailers and marketplaces reach a dataset. Each condition is **Retailer is** or **Retailer is not** a retailer, and a destination matches **all** or **any** of its conditions.

| Conditions | Sends |
| - | - |
| None | Every retailer |
| Retailer is Walmart | Walmart only |
| Match any: Retailer is Walmart, Retailer is Target | Walmart and Target |
| Retailer is not Target | Every retailer except Target |

Conditions are checked against the retailer of the linked account, for both purchases and account links.

## Purchase events

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

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

`retail_purchase_channel` describes the known purchase channel. Online does not imply home delivery: Subtotal does not infer shipping versus pickup.

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

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

Subtotal sends both events with Meta's **Other** action source. For purchases, the channel is sent separately in `retail_purchase_channel`.

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

## Using the events in Meta

| In Meta | With Subtotal's events |
| - | - |
| Events Manager | Events appear on the dataset overview, usually within an hour. They do not appear in **Test events**. |
| Custom audiences | Create a **Website** audience on the dataset and choose the event. Refine by `retailer` to build an audience per retailer. |
| Campaign optimization and reporting | Use a standard event name, such as `Purchase`. A custom name is reported in Events Manager but cannot be selected as an optimization event. |
| Custom conversions | Meta's custom conversion setup does not offer events with the **Other** action source. |
| Event match quality | Not scored for **Other** events. |


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