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

# Set up custom events

> Configure NC Purchase, subscription events, and order source exclusions in Upstack for new customer acquisition optimization.

Custom events give ad platforms more specific signals to optimize against. The most impactful is **NC Purchase** — it tells Meta to find buyers who've never purchased from you before, instead of optimizing toward repeat customers. Without it, Meta's algorithm treats a first-time buyer and a fifth-time buyer as equally valuable conversions.

## New customer purchase (NC Purchase)

NC Purchase fires only when an order comes from a customer with no prior Shopify order history. This enables NC CPA and NC ROAS reporting directly in Meta Ads Manager — two metrics that separate prospecting performance from retargeting performance.

### Set up in Facebook

<Steps>
  <Step title="Wait for the first event">
    Once Upstack is live, the first NC Purchase event appears in Meta Events Manager within minutes for active stores. You need at least one event before you can proceed.

    See [How to verify the NC Purchase event in Facebook Events Manager](/guides/facebook-ads/how-to-verify-the-nc-purchase-event-in-facebook-meta-events-manager) for a walkthrough.
  </Step>

  <Step title="Acknowledge the event">
    Go to **Events Manager → find NC Purchase → Review → Acknowledge/Confirm**. This tells Meta to start processing NC Purchase as a recognized event.
  </Step>

  <Step title="Create a custom conversion">
    In Events Manager, go to **Custom Conversions → Create**. Set the event to **NC Purchase** and give it a clear name (e.g., "Upstack NC Purchase").

    See [How to create and share NC Purchase custom conversion in Facebook](/guides/facebook-ads/how-to-create-and-share-nc-purchase-custom-conversion-in-facebook-meta) for detailed steps.

    <Info>
      You need **Business Manager admin access** (not just ad account admin) to create custom conversions. If you run ads through an agency ad account, switch the Events Manager view to your own Business Manager before creating the conversion.
    </Info>
  </Step>

  <Step title="Add reporting columns">
    In Ads Manager, add **NC CPA** and **NC ROAS** as columns in your reporting view. These metrics let you evaluate prospecting performance independently from retargeting.

    See [How to add NC Purchase metrics and NC ROAS to Facebook Ads Manager](/guides/facebook-ads/how-to-add-nc-purchase-metrics-and-nc-roas-to-facebook-meta-ads-manager) for column configuration.
  </Step>
</Steps>

<Note>
  Attribution is forward-looking only — Meta does not backfill historical data for new event types. NC Purchase metrics start populating from the moment the custom conversion is created.
</Note>

For the complete end-to-end walkthrough, see [Complete guide to setting up NC Purchase metrics in Facebook Ads Manager](/guides/facebook-ads/complete-how-to-guide-for-setting-up-new-customer-purchase-metrics-in-facebook-meta-ads-manager).

<Accordion title="When to use NC Purchase vs. standard Purchase">
  Custom purchase events supplement the standard `Purchase` event — they don't replace it. Keep standard `Purchase` active alongside the custom events so Meta's baseline models still receive every order.

  | Scenario                                       | Recommended event                    |
  | ---------------------------------------------- | ------------------------------------ |
  | General ROAS optimization                      | Standard `Purchase`                  |
  | Scaling new customer acquisition               | `nc_purchase`                        |
  | Prospecting campaigns targeting cold audiences | `nc_purchase`                        |
  | Retargeting campaigns for existing customers   | `rc_purchase` or standard `Purchase` |
  | Brand awareness / top-of-funnel                | Standard `Purchase` (broader signal) |
  | Measuring retention campaign performance       | `rc_purchase`                        |

  **Allow a learning phase.** When you switch an ad set from standard Purchase to `nc_purchase`, it re-enters Meta's learning phase. Meta needs roughly 50 optimization events per week to exit learning, so start with your highest-spend or highest-volume campaign first if new-customer volume is low.

  **Compare before shifting budget.** Run `nc_purchase`-optimized campaigns alongside standard Purchase-optimized campaigns for 2–4 weeks and compare new-customer rate, CAC, and ROAS before committing.
</Accordion>

## Returning customer purchase (RC Purchase)

RC Purchase is the inverse of NC Purchase: it fires only when an order comes from a customer **with existing Shopify order history**. Together, the two events partition every order into acquisition vs. retention signals, which you can use separately in audience building, retargeting, and retention measurement.

Classification uses the same Shopify-order-history check as NC Purchase — if the customer has zero prior completed orders, Upstack fires `nc_purchase`; if they have one or more, it fires `rc_purchase`. The standard `Purchase` event still fires for every order regardless of customer status, so baseline reporting is unaffected.

### Why it matters

* **Build retargeting audiences that exclude first-time buyers.** Feed `rc_purchase` into custom audiences of recent repeat customers for win-back campaigns, loyalty offers, or cross-sells.
* **Measure retention, not just acquisition.** Treat `rc_purchase` volume and value as a direct signal of how well retention campaigns (email, SMS, paid retargeting) are performing.
* **Avoid over-indexing on repeat buyers in prospecting.** Pairing `rc_purchase` with `nc_purchase` makes it obvious when a "Purchase-optimized" campaign is really just retargeting existing customers.

### How it works

RC Purchase mirrors the NC Purchase setup in Meta — the only differences are the event name you select and the fact that the custom conversion represents returning customers.

<Steps>
  <Step title="Wait for the first event">
    Once Upstack is live, the first RC Purchase event appears in Meta Events Manager as soon as an existing customer places an order. You need at least one event before you can proceed.
  </Step>

  <Step title="Acknowledge the event">
    Go to **Events Manager → find RC Purchase → Review → Acknowledge/Confirm** so Meta starts processing it as a recognized event.
  </Step>

  <Step title="Create a custom conversion">
    In Events Manager, go to **Custom Conversions → Create**. Set the event to **RC Purchase** and give it a clear name (e.g., "Upstack RC Purchase"). Select **Purchase** as the category and leave the value field at its default so Meta uses the order value sent with the event.

    <Info>
      You need **Business Manager admin access** (not just ad account admin) to create custom conversions. If you run ads through an agency ad account, switch the Events Manager view to your own Business Manager before creating the conversion.
    </Info>
  </Step>

  <Step title="Use it where retargeting or retention matters">
    Use the RC Purchase custom conversion as the optimization event for retargeting ad sets, or as a measurement column in Ads Manager alongside NC CPA / NC ROAS to see acquisition and retention performance side by side.
  </Step>
</Steps>

<Tip>
  Enable `nc_purchase` and `rc_purchase` together. With both events running, every order is cleanly segmented into acquisition vs. retention — which means prospecting campaigns can optimize for `nc_purchase`, retargeting campaigns can optimize for `rc_purchase`, and the standard `Purchase` event still reports totals. Running only one of them leaves half the segmentation on the table.
</Tip>

## Subscription events

For subscription brands, Upstack handles subscription events automatically. No manual setup is required.

| Event                  | When it fires            | Sent to Meta?               |
| ---------------------- | ------------------------ | --------------------------- |
| Subscription Initial   | First subscription order | Yes — counted as a purchase |
| Subscription Recurring | Renewal orders           | No — excluded from Meta     |

<Warning>
  **Why recurring subscriptions are excluded from Meta:** Sending renewal orders as purchase events tells Meta's algorithm that existing customers are converting. This shifts optimization toward retargeting instead of prospecting — the algorithm learns to chase people who were going to buy anyway. Only the initial subscription triggers a purchase event so Meta stays focused on finding new subscribers.
</Warning>

## Advanced configuration

<Accordion title="Category-specific events">
  If you sell across multiple product categories (e.g., apparel and skincare), Upstack can fire purchase events scoped to each category — `apparel_purchase`, `skincare_purchase`, and so on. This lets you create category-specific custom conversions in Meta and optimize ad sets for each product line independently.

  Contact the Upstack team to configure category-specific events for your store.
</Accordion>

<Accordion title="Order source exclusions">
  Not every order should feed back into Meta or Google's optimization. Some sources would pollute your conversion data.

  To configure exclusions, go to **Settings → Order Source Exclusions** and select the sources you want to block:

  * **TikTok Shop orders**
  * **Loop** (returns/exchanges)
  * **Matrixify** (bulk imports)
  * **Draft Orders**
  * **POS** (in-store transactions)

  Recurring subscription orders are excluded automatically. Initial subscription orders **are** sent — these represent genuine new-customer acquisitions.

  Sources only appear in the exclusion list if you have orders from them. If you don't see a source listed, you haven't had any orders from it yet.

  <Tip>
    Send more data to Facebook, not less. Even TikTok Shop orders help Meta find similar customers — the algorithm benefits from volume. Only exclude a source if the orders don't represent real customer acquisition (e.g., wholesale imports) or would actively mislead optimization (e.g., POS sales unrelated to your online ad spend).
  </Tip>
</Accordion>

## Next step

<CardGroup cols={1}>
  <Card title="Configure contribution margin" icon="arrow-right" href="/get-started/configure-contribution-margin">
    Set up COGS, transaction fees, and marketing spend so the P\&L dashboard reflects real profitability.
  </Card>
</CardGroup>

## Related

<CardGroup cols={2}>
  <Card title="Complete NC Purchase setup guide" icon="book" href="/guides/facebook-ads/complete-how-to-guide-for-setting-up-new-customer-purchase-metrics-in-facebook-meta-ads-manager">
    End-to-end walkthrough for NC Purchase, custom conversions, and reporting columns in Meta Ads Manager.
  </Card>

  <Card title="Verify NC Purchase events" icon="circle-check" href="/guides/facebook-ads/how-to-verify-the-nc-purchase-event-in-facebook-meta-events-manager">
    Confirm NC Purchase events are arriving in Meta Events Manager and recognized correctly.
  </Card>

  <Card title="Connect a destination" icon="plug" href="/get-started/connect-a-destination">
    Set up Meta CAPI as your first server-side destination for high-quality conversion events.
  </Card>

  <Card title="Verify end-to-end delivery" icon="list-check" href="/get-started/verify-end-to-end">
    Confirm the complete pipeline works — from storefront event to destination delivery.
  </Card>
</CardGroup>
