> For the complete documentation index, see [llms.txt](https://help.littledata.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.littledata.io/event-editor/common-setups/how-to-know-which-meta-campaign-is-bringing-in-the-most-new-high-value-customers.md).

# Create a new high-value customer event in Meta

Send Meta its own event for first-time customers who spend above your threshold, so you can see which campaigns actually acquire them.

### What you'll build

A [custom event](/event-editor/custom-events.md) based on **Purchase**, scoped with trigger conditions so it only fires when a first-time customer places an order above your value threshold.

Sent to Meta as its own event, it becomes a metric you can report and optimize on, which separates the campaigns that acquire valuable new customers from the campaigns that retarget people who were going to buy anyway.

### Why it matters

Meta's out-of-the-box metrics can't tell a new customer from a returning one. Here are three campaigns from one brand, ranked on cost per purchase:

<figure><img src="https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2F42uUVD7sMnJ9yokuDxXA%2Fimage.png?alt=media&#x26;token=f8a955d1-00f0-423c-8b9b-fd0e7bcce321" alt="" width="375"><figcaption></figcaption></figure>

The third campaign has roughly 35% lower cost per purchase than the other two, and it ran enough volume to exit the learning phase. On those numbers it looks like the one to scale.

The same three campaigns, with a new high-value customer event in the report:

<figure><img src="https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2FnJ2v2R1J3GLpMBE1zs5u%2Funknown.png?alt=media&#x26;token=ec90cc99-79d0-46a0-b9fc-052c3948e7f2" alt=""><figcaption></figcaption></figure>

This brand counts anyone spending above 200 as high value. On that measure the second campaign wins: 50 new high-value customers at a CAC of 61.53. The first campaign drove the most purchases, but only 3% of them came from new high-value customers. The third campaign, the one that looked like the winner, acquired none at all.

Whether that campaign stays on is a business call. The point is that you can't make it on Meta's default columns alone.

### What you need

* [Meta Conversions API](/integrations/facebook-capi.md) connected as a Littledata destination
* A value threshold your business agrees on, in your shop currency
* Access to the Event Editor in the Littledata app
* Access to Meta Events Manager and Ads Manager to create the custom conversion and add the column

### Steps

{% stepper %}
{% step %}

#### Open the Meta destination's Event Editor

Go to **Settings** for your Meta Conversions API destination, then open the [Event Editor](/event-editor/getting-started.md).
{% endstep %}

{% step %}

#### Add a custom event

Click **Add event**.

Name it `new_high_value_customer`. Meta doesn't require snake\_case, but keeping one naming convention across destinations saves confusion later.

Select **Purchase** as the base event. The custom event inherits the complete field mappings of its base, so it sends a full, valid payload from the start.
{% endstep %}

{% step %}

#### Add the trigger conditions

In the **Event trigger** section, add three conditions in one group set to **All**:

| Field                   | Operator             | Value       |
| ----------------------- | -------------------- | ----------- |
| `properties.order_type` | `does not equal`     | `RECURRING` |
| `customer.orders_count` | `less than or equal` | `1`         |
| `money.subtotal.shop`   | `greater than`       | `200`       |

The first two conditions define a new customer: not a subscription renewal, and no previous orders. The third is your value threshold. Replace `200` with your own number.
{% endstep %}

{% step %}

#### Preview and save

Use the [event preview](/event-editor/event-preview.md) to check the payload, then click **Save event**.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
`money.subtotal.shop` is the item total before tax and shipping, with discounts applied, in your shop currency. Using the shop currency rather than the presentment currency keeps the threshold consistent across markets. See the [Tracking schema glossary](/event-editor/glossary.md) for the other money fields.
{% endhint %}

{% hint style="info" %}
If the **New customer purchase** [recipe](/event-editor/recipes.md) is still in your Recommended for your store carousel, click **Customize** on it instead. The first two conditions are already filled in, so you only rename the event and add the value condition.
{% endhint %}

### Surface it in Meta reports

Once a first-time customer places an order above the threshold, `new_high_value_customer` appears in your dataset in Meta **Events Manager**:

<figure><img src="https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2FM8ZkleEUqypD3FWgNMOE%2Funknown.png?alt=media&#x26;token=528c2b8d-01cf-4187-84ed-089924b6399d" alt=""><figcaption></figcaption></figure>

To report on it in Ads Manager, Meta needs a custom conversion built on that event, and a column added to your report.

{% stepper %}
{% step %}

#### Create the custom conversion

In Events Manager, create a custom conversion based on `new_high_value_customer`.

<figure><img src="https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2FiZSJBOXUoM28b4TkT9zX%2Funknown.png?alt=media&#x26;token=90eec469-5a74-4a91-9bb4-bb1cadf54771" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Open Customize columns

In Ads Manager, open the **Columns** dropdown and click **Customize columns** at the bottom. The dropdown may be labeled differently in your account, for example **Columns: Performance** or **Columns: Setup**.

<figure><img src="https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2FC6AI415bTQvHZ6lnc63l%2Funknown.png?alt=media&#x26;token=423fd7f7-5aee-4fdb-b6d1-ad8e883d74e4" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Add the conversion as a column

Search for the custom conversion you just created and add it.

<figure><img src="https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2F0xooiG3etilEXX17PO7D%2Funknown.png?alt=media&#x26;token=2c93f999-f1f7-49ee-a043-34ad54aeb5ff" alt=""><figcaption></figcaption></figure>

When you save the column set, the new columns appear at the far right. Repeat for the Campaign, Ad set and Ad levels so the metric is available wherever you report.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
You can also choose the custom conversion as the optimization event for acquisition campaigns, so Meta delivers toward people likely to become high-value new customers rather than toward purchases in general.
{% endhint %}

### Verify it's working

1. Place a test order above your threshold from an email address with no previous orders.
2. Confirm `new_high_value_customer` arrives alongside the standard purchase event in Meta **Events Manager**.
3. Orders below the threshold, repeat orders, and subscription renewals should not fire it.

Once the data is flowing, your report separates the campaigns that acquire high-value new customers from the ones that don't:

<figure><img src="https://3956158252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1QhTbrMraNWciQeDvu1b%2Fuploads%2FZbyHicjUqlq7GjyPzhYZ%2Fimage.png?alt=media&#x26;token=3fa68152-fa51-40cb-b8fb-73bb76f4eda3" alt=""><figcaption></figcaption></figure>

### Make it yours

This setup is a custom event with three conditions on one base event. Change any of them and you get a different signal:

* Swap `money.subtotal.shop` for `money.profit_total.shop` to define high value by margin rather than revenue.
* Drop the `customer.orders_count` condition to track every high-value order, new customer or not.
* Add a condition on `products.collections` to count only new customers acquired on a particular range.
* Custom events exist per connection. To send the same event to GA4, Google Ads or Klaviyo, create it in that destination too.

### Related articles

* [Recipes](https://help.littledata.io/event-editor/recipes)
* [Derive a new custom event](https://help.littledata.io/event-editor/custom-events)
* [Edit an event](https://help.littledata.io/event-editor/edit-an-event)
* [Common setups](https://help.littledata.io/event-editor/common-setups)
