{
  "disclosures": [
    {
      "identifier": "TapMind install ID (file in the app's no-backup files directory; Application Support with backup exclusion on iOS)",
      "type": "app",
      "maxAgeSeconds": null,
      "purposes": [
        1,
        2
      ],
      "specialPurposes": [
        2
      ],
      "description": "Random installation identifier created by the TapMind SDK; new on reinstall; never derived from or linked on the device to any other identifier; kept until the app is uninstalled; not created where Purpose 1 consent is refused",
      "optOut": false
    },
    {
      "identifier": "TapMind telemetry queue (app-private files)",
      "type": "app",
      "maxAgeSeconds": 604800,
      "purposes": [
        1,
        7
      ],
      "specialPurposes": [
        1
      ],
      "description": "Batched ad events, crash and responsiveness counters awaiting upload; size-capped; removed on acknowledgement or after 7 days",
      "optOut": false
    },
    {
      "identifier": "TapMind SDK configuration (SDK-private preferences)",
      "type": "app",
      "maxAgeSeconds": 86400,
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Configuration delivered by TapMind, cached for 1 hour and replaced at least daily; contains no user data",
      "optOut": false
    },
    {
      "identifier": "TapMind consent-API preferences (SDK-private preferences)",
      "type": "app",
      "maxAgeSeconds": null,
      "purposes": [
        1
      ],
      "specialPurposes": [
        3
      ],
      "description": "Consent values the publisher passes through the SDK consent interface; kept until the app clears them; never written to IAB keys",
      "optOut": false
    },
    {
      "identifier": "TapMind creative cache (operating-system cache directory)",
      "type": "app",
      "maxAgeSeconds": 86400,
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Ad creative files fetched before display; removed when shown, after 24 hours, or on consent withdrawal; no identifier in the cache key",
      "optOut": false
    },
    {
      "identifier": "tmsrv_adSession",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1,
        2
      ],
      "specialPurposes": [],
      "description": "Ad-session counter used to limit how often the same ad is shown; local storage, kept until the visitor clears site data",
      "optOut": false
    },
    {
      "identifier": "tmsrv_int_adSession",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1,
        2
      ],
      "specialPurposes": [],
      "description": "Interstitial ad-session counter; local storage, kept until the visitor clears site data",
      "optOut": false
    },
    {
      "identifier": "tmsrv_priorityState",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Order in which ad sources are tried so ads load quickly; session storage, cleared when the tab closes",
      "optOut": false
    },
    {
      "identifier": "tmsrv_int_priorityState",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Order in which interstitial ad sources are tried; session storage, cleared when the tab closes",
      "optOut": false
    },
    {
      "identifier": "tabAdCount",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1,
        2
      ],
      "specialPurposes": [],
      "description": "Ads shown in this browser tab; session storage, cleared when the tab closes",
      "optOut": false
    },
    {
      "identifier": "exitInterstitialShown",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Records that an exit interstitial was shown in this tab; session storage, cleared when the tab closes",
      "optOut": false
    },
    {
      "identifier": "__tmStorageTest",
      "type": "web",
      "maxAgeSeconds": 0,
      "domain": "*",
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Storage-availability probe; removed immediately after it is written",
      "optOut": false
    },
    {
      "identifier": "tm_volume_widget_shown",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Video player: records that the volume control was shown in this tab; session storage, cleared when the tab closes",
      "optOut": false
    },
    {
      "identifier": "tm_volume_widget_expiry",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Video player: time after which the volume control may be shown again; session storage, cleared when the tab closes",
      "optOut": false
    },
    {
      "identifier": "tm_volume_widget_count",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Video player: number of times the volume control has been shown; local storage, kept until the visitor clears site data; written only where the placement enables it",
      "optOut": false
    },
    {
      "identifier": "tm_user_consent",
      "type": "web",
      "maxAgeSeconds": null,
      "domain": "*",
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Video player: records that the viewer allowed sound on the click-to-play prompt; value 1; not a privacy consent record; session storage, cleared when the tab closes",
      "optOut": false
    }
  ],
  "domains": [
    {
      "domain": "srv.tmcadptr.com",
      "use": "TapMind SDK ad requests (with diagnostic telemetry attached) and SDK configuration"
    },
    {
      "domain": "*.tmadsrv.com",
      "use": "TapMind display tag and video player scripts, display ad requests and reporting on publishers' websites"
    },
    {
      "domain": "*.tmvidsrv.com",
      "use": "Video ad requests and reporting from the TapMind video player"
    },
    {
      "domain": "vsrv.tmvsrv.com",
      "use": "TapMind VAST endpoint called by publishers' ad servers"
    }
  ],
  "sdks": [
    {
      "name": "com.tapmind.sdk",
      "use": "TapMind SDK for ad mediation and serving (Android namespace and iOS bundle identifier)"
    }
  ]
}
