05.21 Media Attribution in Practice: post-IDFA and Backend Event Definitions
Governance metadata | Owner: Sales Lead | Last reviewed: 2026-10-22 | Next review: 2027-01-31
Methodology is in 05.19; this document locks down the executable events, windows, dashboards, and red lines. Platform policies are governed by the official sources.
1. Default Four Definitions (One Shared Set of Definitions for the Whole Team)
| Metric | Definition | Window | Use |
|---|---|---|---|
| Backend closed orders | Payment succeeded and not refunded by T+7 | Order day | Real revenue |
| Attributed orders | Traceable via UTM / affiliate / dedicated code | 7-day click / 1-day view | Channel contribution |
| Channel contribution margin | Attributed revenue − variable cost − channel fees − variable ad spend | Month | Whether to add budget |
| Unknown-attribution share | Untagged orders / total orders | Week | Data credibility |
Red line (default): unknown attribution >40% → it is forbidden to cut brand/social budget on the basis of "last-click ROAS" alone.
2. post-IDFA Technology Stack (Conceptual)
- Ad SDK + Conversion API to post back the payment (server-side first)
- Site/App event tracking → server-side events
- KOL dedicated code as a weak-attribution backup
- Split out new vs returning customers, and brand vs non-brand terms
- Sampling: manually reconcile 50 orders per week; if the error rate is ≥5%, fix the tracking first and only then talk about optimisation (align with §24)
3. Event Dictionary
| Event | Trigger | Required Properties |
|---|---|---|
| page_view | Landing | utm_source/medium/campaign/content |
| add_to_cart | Add to cart | value, sku |
| begin_checkout | Begin checkout | value, items |
| purchase | Payment succeeded | order_id, revenue, currency, sku, channel_hint |
Naming convention example: utm_source=kol_yt_nebula&utm_medium=affiliate&utm_campaign=astro_q4.
4. Dashboard Fields (Interface with 01.13 / KPI Base)
| Block | Fields |
|---|---|
| Spend | Daily spend, platform, campaign |
| Platform efficiency | ROAS, CPA, CTR, ACOS (Amazon single track) |
| Backend efficiency | Backend ROAS, post-refund ROAS |
| Credibility | Unknown-attribution %, dedicated-code order %, server-side post-back success rate |
| Decision | Whether the circuit-breaker / budget-increase conditions are met |
Forbidden: adding Meta ROAS and Amazon ACOS together and treating the result as the total efficiency.
5. Scenario Playbooks
Crowdfunding Warm-Up (05.02.01)
- VIP code contribution share, CPV
- Free leads serve only the upper funnel and do not count toward "verified paid"
Major Promo (05.05 / 05.18)
- 72h around the lock-in window: backend ROAS, unknown-attribution %
- Recompute the contribution margin whenever the Deal price changes
KOL (04.03)
- Seeding ROI = attributed orders or dedicated code; it is forbidden to look at view counts alone
7. Related
05.19 / 05.18 / 01.13 / 05.04 / 05.02
7. Attribution Dispute Adjudication Order (Default)
- Total backend closed revenue (finance)
- Traceable order-level detail
- Server-side event success rate
- Platform reports (for optimisation reference only)
- When unknown attribution is >40%, budget decisions are downgraded to "test budget"
8. Division of Labour with BI (05.19)
- 05.19: models, windows, multi-touch theory
- This document: events, tracking, dashboards, red lines
- When implementation conflicts: backend payment facts prevail
9. Common Tracking Failures
| Failure | Symptom | Fix |
|---|---|---|
| Front-end only | iOS orders lost | Server-side post-back |
| Duplicate purchase | Inflated ROAS | Deduplicate order_id |
| Timezone error | Day-boundary misalignment | Store everything in UTC |
| Code hijacked | Channels steal each other's orders | Code rules + risk control |
8. Server-Side Post-Back Acceptance Steps
- Make 1 sandbox payment → check the event table
- Whether the ad backend "Event Management" received it
- Whether duplicate payments are deduplicated
- Spot-check the timezone and currency fields
9. Budget Decision Matrix (Default)
| Unknown Attribution | Backend ROAS | Action |
|---|---|---|
| <20% | On target | Budget can be increased |
| 20–40% | On target | Increase in small steps + intensify attribution |
| >40% | Any | Fix tracking/codes first; freeze any brand-spend cuts |
10. With 04 Seeding
The primary column of the seeding ROI table: dedicated-code orders; the secondary column: the short UTM window; view counts are a process metric only.
11. Full Channel Naming Convention Table
| Channel | utm_source Example | Notes |
|---|---|---|
| Meta | meta | |
| YouTube KOL | yt_ | + dedicated code |
| On-site | onsite | brand terms |
| email_ | ||
| Offline | offline_ | QR code |
12. Post-Refund ROAS
Post-refund ROAS = (closed orders − T+7 refunds) / spendA version must be produced within 14 days after a major promo, to prevent "inflated same-day numbers".
13. Differences from the 05.05 Major Promo
| Regular | Major Promo | |
|---|---|---|
| Attribution window | 7-day click | Can be shortened to 1–3 days with a note |
| Unknown attribution | Monitored | Allowed to rise, but decisions are downgraded |
| Budget | By ROAS | Dual objective of GMV + contribution margin |
14. Data Quality Score (Weekly)
| Item | Score |
|---|---|
| Server-side post-back success | 30 |
| Code/UTM coverage | 30 |
| Unknown attribution <40% | 20 |
| Both ROAS views present | 20 |
<80: fix the data first, then talk about large-scale media spend.
15. Tracking Change Management
- Any event field change goes through a PR + a regression test case
- Change week: the dashboard is marked "data change"
- Operations staff are forbidden to rename events on their own
16. Field Alignment with the 04.03 Seeding Table
Add these columns to the seeding table: Dedicated Code, UTM content, Attributed Orders, Backend Revenue.
18. Platform Comparison Table (Conceptual)
| Platform | Attribution Characteristics | Caveats |
|---|---|---|
| Meta | The Conversion API matters | iOS losses |
| Search + shopping | Split out brand terms | |
| Amazon on-platform | ACOS single track | Do not mix-add with Meta |
| TikTok | Content-driven | Code + UTM |
19. Test Design Principles
- Single-variable weekly tests
- Budget no smaller than the statistically meaningful threshold (set by the business)
- During mixed-attribution periods, do not "fully pause brand terms"
20. With 07.10 AI
If the landing page uses AI-generated creative: the conversion event still uses purchase as the source of truth, and the generation cost is booked to marketing or R&D (decided by finance).
21. Crisis: Data Platform Outage
Post-back outage >24h: pause the automated rules and switch to manual daily reports; backfill the events after recovery.
23. Event Post-Back Acceptance Sheet (Before Launch)
| Check | Pass Standard | Action on Failure |
|---|---|---|
| 1 sandbox payment | A purchase exists in the event table | Scaling up is forbidden |
| order_id unique | No duplicates | Fix the deduplication |
| Amount = actual paid | 0 error | Fix the field |
| Server-side post-back | Visible in the ad backend | Fix the API |
| Timezone | Consistent with the finance day boundary | Store everything in UTC |
| 50-order sampling reconciliation | Error rate <5% | Fix the UTM rules |
24. Budget-Increase Gate (Default, All Conditions Must Be Met)
- Backend ROAS ≥ target (filled in by the project)
- Unknown attribution <40%
- Server-side post-back success rate >95%
- Post-refund ROAS still ≥ target×0.8
- No ACOS circuit breaker triggered (if Amazon)
If any one condition is not met → only a probe budget of ≤10% is allowed.
25. Budget-Cut Gate (Default)
| Situation | Action |
|---|---|
| Unknown attribution >40% with no remediation plan | Forbidden to cut brand/content; cut only paid search with poor attribution |
| Single-channel ROAS poor for 3 days | Reduce by 50%, do not fully pause |
| Data quality score <80 | Fix the data first; freeze structural budget cuts |
26. Field Mapping to the 05.19 Model
| Field in This Document | 05.19 |
|---|---|
| Attributed orders | The "trackable conversion" in multi-touch |
| Unknown attribution | The residual outside the model |
| Post-refund ROAS | The finance-aligned column |
In case of conflict: payment facts > platform reports > model inferences.
27. Checklist (Final)
[ ] All six items on the acceptance sheet have passed
[ ] The budget-increase / budget-cut gates have been posted to the media team channel
[ ] The 05.19 field-mapping table has been trained