Indie dev. Free productivity app, live 6 months. Unlike the dev who doesn't know what to optimise — Karthik knows. He's running a Reddit AMA Tuesday, posting on X Wednesday, and a thread in r/productivity Thursday, each with its own ?cid= tag. He's doing the work.
Partner Center will eventually show him an install count per campaign — 3 to 4 hours late. But the Page views column shows "—". The Conversions chart doesn't match the table. And nothing tracks the web PDP view that happens between his Reddit click and the eventual install. He has the start of the funnel and a delayed end — nothing in the middle to interpret either.
?cid=apps.microsoft.com/...?cid=reddit-ama link.?cid=twitter-launch. ~200 clicks.ms-windows-store://). Captures installs cleanly — if users have the Store client open.Three tabs. Same column. Same numbers. The data table never changes — only the chart does. Karthik gets one answer to three different questions.
Add the latency layer — installs arrive 3–4 hrs late, daily reports +1–2 days — and his entire week of marketing produces a single ambiguous number, after the moment is already over.
?cid= click telemetry on apps.microsoft.com isn't surfaced.ms-windows-store:// deep link — is undocumented in the Partner Center share flow."These are real screenshots of Custom campaign performance in Partner Center, today. Two custom campaigns — focusdropcampaign and spotifyweb-store-button — tracked across a 30-day window. Click the tabs in order to see the broken state on each metric.
spotifyweb-store-button reads as "—" — no signal at all. Karthik cannot tell if the campaign failed, or if Partner Center simply isn't measuring it. This tab is correctly labeled. The other two tabs aren't.
Installs per cid do arrive, just late. What's actually missing is the denominator: page views per cid, conversion rate per cid. Without page views, Karthik can't tell a low-traffic / high-conversion channel apart from a high-traffic / low-conversion one — both look like "2 installs". He turns one off without knowing which one.
Per-source acquisitions, separated cleanly: Google Play explore (organic browse) at 27,158 vs Paid and direct (web/ad-driven traffic) at 402,071 — that's a 15× ratio Karthik would love to see for his own app. The point isn't the numbers; it's that Google distinguishes the source of every install and reports it next-day at worst. Microsoft Partner Center aggregates everything into a single "Custom campaign performance" widget that today reads "2" or "—".
4.35M viewers, 924 converters, 0.02% CR, broken by 176 countries. Google doesn't just track installs — it gives Karthik a LiveOps-grade view of every promotional event he runs, with funnel metrics at each step. Microsoft Store has no concept of a promotional event tied to listing analytics.
?cid=reddit-ama tag — not a tracked entity. No viewers number. No event window. No action-type split. No geo breakdown. Karthik gets one ambiguous "2" on three tabs, 3-4 hours after the AMA is over.The capability already half-exists. Custom campaign IDs work for free apps. The web PDP has a URL. The deep-link scheme is implemented. What's missing is documentation, telemetry, and a faster pipeline — not new product.
?cid= for free apps.?cid= exists by accident; every other dev should learn from docs.ms-windows-store:// link is undocumented. A single dropdown in the share UI — "Web link (broad reach) / Deep link (full analytics)" — ends a five-year DX gap. Pure copy + UI change. No telemetry work.?cid=. Share-flow dropdown for web vs deep link. Zero engineering — pure content + UI.apps.microsoft.com. Same source, device, OS slicing as the client. Closes the dark-middle funnel gap.Karthik's pain isn't a measurement problem. It's a discovery problem one layer deep. If devs can't measure off-Store campaigns, they can't double down on what works — so Microsoft Store stops being a destination they invest in, and the algorithm has less external signal to reward listings with.
?cid= documented.