The Short Version
For stores flagged under Meta’s Health & Wellness category, Upstack Data operates in server-side-only mode: the Meta browser pixel is removed entirely and all event data is sent from Upstack’s servers to Meta through the Conversions API (CAPI). Before any event reaches Meta, Restricted Category Mode replaces product names with placeholders, removes product categories and brands, and replaces page paths with a hash. Meta still gets what it needs for attribution and optimization — event type, value, currency, product IDs, and customer identifiers — but not the product content that causes flags.Why the Meta Browser Pixel Is Removed
The standard Meta pixel is a JavaScript snippet that runs in your customer’s browser. When someone visits your store, the pixel automatically reads information from the page and sends it to Meta. This includes:-
The page URL (e.g.,
yourstore.com/products/organic-ashwagandha-supplement) - The page title (e.g., “Organic Ashwagandha Supplement - 60 Capsules”)
- Product data embedded in the page (names, descriptions, categories)
- Referrer URLs that may contain health-related search terms
- Content IDs and other metadata tied to your product catalog
- Reinforce the flag, making it harder to resolve
- Trigger a re-flag if you’ve set up a new pixel
- Reduce Event Match Quality as Meta discards or downgrades events it considers non-compliant
event_id); in Health & Wellness mode, the browser side is removed and only the Conversions API sends events.
How Events Reach Meta
1
Customer actions are captured
Customer actions (page views, add to cart, purchases) are captured by Upstack’s tracking on your store.
2
Data is sent to Upstack
Event data is sent to Upstack’s servers — not to Meta.
3
Data is sanitized
Upstack processes and sanitizes the data (see What Gets Stripped).
4
Clean event is sent to Meta
The clean event is sent to Meta via the Conversions API only.
What Gets Stripped
Meta’s Health & Wellness flagging system doesn’t just look at your domain once and make a decision. It continuously evaluates the data your pixel sends. Every event that arrives at Meta carries metadata — and that metadata can contain the keywords, product names, and URLs that trigger or reinforce the flag. Here’s what a typical unsanitized Purchase event looks like when sent to Meta:Example: Unsanitized event payload
event_name: Purchaseevent_source_url: https://yourstore.com/checkout/thank-youcontent_ids: [“8123456789012”]content_name: “Organic Ashwagandha Supplement - 60 Capsules”content_category: “Supplements > Adaptogens”value: 59.99 | currency: USDProduct Names
Product titles like “Collagen Peptides Powder” or “Vitamin D3 5000 IU” are exactly what Meta’s classifiers look for. Upstack replaces each product’s title with a placeholder built from its product ID. Before:"title": "Organic Ashwagandha Supplement - 60 Capsules"
After: "title": "UPSTACK_HW_8123456789012"
Product Categories and Brands
Category paths often contain the broadest health and wellness terms: “Supplements,” “Vitamins,” “CBD,” and so on. Before:"category": "Supplements > Adaptogens"
After: Field removed. The product’s brand is removed too.
Page URLs (event_source_url)
The domain is replaced with your alias domain, and the path is replaced with a SHA-256 hash. Meta can’t see paths like/products/organic-turmeric-capsules or /collections/immune-support.
Before: "event_source_url": "https://yourstore.com/products/organic-ashwagandha"
After: "event_source_url": "https://youraliasdomain.com?path=9f2c…"
Without a domain alias, the path is still hashed but the domain stays your store’s domain.
Sent Unchanged
Product and variant IDs (content_ids), quantities, item prices, the order ID, and the order value are sent as they are.
What Meta Receives
After sanitization, the event that reaches Meta looks like this:Example: Sanitized event payload
event_name: Purchaseevent_source_url: https://youraliasdomain.com?path=9f2c…user_data: hashed email, phone, name and address, external ID, fbc, fbp, IP address, user agentcontents: id 8123456789012, quantity 1, item price 59.99, title UPSTACK_HW_8123456789012value: 59.99 | currency: USD | order_id: 1001-
event_name — The standard event name, such as
Purchase. For most conversion events Upstack also sends a legacyUPSTACK_HW_*copy (see Health & Wellness Category Events (Deprecated)). Optimize on the standard event. - Event time — When the action happened.
- event_source_url — Your alias domain with a hashed path.
-
user_data — Hashed email, phone, first and last name, city, state, zip, country, and gender; an external ID; the Facebook click ID (
fbc) and browser ID (fbp); IP address and user agent. These are the same customer identifiers as in a standard setup, and they contain no product information.
- value, currency, and order ID
- contents — Product and variant IDs, quantity, item price, and the placeholder title
- Product names, descriptions, categories, or brands
- Real page paths, or your store’s domain when the domain alias is on
Why This Level of Scrubbing Is Necessary
You might wonder: “Can’t we just rename the products or change the URLs?” In practice, partial measures don’t hold up: Meta’s classifiers are broad. They don’t just look for the word “supplement.” They flag terms like “capsules,” “extract,” “daily,” “formula,” “blend,” and dozens of other words common across health product catalogs. Trying to rename everything to be compliant is a losing game. The flag is persistent. Once a domain is flagged, Meta’s systems are primed to look for health-related content from that source. Even mildly suggestive terminology can reinforce the classification. Clean scrubbing removes the ambiguity entirely. You can’t control every surface. Product data shows up in URLs, page titles, meta tags, structured data, Open Graph tags, and more. The browser pixel can read all of these. Server-side sanitization is the only way to ensure nothing slips through. Future-proofing. If you add a new product line or a new employee adds products with flaggable names, the sanitization layer catches it automatically. You don’t need to audit every SKU before launching.How This Differs from Standard CAPI Setups
Not all server-side tracking is the same. Here’s how Upstack’s H&W implementation differs from a standard CAPI setup:Feature | Standard CAPI | Upstack H&W (Server-Only) |
Browser pixel active | Yes (redundant tracking) | No (completely removed) |
Data sanitization | No | Yes (product names, categories, brands and page paths) |
Event source URL | Your real domain | Clean alias domain |
Product data sent | Yes (IDs, names, categories) | IDs, prices and quantities only (names replaced) |
How It Fits with the Other Components
Server-side-only delivery and data sanitization are two pieces of the four-part H&W solution:- Server-side-only tracking ensures the browser pixel never sends unsanitized data directly to Meta.
- Data sanitization cleans the event payload before it leaves Upstack’s servers.
- Domain aliasing replaces the flagged domain in the event_source_url field.
-
Standard Purchase optimization — campaigns optimize on the standard Purchase event. Upstack still sends the legacy
UPSTACK_HW_*events alongside it; ignore them (see Health & Wellness Category Events (Deprecated)).
What You Need to Do
Turn on Restricted Category Mode and Domain Alias on the Meta destination’s Category Mode tab (see How to Set Up Restricted Category Mode for Meta in Upstack Data). Upstack then skips the Meta browser pixel, sends events through the Conversions API only, and sanitizes them. See How to Set Up a Health & Wellness Pixel for Meta.Watch for other tracking tools. Any active browser pixel — from Shopify’s native integration, Triple Whale Sonar, Elevar, or hardcoded JavaScript — will send unsanitized data to Meta and undermine the server-side-only approach. Make sure all other Meta pixel sources are disabled.
Note on product-level reporting: Since product names and categories are removed, product-level reporting in Meta Ads Manager is limited. You can still get this data from Shopify analytics, the Upstack dashboard, or third-party attribution tools like Triple Whale (which receives unsanitized data since it’s not sending to Meta).