> 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/exclude-subscription-renewals-from-ad-conversions.md).

# Exclude subscription renewals from conversions

### What you'll build

A [filter](/event-editor/trigger-conditions.md) that stops recurring subscription orders from being sent to a destination as purchase events.

Renewals are not driven by your marketing. A customer who subscribed six months ago renews whether or not they saw your campaign this week. When renewals count as conversions, reported ROAS inflates and ad algorithms train on conversions they can never acquire again. Filtering renewals means every purchase event is one your marketing could actually influence.

### What you need

* A subscription app that creates recurring orders, such as [Recharge](https://rechargepayments.com)
* At least one Littledata destination connected, for example [Meta Conversions API](/integrations/facebook-capi.md) or [Google Ads](/integrations/google-ads/google-ads-install-guide.md)
* Access to the Event Editor in the Littledata app

{% hint style="info" %}
Recurring orders are usually easy to identify. Recharge creates renewal orders through its own app, and also tags them, for example `Subscription Recurring Order`. Open a recent renewal order in Shopify admin to see which markers your setup uses.
{% endhint %}

### Steps

The steps are the same for every destination. Only the event name changes: **Purchase** in Meta, **purchase** in GA4, **Placed Order** in Klaviyo.

{% stepper %}
{% step %}

#### Open the purchase event

Go to **Settings** for your destination, then open **Events**.

Click the purchase event.
{% endstep %}

{% step %}

#### Add a filter

Open the overflow menu and select **Add filter**.

Filters discard matching events before anything is sent. See [Filter events with trigger conditions](/event-editor/trigger-conditions.md).
{% endstep %}

{% step %}

#### Add the trigger condition

Add a condition that matches renewal orders:

| Field             | Operation  | Value                      |
| ----------------- | ---------- | -------------------------- |
| `properties.tags` | `contains` | `Subscription First Order` |

Open a recent renewal order in Shopify admin to see the exact tag used. See [Trigger conditions](/event-editor/trigger-conditions.md).
{% endstep %}

{% step %}

#### Save the filter

Click **Save** to activate it.
{% endstep %}
{% endstepper %}

### Destination notes

* **Meta**: your Purchase stream is now acquisition-only. Expect reported ROAS to drop; that is the inflation being removed, not performance getting worse.
* **GA4**: think twice before filtering here. If you want complete revenue reporting in GA4, keep renewals flowing and filter only your ad destinations.

### Verify it's working

1. Wait for the next renewal order, or trigger one with a test subscription.
2. Confirm the order appears in Shopify but no purchase event arrives in the destination, for example Meta **Events Manager**.
3. First-time orders should still come through as normal.

### Make it yours

This setup filters on the marker your subscription app writes. The same pattern works with any renewal marker: an app name, an order tag, or a customer tag.

* Want the renewal revenue visible rather than dropped? Create a `recurring_order` [custom event](/event-editor/custom-events.md) with the same condition instead of filtering.
* Run the inverse setup too: give first subscription orders their own conversion. See [Create a new-subscriber conversion event](/event-editor/common-setups/new-subscriber-conversion-event-meta-ads.md).
