Skip to content

Attribution

How does Metrunio count subscription renewals?

You report a renewal as a purchase with the subscription ID (subscription_id) and the flag subscription_renewal; Metrunio marks renewals from Stripe itself. It counts in measured revenue, appears separately in the reports and receives the shares of the first order of the same subscription, because it has no ad contact of its own. Without a known first order or without consent, it stays unattributed with a reason.

How do I mark subscription renewals, and which channel are they attributed to?

A customer takes out a subscription in March after clicking an Instagram ad. In April, May and June your shop charges the next payment without her visiting your website. Who gets the revenue from these payments? Metrunio attributes it to the channel the first order is already attributed to: every renewal takes over the shares of the first order of the same subscription.

How to mark renewals

  • Server Events API: send each payment as a purchase with its own order number, plus subscription_id and subscription_renewal: true. The first order carries the same subscription_id, without the flag or with subscription_renewal: false.
  • Stripe: also select invoice.paid for the webhook. Metrunio then counts every renewal (billing_reason subscription_cycle) as a renewal and recognises the first order by the checkout in subscription mode. The first invoice of a subscription does not count a second time next to the checkout.
  • SDK in the browser: metrunio.conversion({ orderId, value, currency, subscriptionId, subscriptionRenewal: true }). You only need this when a renewal is confirmed in the browser; usually it comes from the server.
  • Shopware from plugin 1.3.0 (Shopware Subscriptions) and WordPress from plugin 1.0.1 (WooCommerce Subscriptions) send the subscription ID and the flag themselves. A renewal there is created without a visit and therefore arrives without consent, like those from Stripe: measured, flagged, never attributed. The Shopify app does not send the flag yet; until it does, its renewal orders count as ordinary purchases.
{
  "event_id": "abo-77-rate-2026-10",
  "event_type": "purchase",
  "occurred_at": "2026-10-01T06:00:00Z",
  "order_id": "R-2026-10-77",
  "subscription_id": "abo-77",
  "subscription_renewal": true,
  "value": "29.00",
  "currency": "EUR",
  "user_id": "4711",
  "consent_state": "granted",
  "consent_purposes": ["analytics", "marketing"]
}

A renewal is never a customer’s first order. If you send new_customer: true with it, Metrunio does not accept it and names the field; the two fields do not belong on a lead or a funnel step either.

How it is attributed

Metrunio looks for the first order of the same subscription: the earliest purchase with the same subscription_id and without the flag, on the same website and in the same environment. In every model the renewal receives the same shares as that order and distributes its own value with them. If the first order gave 40 percent to Paid Search and 60 percent to Paid Social, a payment of €30 gives €12 to Paid Search and €18 to Paid Social. When the first order is recalculated, its renewals follow.

Touchpoints before the renewal itself do not count for this. If the customer opens her account through your newsletter before the payment, the newsletter gets nothing from that payment: it would have come anyway.

When it is not attributed

  • “The first order of this subscription is not known”: the subscription started before Metrunio measured, the subscription_id is missing, or the first order arrived without consent and therefore without the subscription ID. If you report older first orders through a backfill, the renewals are recalculated. The same applies when the first order is deleted, on request or because its retention period ends: its renewals are then recalculated right away and lose the channel they took over.
  • “The first order of this subscription is not attributed to any touchpoint”: it has no channel itself. It shows the reason.
  • “No consent”: the renewal arrived without consent for revenue reconciliation. It is measured and marked but never attributed, not even through the first order. Every renewal from Stripe arrives this way, because an invoice carries no reference from the browser.

Reporting with consent: what you need to prove

A renewal usually happens without a visit: your server charges the instalment, and no banner asks anyone. If you still report it with consent (consent_state granted or partial), you rely on consent the customer gave earlier. You need to be able to prove it, with three details: that it referred to the subscription, how long it applied and how the customer can withdraw it. Without consent that you can prove and that is sufficient for this renewal, you must not report it as consented measurement.

  • Send the consent state you actually know. A known refusal or withdrawal stays denied and does not become unknown. Report unknown only if you genuinely know of no decision.
  • Separate revenue reconciliation is only an option under its own conditions. For this separate purpose, check the legal basis, the information given, the retention period and, where applicable, the activated additional instruction (article “Does consent apply to server events too?”). If Metrunio accepts the renewal on that basis, it is measured and flagged, but not attributed to any channel.
  • Suppression lists and the rule that withdrawn measurement data must not be moved into revenue reconciliation still apply.

Legal note

Metrunio only attributes a renewal reported with consent and does not check that statement. Keeping the proof is your responsibility as controller; the data processing agreement says so too (section 2). Consent from the cookie banner at the first purchase usually does not name the subscription, its duration and withdrawal. Settle with your privacy counsel whether and how your consent covers renewals.

In the reports

  • Overview: below the key figures you see how many renewals arrived in the period, with their measured and their attributed revenue. Both are included in the revenue above.
  • Attribution: the column “Of which renewals” shows the attributed revenue from renewals for each row.
  • Orders & goals: a renewal carries the note “Subscription renewal”; “Renewals only” shows them on their own.
  • Export and read API: folgezahlungen_zugeordnet and umsatz_folgezahlungen_zugeordnet in the attribution export, folgezahlung and abo in the conversion export, isRenewal and subscriptionId in the read API. The data assistant and connected AI tools see only the flag, not the subscription ID.
  • New customers: CAC and new customer costs do not count renewals. In the new customer share they count as orders by existing customers, in cohorts as repeat purchases. If a customer’s first measured purchase is already a renewal, they are in no cohort.
  • Ad platforms: a renewal is not sent back to Google, Meta or others as a conversion; the pushback log names the reason.

Note

Attributed revenue from a renewal does not prove an effect. It tells you which channel the first order of the subscription is attributed to, not that the payment would have stopped without it.

Last reviewed on 18 Oct 2026

In the customer portal

Go to orders & goals

Also asked

  • Measure subscription renewals
  • Attribute recurring payments
  • Track subscription renewals
  • Do renewals from Stripe count as conversions?
  • Which channel gets the second monthly payment?
  • Why is a renewal not attributed?
  • What does “the first order of this subscription is not known” mean?
  • Does a renewal count as a new customer?
  • How do I see only renewals?
  • Are renewals sent back to Google Ads or Meta?

Related articles

  • How do I report purchases through Stripe or PayPal?

    Can Metrunio take purchases straight from Stripe or PayPal without me writing code?

    Without writing code, on every plan: under “Data connections → Payment providers” you add a connection and enter the address Metrunio gives you as a webhook at Stripe or PayPal. Purchases and refunds then come from the payment provider; a purchase is attributed if it carries the reference from the SDK.

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

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

  • What does a new customer cost me, and what is left?

    How do I see new-customer cost and contribution margin, and which products did a campaign sell?

    The “Commerce & products” area in the portal shows new-customer cost, margin ROAS, average order value, repeat purchase rate and a product report. The campaign filter only narrows the product report: the metrics above it always cover all campaigns. They appear as soon as your shop sends the matching figures; without them the metric in question stays empty. The overview and the “Attribution” page show the margin ROAS per channel and per campaign.

  • When has a new customer paid for themselves?

    How do I read the cohorts under “Commerce & products” for repeat purchases, margin per customer and payback?

    Under “Commerce & products”, the customer cohorts group customers by the month of their first measured purchase. For each following month they show how many bought again and how much contribution margin per customer has accumulated; “Paid back” names the first month in which that amount reached the new-customer cost of the first-purchase month.

  • How do I export data?

    Can I recalculate the numbers myself?

    Under “Exports & AI connections” you download CSV files for conversions, customer journeys and attribution by channel, with the same values the reports show, so you can recalculate them yourself. All data and settings of your account at once come from the full export there, a ZIP with JSON and CSV per table, on every plan.

  • Does consent apply to server events too?

    Do I need consent when I send server-side?

    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.

See what your data tells you.

Look around in the demo first. Your own account is currently available by invitation only.

Open the demoRequest access