---
title: "TN3182: Adding privacy tracking keys to your privacy manifest"
framework: technotes
role: article
role_heading: Article
path: technotes/tn3182-adding-privacy-tracking-keys-to-your-privacy-manifest
---

# TN3182: Adding privacy tracking keys to your privacy manifest

Declare the tracking domains you use in your app or third-party SDK in a privacy manifest.

## Overview

Overview When you build an app or third-party SDK that contacts domains engaged in tracking, perform these steps in your privacy manifest (PrivacyInfo.xcprivacy): Add the NSPrivacyTracking key and set its value to true. Add the NSPrivacyTrackingDomains key and set its value to a list of tracking domains. For more information about these keys and the privacy manifest, see Privacy manifest files. This document describes how to add the NSPrivacyTracking and NSPrivacyTrackingDomains keys to your privacy manifest in Xcode. If you work outside of Xcode, review this document to learn about the expected structure of each key. note: Before you start adding the keys to your privacy manifest, enable raw keys and values in Xcode to view the raw keys and hide their human-readable names. Click anywhere in the privacy manifest, then choose Xcode > Editor > Raw Keys and Values. Repeat the process to disable this feature. Add the privacy tracking key The NSPrivacyTracking key uses the following format: <key>NSPrivacyTracking</key> <!-- Use <true/> if your app or third-party SDK contacts domains engaged in tracking; otherwise use      <false/>. --> <true/> To add the NSPrivacyTracking key to your privacy manifest: Select PrivacyInfo.xcprivacy in the Project navigator. Click the Add button (+) beside the App Privacy Configuration key in the property list editor. In the pop-up menu that appears, choose NSPrivacyTracking. Confirm the value is Boolean in the Type column. Select YES from the pop-up menu in the Value column. Add a tracking domain to the privacy tracking domains key Set the value of the NSPrivacyTrackingDomains key to a list of tracking domains in your privacy manifest. For more information about tracking domains, see “Configure a tracking domain” in TN3181: Debugging an invalid privacy manifest. To add a tracking domain to the NSPrivacyTrackingDomains key in your privacy manifest: Select PrivacyInfo.xcprivacy in the Project navigator. Find the NSPrivacyTrackingDomains key in the property list editor. Confirm the value is Array in the Type column. Click the disclosure triangle to the left of NSPrivacyTrackingDomains to reveal it. Click the Add button (+) beside NSPrivacyTrackingDomains to insert a tracking domain such as mywebsite.example.com. Add the privacy tracking domains key The NSPrivacyTrackingDomains key uses the following format: <key>NSPrivacyTrackingDomains</key> <array>     <string>mywebsite.example.com</string>     ... </array> Each string value in the array identifies an internet domain your app or third-party SDK connects to that engages in tracking. For more information, see Add a tracking domain to the privacy tracking domains key. To add the NSPrivacyTrackingDomains key to your privacy manifest: Select PrivacyInfo.xcprivacy in the Project navigator. Click the Add button (+) beside the App Privacy Configuration key in the property list editor. In the pop-up menu that appears, choose NSPrivacyTrackingDomains. Confirm the value is Array in the Type column. To add a tracking domain to the array, see Add a tracking domain to the privacy tracking domains key. The following example declares one tracking domain for an app called Sample: Repeat step 5 for each additional tracking domain your app or third-party SDK contacts. The example below declares an additional tracking domain for Sample: Revision History 2024-12-17 First published.

## See Also

### Latest

- [TN3210: Optimizing your app for iPhone Mirroring](technotes/tn3210-optimizing-your-app-for-iphone-mirroring.md)
- [TN3211: Resolving SwiftUI source incompatibilities for State and ContentBuilder](technotes/tn3211-resolving-swiftui-source-incompatibilities-for-state-and-contentbuilder.md)
- [TN3212: Adopting gesture recognizers for Sidecar touch support](technotes/tn3212-adopting-gesture-recognizers-for-sidecar-touch-support.md)
- [TN3208: Preparing your app’s launch screen to meet App Store requirements](technotes/tn3208-preparing-your-apps-launch-screen-to-meet-app-store-requirements.md)
- [TN3205: Low-latency communication with RDMA over Thunderbolt](technotes/tn3205-low-latency-communication-with-rdma-over-thunderbolt.md)
- [TN3206: Updating Apple Pay certificates](technotes/tn3206-updating-apple-pay-certificates.md)
- [TN3179: Understanding local network privacy](technotes/tn3179-understanding-local-network-privacy.md)
- [TN3190: USB audio device design considerations](technotes/tn3190-usb-audio-device-design-considerations.md)
- [TN3194: Handling account deletions and revoking tokens for Sign in with Apple](technotes/tn3194-handling-account-deletions-and-revoking-tokens-for-sign-in-with-apple.md)
- [TN3193: Managing the on-device foundation model’s context window](technotes/tn3193-managing-the-on-device-foundation-model-s-context-window.md)
- [TN3115: Bluetooth State Restoration app relaunch rules](technotes/tn3115-bluetooth-state-restoration-app-relaunch-rules.md)
- [TN3192: Migrating your iPad app from the deprecated UIRequiresFullScreen key](technotes/tn3192-migrating-your-app-from-the-deprecated-uirequiresfullscreen-key.md)
- [TN3151: Choosing the right networking API](technotes/tn3151-choosing-the-right-networking-api.md)
- [TN3111: iOS Wi-Fi API overview](technotes/tn3111-ios-wifi-api-overview.md)
- [TN3191: IMAP extensions supported by Mail for iOS, iPadOS, and visionOS](technotes/tn3191-imap-extensions-supported-by-mail.md)
