[
 {
  "id": "CL-001",
  "chapter": "1",
  "text": "Paid media acts on activation and retention mostly indirectly: through whom it reaches, what the ad promises and where a deep link lands the user. Reactivation, which remarketing buys directly, is the exception.",
  "findings": [],
  "sources": [
   "EF-S02",
   "C-S02"
  ],
  "cls": "synthesis",
  "confidence": "medium",
  "confidence_reason": "Follows from documented platform controls (bids, audiences, placements, creative); no platform documents control of in-app experience.",
  "limitations": "Targeting choices influence retention indirectly through audience quality.",
  "scope": "all platforms, all OS"
 },
 {
  "id": "CL-002",
  "chapter": "1",
  "text": "A lower CPI or a higher attributed ROAS can coexist with falling contribution, for example when credit goes to users who would have come anyway, when reports use gross bookings, or when cheaper installs churn faster (a mechanism the author flags, not a measured rate).",
  "findings": [
   "D-F04",
   "GH-F12"
  ],
  "sources": [
   "D-S04",
   "GH-S08"
  ],
  "cls": "inference",
  "confidence": "high",
  "confidence_reason": "Mechanisms are documented: naive versus experimental ROI at eBay; faster decay among higher-early-value users in RevenueCat's panel.",
  "limitations": "Frequency of the pattern across apps is not measured.",
  "scope": "all"
 },
 {
  "id": "CL-003",
  "chapter": "2",
  "text": "AppsFlyer estimates 2025 global app marketing spend at $109B: $78B user acquisition (+13%) and $31.3B remarketing (+37%); remarketing's share rose from 25% to 29%.",
  "findings": [
   "MAIN-F01"
  ],
  "sources": [
   "MAIN-S01"
  ],
  "cls": "vendor_assertion",
  "confidence": "medium",
  "confidence_reason": "Large stated panel; scaling method undisclosed.",
  "limitations": "Client panel, not a census.",
  "scope": "global, 2025, both OS",
  "money_quantity": "Q1"
 },
 {
  "id": "CL-004",
  "chapter": "2",
  "text": "Sensor Tower and Appfigures estimate 2025 global app-store consumer spend at $167B and $155.8B, a gap of about $11B in level and 11 points in growth rate.",
  "findings": [
   "AB-F20",
   "AB-F21",
   "AB-F22"
  ],
  "sources": [
   "AB-S12",
   "AB-S13"
  ],
  "cls": "synthesis",
  "confidence": "high",
  "confidence_reason": "Both figures are published by the vendors; the gap is arithmetic.",
  "limitations": "Methods not published; Appfigures figure read via TechCrunch reporting.",
  "scope": "global, 2025",
  "money_quantity": "Q3",
  "derivation": "167.0 - 155.8 = 11.2 ($B); 21.6% - 10.6% = 11.0 percentage points"
 },
 {
  "id": "CL-005",
  "chapter": "2",
  "text": "Remarketing grew faster than acquisition in AppsFlyer's panel (+37% against +13%). Randomized web retargeting studies find real but modest lift, and we did not locate a public independent randomized app study that validates attributed app-remarketing returns.",
  "findings": [
   "MAIN-F01",
   "D-F01",
   "D-F04"
  ],
  "sources": [
   "MAIN-S01",
   "D-S02",
   "D-S04"
  ],
  "cls": "inference",
  "confidence": "medium",
  "confidence_reason": "Growth figure is a vendor estimate; the attribution gap for existing-intent users is shown in web and search experiments, not app remarketing specifically.",
  "limitations": "No independent app-remarketing experiment was found.",
  "scope": "global"
 },
 {
  "id": "CL-006",
  "chapter": "2",
  "text": "Ad-platform revenues are not comparable as reported: AppLovin and Liftoff book revenue net of publisher payouts, Mobvista books gross, Digital Turbine books part of its business gross, and Verve moved some revenue from net to gross in 2025.",
  "findings": [
   "G2-F03",
   "G2-F11",
   "G2-F13",
   "AB-F09",
   "AB-F12"
  ],
  "sources": [
   "G2-S01",
   "G2-S09",
   "G2-S12",
   "FX1-S11",
   "AB-S09"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Accounting-policy passages in filings and annual reports.",
  "limitations": "Unity's formal policy paragraph was not located.",
  "scope": "company filings, FY2025-Q2 2026"
 },
 {
  "id": "CL-007",
  "chapter": "2",
  "text": "AppLovin's own disclosure says its Axon model uses win and loss notices from its MAX mediation auction, alongside device, engagement and advertiser-shared data.",
  "findings": [
   "KL-F11"
  ],
  "sources": [
   "KL-S12"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Company legal disclosure page.",
  "limitations": "The page does not quantify how much the auction data contributes.",
  "scope": "AppLovin, 2026"
 },
 {
  "id": "CL-008",
  "chapter": "3",
  "text": "Under SKAdNetwork 4, Apple assigns each attributed download one of four postback data tiers based on crowd size across the app or site showing the ad, the advertised app, the install country and the campaign code; higher tiers get more campaign-code digits and, in the first postback only, a fine-grained conversion value, so installs concentrated in larger crowds receive richer feedback. Apple publishes no thresholds.",
  "findings": [
   "C-F02"
  ],
  "sources": [
   "C-S02"
  ],
  "cls": "synthesis",
  "confidence": "high",
  "confidence_reason": "Tier mechanics are in Apple's documentation; the scale implication follows directly.",
  "limitations": "Apple does not publish tier thresholds.",
  "scope": "iOS 16.1+"
 },
 {
  "id": "CL-009",
  "chapter": "3",
  "text": "Apple's release notes list no SKAdNetwork 5, and no Apple document opened sets a retirement date for SKAdNetwork; it is bridged with AdAttributionKit.",
  "findings": [
   "C-F03",
   "C-F04"
  ],
  "sources": [
   "C-S03",
   "C-S05"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Official documentation at the cutoff.",
  "limitations": "Absence of an announcement is not a guarantee.",
  "scope": "iOS, at 2026-09-27"
 },
 {
  "id": "CL-010",
  "chapter": "3",
  "text": "At the cutoff Google listed the Android Privacy Sandbox ads APIs as 'scheduled for phaseout' with no completed-removal date; the retirement was announced, not finished.",
  "findings": [
   "C-F12",
   "C-F13"
  ],
  "sources": [
   "C-S14",
   "C-S15"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Google's own status page and announcement.",
  "limitations": "Status pages can lag.",
  "scope": "Android, at 2026-09-27"
 },
 {
  "id": "CL-011",
  "chapter": "4",
  "text": "Summing conversions claimed by several self-attributing platforms, or adding platform reports to Apple postbacks, counts some installs twice; such a total is not a de-duplicated install count.",
  "findings": [
   "D-F11",
   "D-F13"
  ],
  "sources": [
   "D-S13",
   "D-S23"
  ],
  "cls": "inference",
  "confidence": "high",
  "confidence_reason": "Each platform documents independent claiming; the attribution company chooses one winner.",
  "limitations": "The size of the overlap varies by app and is not public.",
  "scope": "all"
 },
 {
  "id": "CL-012",
  "chapter": "4",
  "text": "Across 663 randomized test-and-control comparisons on Facebook (from 563 US experiments run November 2019 to March 2020), the median lift the experiments measured was 29%, 18% and 5% by funnel stage, while double machine learning estimated median lifts of 83%, 58% and 24% and propensity matching 173%, 176% and 64% on the same campaigns.",
  "findings": [
   "D-F01"
  ],
  "sources": [
   "D-S02"
  ],
  "cls": "independent_measurement",
  "confidence": "high",
  "confidence_reason": "Peer-reviewed; full text read by the verifier. One author is a Meta employee; two were part-time Facebook employees for data access.",
  "limitations": "Facebook feed ads in the US, 2019-2020; not app installs.",
  "scope": "US, Facebook",
  "outcome": "qualified"
 },
 {
  "id": "CL-013",
  "chapter": "4",
  "text": "In eBay's 60-day geo experiment, which switched off non-brand search ads in about 30% of US regions, regression estimates of paid-search return of 4,173% (no controls) and 1,632% (region and day controls) compared with an experimental estimate of minus 63%; brand-keyword ads showed no measurable short-term benefit.",
  "findings": [
   "D-F04"
  ],
  "sources": [
   "D-S04"
  ],
  "cls": "independent_measurement",
  "confidence": "high",
  "confidence_reason": "Peer-reviewed randomized geo test; authors were eBay researchers.",
  "limitations": "Desktop-era paid search for one large, well-known brand.",
  "scope": "US, 2012"
 },
 {
  "id": "CL-014",
  "chapter": "4",
  "text": "Meta, Google and TikTok each document a conversion-lift product with test and control groups (Meta's guide calls its test randomized); in the pages reviewed, each routes access through an account team or eligibility rules rather than open self-service.",
  "findings": [
   "V3-F05"
  ],
  "sources": [
   "V3-S06",
   "V3-S07",
   "V3-S09"
  ],
  "cls": "direct_record",
  "confidence": "medium",
  "confidence_reason": "Official documentation; eligibility rules change.",
  "limitations": "Large advertisers may have routine access.",
  "scope": "2026"
 },
 {
  "id": "CL-015",
  "chapter": "5",
  "text": "Google's app campaigns require at least 10 conversions a day (or 300 in 30 days), with bid-on events coming from Firebase, for target-ROAS bidding, and warn against edits before 100 conversions.",
  "findings": [
   "MAIN-F05",
   "EF-F02"
  ],
  "sources": [
   "MAIN-S03",
   "EF-S03"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Google Ads Help pages.",
  "limitations": "Thresholds change; other platforms publish fewer rules.",
  "scope": "Google App campaigns, 2026"
 },
 {
  "id": "CL-016",
  "chapter": "5",
  "text": "The bidding engines learn best from events that are common, early and valued; in 2025 budgets nevertheless grew fastest on iOS and in non-game apps, where signal is thinner.",
  "findings": [
   "MAIN-F05",
   "MAIN-F07",
   "GH-F14",
   "V3-F13",
   "MAIN-F02"
  ],
  "sources": [
   "MAIN-S03",
   "MAIN-S05",
   "GH-S10",
   "V3-S01",
   "MAIN-S01"
  ],
  "cls": "synthesis",
  "confidence": "medium",
  "confidence_reason": "Built from documented thresholds and panel timing data; not tested directly.",
  "limitations": "Budget size and margins also explain category mix.",
  "scope": "all"
 },
 {
  "id": "CL-017",
  "chapter": "5",
  "text": "On a saturating response curve a channel can show a healthy average return while the marginal dollar returns less than it costs.",
  "findings": [],
  "sources": [
   "D-S17",
   "D-S18"
  ],
  "cls": "illustrative_scenario",
  "confidence": "high",
  "confidence_reason": "Mathematical property of the curves used in open-source mix models; the numbers in the model are synthetic.",
  "limitations": "Real curves must be estimated.",
  "scope": "any channel"
 },
 {
  "id": "CL-018",
  "chapter": "5",
  "text": "Attributed returns for remarketing and brand search are especially likely to include demand that already existed, so holdout tests, not attribution reports, should set these budgets.",
  "findings": [
   "D-F04",
   "D-F01"
  ],
  "sources": [
   "D-S04",
   "D-S02"
  ],
  "cls": "inference",
  "confidence": "medium",
  "confidence_reason": "Strong evidence in search and lower-funnel ads; no independent app-remarketing test.",
  "limitations": "Apps with high early churn may gain more from remarketing.",
  "scope": "all"
 },
 {
  "id": "CL-019",
  "chapter": "6",
  "text": "Apple documents no random split or significance test for custom product pages, which route traffic but do not by themselves create random assignment; its own figure for them, a 2.5 percentage-point average lift (156% over a 1.6% default-page rate), compares pages that receive different traffic.",
  "findings": [
   "EF-F28",
   "MAIN-F06"
  ],
  "sources": [
   "EF-S01",
   "MAIN-S04"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Apple documentation.",
  "limitations": "Teams can build their own tests around custom pages.",
  "scope": "iOS App Store"
 },
 {
  "id": "CL-020",
  "chapter": "6",
  "text": "Ad-platform delivery algorithms send split-test versions to different audiences, so a creative 'win' mixes the ad's effect with targeting (divergent delivery).",
  "findings": [
   "G1-F01",
   "G1-F02"
  ],
  "sources": [
   "G1-S01"
  ],
  "cls": "independent_measurement",
  "confidence": "medium",
  "confidence_reason": "Peer-reviewed article; abstract only read.",
  "limitations": "Size of the bias varies by platform and campaign.",
  "scope": "ad platforms generally"
 },
 {
  "id": "CL-021",
  "chapter": "6",
  "text": "On 30 June 2026 the Supreme Court agreed to hear Apple's appeal limited to whether contempt can rest on breaking an injunction's 'spirit'. The permissible US link-out fee is being set by the trial court, which refused Apple's request to pause that work on 11 August 2026; Justice Kagan denied Apple's stay application on 13 August. No fee had been approved at the cutoff.",
  "findings": [
   "EF-F13",
   "EF-F14"
  ],
  "sources": [
   "FX2-S21",
   "EF-S17",
   "EF-S06"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Official Supreme Court docket.",
  "limitations": "Outcome unknown.",
  "scope": "US",
  "outcome": "qualified"
 },
 {
  "id": "CL-022",
  "chapter": "7",
  "text": "For a $9.99 first-year subscription payment, web checkout at Stripe's 2.9% + $0.30 keeps about $9.40, about 34% more than Apple's 30% tier ($6.99) and about 11% more than the 15% tier ($8.49), counting card fees only.",
  "findings": [
   "GH-F01",
   "G2-F16"
  ],
  "sources": [
   "GH-S02",
   "G2-S15"
  ],
  "cls": "synthesis",
  "confidence": "high",
  "confidence_reason": "Arithmetic on published rates.",
  "limitations": "Excludes billing software, tax handling, chargebacks, fraud, support and conversion loss on web checkout, and any future US link-out fee.",
  "scope": "US, card payments",
  "derivation": "30% tier: 9.99 x 0.70 = 6.993. 15% tier: 9.99 x 0.85 = 8.4915. Web: 9.99 - (0.029 x 9.99 + 0.30) = 9.400. 9.400/6.993 = 1.344 (+34%); 9.400/8.4915 = 1.107 (+11%)."
 },
 {
  "id": "CL-023",
  "chapter": "7",
  "text": "Google's zero-inflated lognormal LTV method was validated by its authors on a retail shopper dataset and a charity donor dataset, not on app install cohorts.",
  "findings": [
   "GH-F18"
  ],
  "sources": [
   "GH-S12",
   "GH-S13"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Paper and repository read.",
  "limitations": "Firms may validate it privately on app data.",
  "scope": "method"
 },
 {
  "id": "CL-024",
  "chapter": "8",
  "text": "MRC's digital accreditation listing (checked 27 September 2026) shows sophisticated invalid-traffic accreditation covering mobile in-app for several firms, including DoubleVerify, HUMAN, IAS, Pixalate, Protected Media and some Google and Meta services, but not AppsFlyer, Adjust, Singular or Kochava. Absence from the list does not show that no audit has taken place.",
  "findings": [
   "IJ-F28"
  ],
  "sources": [
   "IJ-S27"
  ],
  "cls": "direct_record",
  "confidence": "medium",
  "confidence_reason": "Read from MRC's listing page; lists change.",
  "limitations": "Absence from the list says nothing about tool quality.",
  "scope": "at cutoff"
 },
 {
  "id": "CL-025",
  "chapter": "8",
  "text": "Uber's 2017 federal suit against Fetch Media over allegedly fraudulent mobile ad credit was dismissed that year; in a separate state case Uber, Phunware and four individuals settled for $6 million in October 2020, all denying wrongdoing.",
  "findings": [
   "IJ-F10",
   "IJ-F11"
  ],
  "sources": [
   "IJ-S05",
   "IJ-S06",
   "IJ-S04"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Settlement agreement filed as an SEC exhibit.",
  "limitations": "Settlements are not findings of fraud.",
  "scope": "US",
  "outcome": "qualified"
 },
 {
  "id": "CL-026",
  "chapter": "8",
  "text": "Our searches found no independent, published randomized or geographic study of streaming TV advertising effects on app installs at the cutoff; every CTV-to-app lift claim located was vendor-designed and vendor-reported.",
  "findings": [
   "IJ-F22",
   "G1-F12"
  ],
  "sources": [
   "IJ-S08",
   "IJ-S10",
   "G1-S09"
  ],
  "cls": "inference",
  "confidence": "medium",
  "confidence_reason": "Two separate searches found none; absence claims are bounded by search reach.",
  "limitations": "Private or unindexed studies may exist.",
  "scope": "at cutoff",
  "outcome": "qualified"
 },
 {
  "id": "CL-027",
  "chapter": "10",
  "text": "The big platforms' automated app campaigns choose placements for the buyer. Google's App campaigns placement report names apps, publishers, websites and videos but gives impressions only and groups low-volume placements; TikTok's Smart+ does not allow manual placement choice; Meta lists placement among reporting breakdowns but describes no breakdown by publisher app.",
  "findings": [
   "MAIN-F09",
   "V3-F02",
   "V3-F03"
  ],
  "sources": [
   "OA1-S01",
   "FX1-S23",
   "V3-S01"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "Official help and API documentation; Meta's page was re-read in a browser by the fact-check pass and contradicted the first-pass reading.",
  "limitations": "Platforms may add reporting; some aggregate breakdowns exist.",
  "scope": "2026",
  "outcome": "supported"
 },
 {
  "id": "CL-028",
  "chapter": "10",
  "text": "No public study was found that measures the net value of transparency or self-serve control to app buyers after staff and tooling costs.",
  "findings": [],
  "sources": [],
  "cls": "inference",
  "confidence": "medium",
  "confidence_reason": "Absence finding across all research streams.",
  "limitations": "Private studies may exist.",
  "scope": "at cutoff"
 },
 {
  "id": "CL-029",
  "chapter": "11",
  "text": "'Apps DSP' describes a real capability checklist. On the author's own seven-field screen, one of eleven execution products documents the full set and five document at least five of seven; scores describe documentation, not performance, and we did not find public comparative evidence that the bundle outperforms best-of-breed parts.",
  "findings": [],
  "sources": [],
  "cls": "synthesis",
  "confidence": "medium",
  "confidence_reason": "Based on the capability matrix (documentation, not outcomes) and the absence of outcome comparisons.",
  "limitations": "Matrix measures documentation, not effectiveness.",
  "scope": "vendor panel at cutoff"
 },
 {
  "id": "CL-030",
  "chapter": "11",
  "text": "TikTok's agent server exposes about 400 advertising functions, including campaign creation and budget changes, and its help page says agents can work 'without human intervention at every step', describing no per-change approval step. Meta's server creates new campaigns paused and relies on the AI client to confirm activation, but documents no approval step for edits to live campaigns.",
  "findings": [
   "KL-F05"
  ],
  "sources": [
   "KL-S08"
  ],
  "cls": "direct_record",
  "confidence": "high",
  "confidence_reason": "TikTok help center page.",
  "limitations": "Approval controls may exist in settings not described on that page.",
  "scope": "2026"
 },
 {
  "id": "CL-031",
  "chapter": "11",
  "text": "AppLovin's public disclosure on its Axon model is silent on advertisers' rights over the use of their campaign data; the pages reviewed did not establish portable rights to any platform's learned state, and other platforms' full advertising terms were not reviewed.",
  "findings": [
   "KL-F11"
  ],
  "sources": [
   "KL-S12"
  ],
  "cls": "direct_record",
  "confidence": "medium",
  "confidence_reason": "Absence in a public page; contracts were not reviewed.",
  "limitations": "Private contracts may address it.",
  "scope": "public pages at cutoff"
 },
 {
  "id": "CL-032",
  "chapter": "7",
  "text": "In a 21-month randomized experiment across about 35 million Pandora listeners, long-run sensitivity to ad load was about three times what a one-month test would show, observational estimates were biased, and heavier ad load raised paid-subscription conversion.",
  "findings": [
   "G1-F03",
   "G1-F04",
   "G1-F05"
  ],
  "sources": [
   "G1-S02"
  ],
  "cls": "independent_measurement",
  "confidence": "medium",
  "confidence_reason": "Randomized field experiment; abstract only read.",
  "limitations": "Audio streaming, not games; effect sizes by arm not read.",
  "scope": "US, Pandora"
 },
 {
  "id": "CL-033",
  "chapter": "8",
  "text": "AppLovin opened its self-serve platform, renamed AppLovin Ads, to all advertisers without a referral code on 22 June 2026 (chief executive's blog); its filings through Q2 2026 mention e-commerce as an expansion area but do not break out e-commerce revenue.",
  "findings": [
   "G2-F04",
   "IJ-F23",
   "IJ-F24"
  ],
  "sources": [
   "G2-S01",
   "G2-S02",
   "IJ-S22"
  ],
  "cls": "direct_record",
  "confidence": "medium",
  "confidence_reason": "Absence in filings; company websites may announce it separately.",
  "limitations": "Product pages were not all checked for the opening.",
  "scope": "to 2026-08-05"
 }
]