{
  "docId": "019dd923-622c-750b-8b97-b61650b69e06",
  "docSlug": "6c16913ce6b9",
  "documentTitle": "AppLovin (APP)",
  "authorId": "51_Muddy_Waters",
  "authorName": "Muddy Waters Research",
  "documentKindSlug": "activist-deck",
  "documentKindLabel": "Activist deck",
  "sourceTypeSlug": "short_seller",
  "sourceTypeLabel": "Short seller",
  "presentationDate": "2025-05-07 00:00:00",
  "orientation": "landscape",
  "aspectRatio": 1.7777778,
  "pageNumber": 9,
  "pageCount": 16,
  "prevPage": 8,
  "nextPage": 10,
  "slideType": "expose_contradiction",
  "function": "expose_contradiction",
  "density": "sparse",
  "nDataPoints": 0,
  "notes": "The slide uses a process flow to illustrate a technical mechanism for tracking users.",
  "elementsJson": [
    "headline_text",
    "numbered_list",
    "process_diagram"
  ],
  "metadataConfidence": 1,
  "imagePath": null,
  "slideHref": "/slides/019dd923-622c-750b-8b97-b61650b69e06/9",
  "deckHref": "/decks/019dd923-622c-750b-8b97-b61650b69e06",
  "deckJsonHref": "/decks/019dd923-622c-750b-8b97-b61650b69e06.json",
  "deckAnchorHref": "/decks/019dd923-622c-750b-8b97-b61650b69e06#slide-9",
  "components": [
    {
      "bbox": null,
      "kind": "callout",
      "text": "The CRT becomes the main persistent identifier and is the focus of this analysis.",
      "attrs": null,
      "subkind": null,
      "toolName": "Visual emphasis",
      "toolSlug": "visual-emphasis",
      "confidence": null,
      "componentId": "019dd953-0936-7173-ab18-8a75684c1dd9",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.45,
        "w": 0.95,
        "x": 0.03,
        "y": 0.43
      },
      "kind": "diagram",
      "text": "1. Generate Persistent Identifiers 2. Ingest User, Device & Network Attributes 3. Link Mosaic to Identifiers",
      "attrs": null,
      "subkind": "process",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "fd21fa29-4af2-43e6-8fe5-8c7359178b51",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.2,
        "w": 0.95,
        "x": 0.03,
        "y": 0.2
      },
      "kind": "list",
      "text": "1. When APP's Max SDK is launched it generates two tokens... 2. APP reads and ingests various types of device and network attributes... 3. The persistent identifiers are linked to the user and device data...",
      "attrs": null,
      "subkind": "numbered",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "1b3518a2-7a48-4a49-84dd-e322d98fb532",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.12,
        "w": 0.75,
        "x": 0.03,
        "y": 0.05
      },
      "kind": "title",
      "text": "How APP Circumvents the Privacy Firewall: Creating Persistent IDs and Persistent Identity Graphs",
      "attrs": null,
      "subkind": "headline",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "5a0278ba-6f35-4f12-a81a-cdae1d2d596b",
      "frameworkName": null,
      "frameworkSlug": null
    }
  ],
  "metrics": [],
  "tools": [],
  "frameworks": [
    {
      "name": "causal-chain",
      "slug": null,
      "matchId": "ccdc63b0-75a9-4029-8166-1e17e001afed",
      "evidence": "The slide explicitly maps a 3-step process to explain the mechanism of privacy circumvention.",
      "confidence": 0.9
    }
  ],
  "arcBeats": [
    {
      "to": 11,
      "from": 7,
      "beatId": "d8fc7000-740c-49e7-955e-8358b56459ea",
      "arcName": "Overcoming the Monster",
      "arcSlug": "overcoming-monster",
      "beatName": "The Struggle",
      "beatSlug": "overcoming-monster-the-struggle",
      "evidence": "Slides 7-11 present evidence of AppLovin's alleged misuse of persistent identifiers.",
      "position": 1,
      "confidence": 0.8,
      "parentBeatName": "Development",
      "parentBeatSlug": "development"
    }
  ],
  "loops": [],
  "imagePathAlt": null,
  "thumbSrc": null,
  "thumbSrcAlt": null,
  "locked": true
}