{"library":"pyobjc-framework-adsupport","title":"PyObjC AdSupport Framework","description":"PyObjC-framework-adsupport provides Python bindings for Apple's AdSupport framework on macOS. It allows Python applications to interact with native macOS APIs to obtain the advertising identifier (IDFA), which is unique to each device and primarily used for advertising purposes. The library is part of the larger PyObjC project, which regularly releases updates, with major versions typically aligning with macOS SDK changes and Python version support.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pyobjc-framework-adsupport"],"cli":null},"imports":["import AdSupport"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import AdSupport\nfrom Foundation import NSUUID\n\n# Note: On iOS 14.5+ and iPadOS 14.5+, your app must request\n# tracking authorization using the AppTrackingTransparency framework\n# (e.g., AppTrackingTransparency.ATTrackingManager.requestTrackingAuthorization_)\n# before a non-zero advertisingIdentifier can be obtained.\n# For macOS, AdSupport is available from 10.14+.\n\nmanager = AdSupport.ASIdentifierManager.sharedManager()\n\nif manager.isAdvertisingTrackingEnabled():\n    advertising_id_nsuuid = manager.advertisingIdentifier()\n    # Convert NSUUID to a Python string\n    advertising_id_str = str(advertising_id_nsuuid.UUIDString())\n    print(f\"Advertising ID (IDFA): {advertising_id_str}\")\nelse:\n    print(\"Advertising tracking is disabled. Advertising ID will be all zeros.\")\n    # The ID will be '00000000-0000-0000-0000-000000000000'\n    advertising_id_nsuuid = manager.advertisingIdentifier()\n    advertising_id_str = str(advertising_id_nsuuid.UUIDString())\n    print(f\"Advertising ID (IDFA): {advertising_id_str}\")","lang":"python","description":"This quickstart demonstrates how to access the shared instance of `ASIdentifierManager` and retrieve the `advertisingIdentifier`. It also includes a note about `App Tracking Transparency` requirements for obtaining a meaningful IDFA on modern iOS/iPadOS versions.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":null,"pypi_latest":"12.1","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.2,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.2,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.2,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.8,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pyobjc-framework-adsupport","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":4,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}