{
  "disclosures": [
    {
      "identifier": "dvhgdwfrqupdt",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "High-frequency device data cache (e.g. system boot time). Stored in app preferences (NSUserDefaults). Overwritten based on a frequency threshold; not auto-expired."
    },
    {
      "identifier": "dvmdwfrqupdt",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        3,
        4
      ],
      "specialPurposes": [
        1,
        2
      ],
      "description": "Mid-frequency device data cache including country code, language and the Identifier for Vendor (IDFV). Stored in app preferences (NSUserDefaults). Overwritten based on a frequency threshold."
    },
    {
      "identifier": "dvlwfrqupdt",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Low-frequency device data cache including screen width/height and disk space. Stored in app preferences (NSUserDefaults). Overwritten based on a frequency threshold."
    },
    {
      "identifier": "T0RDTGFzdEI",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        1,
        2
      ],
      "description": "Cached device boot time used as a stable technical signal. Stored in app preferences (NSUserDefaults), written once and read thereafter."
    },
    {
      "identifier": "osversion",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Last recorded operating system version, used to decide when the cached WebView User-Agent must be refreshed. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "GDTDefaultUA",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached WebView navigator.userAgent string. Stored in app preferences (NSUserDefaults); refreshed on OS upgrade."
    },
    {
      "identifier": "GDTVTIsHardwareDecodeSupportedHEVC",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached flag indicating whether the device supports HEVC/H265 hardware decoding, used to ensure correct ad media rendering. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "GDTVTIsHardwareDecodeSupportedAV1",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached flag indicating whether the device supports AV1 hardware decoding, used to ensure correct ad video playback. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "kGDTDeviceAV1PlayableKey",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached AV1 first-frame playback success marker, used to decide whether AV1 video must be downgraded. Stored in app preferences (NSUserDefaults); reset when the downgrade configuration version increases."
    },
    {
      "identifier": "kGDTDeviceAV1ForceResetDownGradeVersionKey",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached version number controlling the forced reset of AV1 downgrade state. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "gdt_raccess",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached last-known cellular radio access technology (e.g. 4G/5G), used as a fallback technical signal. Stored in app preferences (NSUserDefaults); overwritten when a newer value is read."
    },
    {
      "identifier": "GDT_MOB_SDK_DB_VER",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Schema version number of the local event-tracking SQLite database, used to manage database upgrades. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "ODCAdSdkInitialized",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cumulative SDK initialization counter. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "AdSurgeSdkSessionInfo",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        7,
        9
      ],
      "specialPurposes": [
        2
      ],
      "description": "Previous session active duration and session id, reported on next launch and then cleared. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "odc_local_t_key",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        3,
        4
      ],
      "specialPurposes": [
        1,
        2
      ],
      "description": "Server-issued local token used for request continuity. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "last_report_day",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        7,
        9
      ],
      "specialPurposes": [
        2
      ],
      "description": "Date string used to de-duplicate the daily UV initialization report. Stored in app preferences (NSUserDefaults); overwritten daily."
    },
    {
      "identifier": "ladopt2",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached SDK behavior switch (load-ad duration optimization). Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "skuness",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached SDK behavior switch for the event storage strategy. Stored in app preferences (NSUserDefaults)."
    },
    {
      "identifier": "ODCDLR",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        7,
        9
      ],
      "specialPurposes": [
        1,
        2
      ],
      "description": "Deep link / app installation attribution records (marketing target detail id, installed status, click timestamp), stored under Library/ODCMob. Cleared after successful upload and capped by a maximum number."
    },
    {
      "identifier": "ODCVideoMonitoringStore.plist",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Video stall / playback quality monitoring records (save time, start lag, play lag), stored as a plist under Library/ODCMob. Rolled over based on a configurable number of days."
    },
    {
      "identifier": "ODCUAStore.plist",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        7,
        9
      ],
      "specialPurposes": [
        2
      ],
      "description": "User action records (creative ids, action types, timestamps, action values), stored as a plist under Library/ODCMob and capped by a maximum count."
    },
    {
      "identifier": "odc_mob_sdk.db",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        7,
        9,
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Local SQLite database (events and perfs tables) for advertising/analytics event tracking and SDK performance diagnostics, stored under Library/ODCMob/.odc. Records are removed after they are reported; each table is capped at 3000 rows."
    },
    {
      "identifier": "GDTCrash",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        1,
        2
      ],
      "description": "Crash diagnostics stored under Caches/GDTCrash: encrypted crash reports (Reports/*.dat, including device model, OS version, jailbreak flag, advertising identifier), app state (Data/CrashState.json) and crash footprint (Data/CrashFootprint.plist: crash count, alive time, reason, line). Reports are cleared after upload and pruned by a maximum count."
    },
    {
      "identifier": "default/native",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Archived dynamic-layout ad template nodes, stored under the Caches/default/native directory via the local file cache for ad rendering."
    },
    {
      "identifier": "default/odc_res",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Downloaded advertising resource files, cached under Caches/default/odc_res."
    },
    {
      "identifier": "default/odc_img",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached advertising image files, stored under Caches/default/odc_img."
    },
    {
      "identifier": "AdSurge/PlayableCache",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached playable ad resource files, stored under Caches/AdSurge/PlayableCache. LRU-evicted when exceeding the configured size limit."
    },
    {
      "identifier": "odc_media",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        10
      ],
      "specialPurposes": [
        2
      ],
      "description": "Cached advertising video media files together with per-file cache configuration, stored under the app temporary (tmp) directory for streaming playback."
    },
    {
      "identifier": "sphdv",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1
      ],
      "description": "Device H.265 video codec support flag",
      "specialPurposes": []
    },
    {
      "identifier": "hdrefver",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1
      ],
      "description": "SDK version when H.265 capability was last checked",
      "specialPurposes": []
    },
    {
      "identifier": "estop",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1
      ],
      "description": "External storage permission state",
      "specialPurposes": []
    },
    {
      "identifier": "appInitialCount",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        7
      ],
      "description": "App launch counter for session and UV tracking",
      "specialPurposes": []
    },
    {
      "identifier": "last_sdk_active_duration",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        7
      ],
      "description": "SDK foreground active duration",
      "specialPurposes": []
    },
    {
      "identifier": "boott",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1
      ],
      "description": "Device boot timestamp for session lifecycle",
      "specialPurposes": []
    },
    {
      "identifier": "local_t",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        3
      ],
      "description": "Server-issued session identifier for ad personalization",
      "specialPurposes": []
    },
    {
      "identifier": "last_report_day",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        7
      ],
      "description": "Days since last UV initialization report",
      "specialPurposes": []
    },
    {
      "identifier": "inss",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        3,
        7
      ],
      "description": "Advertiser app install status for conversion tracking",
      "specialPurposes": []
    },
    {
      "identifier": "statistics_data",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        7
      ],
      "description": "Video playback statistics for ad performance measurement",
      "specialPurposes": []
    },
    {
      "identifier": "dcflcm",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1
      ],
      "description": "Timestamp of last click frequency data cleanup",
      "specialPurposes": []
    },
    {
      "identifier": "freq*",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        3,
        4
      ],
      "description": "Per-template click frequency control data",
      "specialPurposes": []
    },
    {
      "identifier": "odc_behavior.db",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        3,
        7,
        9
      ],
      "description": "User behavior sequence records for personalization and analytics",
      "specialPurposes": []
    },
    {
      "identifier": "gdt_stat.db",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1,
        7
      ],
      "description": "SDK event tracking and performance metrics",
      "specialPurposes": []
    },
    {
      "identifier": "odc_vid_cac.db",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "ExoPlayer video cache index for ad video playback"
    },
    {
      "identifier": "nfb_*",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "Negative feedback template cache"
    },
    {
      "identifier": "fallback_*",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "Fallback ad template cache"
    },
    {
      "identifier": "*.js",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "Playable ad JavaScript adapter cache"
    },
    {
      "identifier": "playable_*",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "Playable ad resource file cache"
    },
    {
      "identifier": "crash_*",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        1
      ],
      "description": "Encrypted crash information, deleted after upload"
    },
    {
      "identifier": "*_tc",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "Download thread count record for resume support"
    },
    {
      "identifier": "*_complete",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "Download completion flag for resume support"
    },
    {
      "identifier": "vd_*",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "Ad video and audio download cache"
    },
    {
      "identifier": "*.apk",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "App-promoted APK download cache"
    },
    {
      "identifier": "ic_*",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "App icon image download cache"
    },
    {
      "identifier": "*.wxapkg",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [],
      "specialPurposes": [
        2
      ],
      "description": "WeChat mini-program package download cache"
    },
    {
      "identifier": "gdtadmobwebdatabase",
      "type": "app",
      "maxAgeSeconds": null,
      "cookieRefresh": false,
      "purposes": [
        1
      ],
      "specialPurposes": [
        2
      ],
      "description": "Android WebView built-in database"
    }
  ],
  "domains": [],
  "sdks": [
    {
      "name": "AdSurgeSDK",
      "use": "Mobile advertising SDK: ad request, rendering, video playback and caching."
    },
    {
      "name": "com.adsurge.adn",
      "use": "Ad serving, ad delivery and measurement"
    }
  ]
}
