Campaigns & attribution
A campaign is the why behind a commercial action — “Summer push 2026”, “Black Friday”, “the reseller promo”. It carries a name, a URL-safe code, an on/off switch and an optional start/end window, and nothing else: a campaign changes nothing a customer can see. The things that do change what customers get — issuing an entitlement, temporarily overriding a plan, granting an add-on — are the how, and each of them can be linked to the campaign it executes.
Every such link is recorded as a touch in the campaign’s attribution log. The Campaign performance page (Insights) rolls the touches up so you can answer the question campaigns exist for: which initiative brought the entitlements, the conversions, and the revenue?
The code and signup links
Section titled “The code and signup links”Each campaign has an immutable, URL-safe code (lowercase letters, digits, hyphens —
summer-2026). Put it on any self-service sign-up link:
https://your-tenant.example.com/auth/Account/Register?campaign=summer-2026The code is captured at registration and travels with the user through email confirmation, so the entitlements issued when they confirm are attributed to the campaign automatically — even when confirmation happens days later on another device. An unknown or switched-off code is ignored: a marketing tag never blocks a sign-up.
Links already shared cannot be updated, so the code cannot be changed after creation. Deleting a campaign keeps all attribution history; it only stops new touches.
How attribution works
Section titled “How attribution works”One entitlement can be touched by any number of campaigns over its life — acquired under one, upgraded during another’s promo. Each event writes one touch:
| Touch | Written when |
|---|---|
| Issuance | The entitlement is created with a campaign — from the portal dialog, the admin API, or a signup link. |
| Manual | An operator attaches a campaign after the fact on the entitlement’s Campaigns tab. |
| Plan override | A temporary plan override is applied under a campaign (promo pricing). |
| Add-on grant | An add-on is granted under a campaign. Revoking the grant keeps the touch — the promotion still happened. |
How revenue is attributed
Section titled “How revenue is attributed”Revenue follows the first touch: an entitlement belongs to the campaign of its earliest issuance or manual touch, so no entitlement’s revenue is ever counted under two campaigns. Plan-override and add-on-grant touches are engagement signals — they show a campaign is driving upgrades, but they never claim the revenue.
The money itself comes from plan pricing: each plan can carry a monthly price and currency. Three states matter:
- No price — the plan is unpriced. Its entitlements are counted and flagged separately, never silently treated as free.
- 0 — free (trials, community plans).
- Positive — paid; the currency is required.
Amounts are always reported per currency and never summed across currencies — a 50 EUR plan and an 80 USD plan stay two numbers.
If you would rather not publish prices
Section titled “If you would rather not publish prices”A plan set can be priced in relative units instead of money: each plan gets a weight — Basic 1, Pro 3, Enterprise 10 — and no price at all. The report turns those into a share of the total, so you can see the plan mix and how revenue is spread across campaigns without putting real numbers into the system. Useful when pricing lives in your billing provider, is commercially sensitive, or is still being worked out.
Weights are not percentages, and that is deliberate: they need not add up to anything, so
adding a plan never means re-typing the others, and “Enterprise is ten times Basic” stays
easy to say. The same three states apply — no weight means the plan is unpriced, 0 means
it captures nothing, above zero counts.
One plan set is one price list, so all its plans use the same kind of pricing; different plan sets can differ. If a report ends up covering both kinds, they are shown apart and labelled, because a weight and an amount are different units and must never be added.
Reading the performance report
Section titled “Reading the performance report”Insights ▸ Campaign performance shows, per campaign and per selected period: entitlements issued (with a trend chart), how many are active right now, trials started and converted from that cohort, promotion touches, and the attributed monthly recurring revenue (MRR) per currency. Entitlements no campaign can claim appear under No campaign — a large unattributed bucket usually means grants are being issued without picking a campaign. A warning banner counts active entitlements on unpriced plans so missing prices are visible instead of silently shrinking the totals. Plans priced in relative units get their own ranked list, shown as a share of the total rather than an amount. The CSV export keeps one row per campaign and currency, and puts the relative figures in a separate block, so a spreadsheet can’t accidentally add euros to dollars — or weights to either.
How it relates
Section titled “How it relates”- Attributes → entitlements, through touches.
- Prices from → plans (a monthly price and currency, or a relative weight).
- Executed by → issuance, plan overrides, add-on grants, and self-service sign-up links.