Consent
Does consent apply to server events too?
Yes, because server-side processing does not mean exemption from consent: pass consent_state and consent_purposes in the event; without matching consent an event is rejected. The exception is purchases and refunds with consent_state unknown: they are stored for revenue reconciliation, with their order number and without browser, customer or advertising identifiers, count towards measured revenue and appear as not attributed with the reason “No consent”. With denied this only applies if the additional instruction for revenue reconciliation is activated for your account. You can switch revenue reconciliation off in the portal under Privacy; such an order can only be attributed via the checkout, if you switch that on.
Do I need consent when I send server-side?
The most common misconception about server-side tracking is that consent no longer applies. It does: what matters is which data about a person is processed, not the route it arrives by.
{
"event_id": "order-12345",
"event_type": "purchase",
"consent_state": "granted",
"consent_purposes": ["analytics", "marketing"]
}The state has four values: unknown, denied, partial and granted. Take it from what your CMP reported at the time of the event rather than defaulting it to granted.
Orders without consent
Not every order has a decision behind it: someone ignores the banner, has JavaScript turned off, or the order is placed at a till in the shop. Orders from before you set things up carry none anyway. Such orders arrive with consent_state unknown, and someone who refused in the banner with denied. Without an exception, both would drop out of your revenue entirely.
The exception is revenue reconciliation: a purpose of its own, separate from tracking. It does not rest on consent but on your legitimate interest in complete revenue figures you can reconcile with your shop. For orders without a decision it is on by default for every account, and you can switch it off (see below). For orders after a refusal only with the additional instruction for revenue reconciliation, which you sign and we then activate: refusing tracking is not an objection to revenue reconciliation, but you need to weigh this case separately.
| Case | What happens |
|---|---|
| purchase or refund, via /v1/server/events or /v1/server/backfill, consent_state unknown | Accepted. Stored with the order number, without browser, customer or advertising identifiers, measured in revenue, not attributed. |
| The same with consent_state denied or partial without analytics (after a refusal), additional instruction activated | Accepted the same way, with the order number, without other identifiers, not attributed. |
| The same after a refusal, additional instruction not activated | Rejected (CONSENT_MISSING), nothing stored. The response gives the reason, and the setup check shows a notice. |
| The same without a decision or after a refusal, revenue reconciliation switched off in the portal | Rejected (CONSENT_MISSING), nothing stored. The message gives the reason and where to switch it back on. An activated additional instruction is paused. |
| The same from the browser (SDK, pixel) | Blocked as before. |
| Other server events with unknown (custom, lead, goal …) | Blocked as before. |
Before storing, the collector removes everything that ties the order to a person or a visit: pseudonymous ID, session, customer ID and email hash, click, impression and view IDs, IP hash, page, referrer, campaign parameters, the new-customer flag, line items, the value breakdown and free-form fields. What remains is the order ID, amount, currency, the day of the order without the time (in your shop’s time zone) and the environment. The order itself creates no journey, and nothing is sent to ad platforms.
The order ID stays so that a refund can find its purchase and you can reconcile revenue against your shop. In reports the order appears as unattributed, with the reason “No consent”. The revenue is measured, and no channel receives it. Because your shop can link the order number to a person, the data generally remains personal data: access, erasure and objection work through the order number (help article “Additional instruction for revenue reconciliation”).
Switching revenue reconciliation off
If you do not want orders without consent at Metrunio at all, switch revenue reconciliation off in the portal under Privacy. Only the Admin role can do this, and the change is recorded in the change log. From then on Metrunio rejects purchases and refunds without a decision, and an activated additional instruction for orders after a refusal is paused, because it requires revenue reconciliation. Orders with consent count as before. Your measured revenue is then lower than your shop’s by the rejected orders. For about ten seconds after the switch, an order may still be handled under the old setting.
Switching off does not delete what is already stored: those orders stay until the end of your raw data retention period and then disappear. If a single order should go at once, record an objection under Privacy with the order number as the identifier. You can switch revenue reconciliation back on at any time in the same place; rejected orders are not recovered.
When the browser reports the same order with consent
On Shopify, the Web Pixel reports the completed checkout with the order ID and the checkout identifier, but only if the customer has consented. If the purchase arrives through the webhook without a decision (typical for “Buy it now” and other dynamic checkouts that never create a cart), it stays unattributed with the reason “No consent”, and its revenue is measured. If you switch on order attribution via the checkout, Metrunio attributes it to the visit when the same checkout identifier arrived from the browser with consent and the consent already existed at the time of purchase. How that works and which limits apply is in the article “Attributing orders via the checkout”.
It is still counted only once: the confirmation from the browser is not a second purchase. Even if you report the same purchase as purchase through two routes, it counts once as long as both reports carry the same order number; the first one applies. If that was the report from the server without consent, the order stays unattributed, as described above. See the article on sending order data from your shop.
Legal note
This description is no substitute for legal advice. That order data with an order number but without browser, customer or advertising identifiers may be stored without consent (for instance as a legitimate interest in complete revenue figures) is a legal assessment that needs your own balancing of interests for your shop, all the more after an explicit refusal. Whether your customers’ consent covers attribution via the checkout depends on what your consent texts say; that is why it stays off until you switch it on and confirm the texts. Check with your privacy counsel whether it holds for your shop and how your privacy policy covers it. A text block for that is in the help article “Privacy policy text block: revenue reconciliation”.
Last reviewed on 13 Oct 2026
Also asked
- Server-side tracking without consent
- Does server tracking bypass the cookie banner?
- Consent with the conversion API
- What happens to orders without consent?
- Why does an order say “no consent”?
- Do I lose revenue when customers ignore the cookie banner?
- Order with consent_state unknown
- Order after a refusal in the banner
- Is an order without consent attributed later?
- Buy it now order without consent in the webhook
- Switch off revenue reconciliation
- Can I stop orders without consent from being stored at all?
Related articles
- How do I report conversions server-side?
How do I send events from my shop, CRM or backend?
Through POST /v1/server/events to the collector, with the server key in the authorization header. The portal shows the address and the ready-made call for your website under “Setup” on the “Server Events API” tab. The call is independent of the browser and therefore robust against ad blockers and short-lived cookies.
- What happens without consent?
Is nothing really stored without consent?
By default, Metrunio stores nothing without matching consent, not even a raw event, and the tracking script sends nothing before a decision. One documented case differs: purchases and refunds your server reports without consent count towards measured revenue for revenue reconciliation, with their order number and without browser, customer or advertising identifiers, and are not attributed. After a refusal this only applies with an activated additional instruction. Without consent on the ad side, the click redirect passes on only the campaign, no click ID.
- How do I set up Metrunio in Shopify?
How do I connect my Shopify store to Metrunio?
You install the Metrunio app in your store via its installation link: from the setup assistant in the portal or from our email. If you do not have a Metrunio account yet, the app creates one without a second sign-up once you accept the terms and conclude the data processing agreement with two tick boxes; an existing account you connect by signing in to the portal. Measurement starts only once the DPA is concluded, and then covers storefront, checkout and order at once, with no change to your theme code.
- Why is a conversion not attributed?
What does “unattributed” mean, and how do I improve coverage?
“Unattributed” means the model found no touchpoint for this conversion that it considers. Either none falls inside the attribution window and is linked by a shared identifier, or there are only touchpoints of a kind the model does not distribute. Metrunio does not invent a contact in that case.
- How do I send cart, new customers and margin from my shop?
How do I pass line items, the net value, the cost of goods and whether it was a new customer?
On checkout,
tracker.conversion(…)and the Server Events API also acceptnewCustomer, the breakdown of the order value (netValue,taxValue,shippingValue,discountValue,costOfGoods) and the cart line items (items). All fields are optional; without them Metrunio measures as before. With them you get new-customer cost, contribution margin and product-level reporting. - Additional instruction for revenue reconciliation
When do orders count after a refusal in the cookie banner?
Orders your shop reports server-side after a refusal in the banner only count if the additional instruction for revenue reconciliation is activated for your account. You fill it in and sign it, and then we activate it; without it Metrunio rejects such orders. Orders with no decision in the banner at all count even without the instruction.
- Privacy policy text block: revenue reconciliation
What does my privacy policy need to say about revenue reconciliation?
Your privacy policy must name revenue reconciliation as a purpose of its own alongside tracking, with the legal basis (legitimate interest under Art. 6(1)(f) GDPR), the data, Metrunio as processor, the retention period and how to object. Metrunio’s privacy policy does not inform your buyers. The block below is a draft for you to adapt.
- Attributing orders via the checkout
How does Metrunio attribute orders without a consent decision?
Not at all, as long as you have not switched on order attribution via the checkout. With it, we attribute such an order to the visit when the same checkout was completed in the browser with consent and that consent already existed at the time of purchase.