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

# How to Set Up Product-Specific Purchase Events in Facebook (Meta)

> Send a separate purchase event for each product line on one Meta pixel, then optimize campaigns per product with a custom conversion.

## Why use custom events instead of a pixel for each product line?

Meta doesn't match purchases across pixels, so campaigns on two pixels can both get credit for the same order. Upstack also sends the same events to each pixel by default, so each pixel reports purchases for all of your products.

Custom events keep every order on one pixel and still give you a separate conversion for each product line.

## How do I send a purchase event for one product line?

1. In Upstack, click **Destinations** and open your Meta destination.

2. Select the **Event Mappings** tab.

3. In the **Custom Triggers** section, click **Add Custom Trigger**.

4. Fill in the fields:

   | Field | Value |
   | - | - |
   | Display name | Apparel purchase |
   | Base event | `purchase` |
   | Only when | **Product Tags** **includes** `apparel` |
   | Destination event name | `apparel_purchase` |

5. Click **Save custom event**.

6. Repeat steps 3 to 5 for each product line.

7. Click **Save Changes** at the bottom of the page.

Your standard Purchase event keeps firing for every order.

* To send the event to every destination, use [Global event mappings](https://docs.upstackdata.com/guides/custom-events/global-event-mappings.md) instead.
* If you're not sure which condition to use, see [Which product condition should I use?](#which-product-condition-should-i-use)

## Which product condition should I use?

Use the condition that matches how your products are already organized in Shopify.

| Your products share | Condition | Example |
| - | - | - |
| A tag | **Product Tags** **includes** | `apparel` |
| A collection | **Product Collections** **includes** | `Apparel` |
| A category | **Product Category** **contains** | `Apparel` |
| Part of a SKU | **Product SKU** **contains** | `APP-` |

## How do I check that the event is firing?

1. Place a test order for a product in that product line.
2. In Upstack, open **Events Manager** and check that the event appears with the name you chose.
3. In [Meta Events Manager](https://business.facebook.com/events_manager), open your pixel and check that the event appears on the **Overview** tab.

## How do I optimize a Meta campaign on a product purchase event?

1. In Meta Events Manager, [approve the custom event](https://docs.upstackdata.com/destinations/catalog/meta-capi/how-to-approve-facebook-meta-custom-events.md).
2. [Create a custom conversion from the event](https://docs.upstackdata.com/destinations/catalog/meta-capi/how-to-create-a-custom-conversion-from-a-custom-event-in-facebook-meta.md) and share it with your ad accounts.
3. In Ads Manager, open the ad set and select the custom conversion as its conversion event.

## What happens when one order has products from two product lines?

Both events fire, and each one sends the full order value.

## I use Restricted Category Mode. Can I still add product purchase events?

Yes. Use neutral event names, such as `kids_purchase`, because Meta receives the event name unchanged. Product conditions still work.

Your main optimization goal stays the standard **Purchase** event. The only custom events you shouldn't optimize on are the deprecated [`UPSTACK_HW_*` events](https://docs.upstackdata.com/event-tracking/event-taxonomy/health-wellness-events).


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