[null,null,["最后更新时间 (UTC):2025-08-21。"],[[["\u003cp\u003ePublishers serving users in the EEA must obtain consent for personalized ads and data usage to comply with GDPR and the ePrivacy Directive.\u003c/p\u003e\n"],["\u003cp\u003eConsent can be managed and forwarded to the IMA SDK using the User Messaging Platform (UMP) SDK; on newer IMA SDK versions (3.11.1+), the TC String is automatically populated from a compliant CMP.\u003c/p\u003e\n"],["\u003cp\u003ePublishers can request non-personalized ads by appending \u003ccode\u003e&npa=1\u003c/code\u003e to their ad tag, which restricts ad selection to content without user history.\u003c/p\u003e\n"],["\u003cp\u003eTo comply with GDPR for users under the age of consent, publishers can append \u003ccode\u003e&tfua=1\u003c/code\u003e to their ad tag, disabling personalized advertising and third-party ad vendor requests.\u003c/p\u003e\n"],["\u003cp\u003eGDPR compliance necessitates a mechanism for users to revoke consent, which publishers should implement by referring to the provided guidance on privacy options.\u003c/p\u003e\n"]]],["To comply with the EU User Consent Policy, disclose cookie and data usage to EEA users and obtain consent. Use the UMP SDK to manage consent; it automatically forwards consent to the IMA SDK. To allow users to revoke consent implement privacy options. Force non-personalized ads by appending `&npa=1` to the ad tag via the `adTagParameters` property. Tag users under the EEA age of consent by appending `&tfua=1`, which disables personalized advertising. These parameters are demonstrated with code examples for both Objective-C and Swift.\n"],null,["# Request consent from EU users\n\n| **Note:** Consent reporting requires IMA SDK for iOS version 3.1.0 or higher.\n\nUnder Google's [EU User Consent\nPolicy](//www.google.com/about/company/consentstaging.html),\nyou must make certain disclosures to your users in the European\nEconomic Area (EEA) and obtain their consent for the use of cookies or\nother local storage where legally required, and for the collection,\nsharing, and use of personal data for ads personalization. This policy\nreflects the requirements of the EU ePrivacy Directive and the General\nData Protection Regulation (GDPR).\n\nUser Messaging Platform SDK\n---------------------------\n\nFor information on obtaining consent using the User Messaging Platform (UMP)\nSDK, see our [User Messaging Platform SDK\nguide](/ad-manager/dynamic-ad-insertion/sdk/ios/privacy). Consent obtained through the UMP\nSDK are automatically forwarded to the IMA SDK.\n\nConsent revocation\n------------------\n\nGDPR requires [consent revocation](//support.google.com/admanager/answer/10114217)\nto allow users to withdraw their consent choices at any time. See\n[Privacy options](/ad-manager/dynamic-ad-insertion/sdk/ios/privacy#privacy_options)\nto implement a way for users to withdraw their consent choices.\n\nForwarding consent to the IMA SDK\n---------------------------------\n\n| **Note:** On version 3.11.1 or higher, the IMA SDK automatically populates the TC String in the ad tag from the UMP SDK or any other IAB TCF v2.0-compliant consent management provider.\n\nBy default, ad requests to Google serve personalized ads, with ad selection\nbased on both the content of the web page or app and the history of the user\nvisiting it. Google also supports serving non-personalized ads.\n[Learn more about personalized and non-personalized\nads](//support.google.com/admanager/answer/9005435)\n\nTo force non-personalized ads, you can append `&npa=1` to your ad tag\nto specify that only non-personalized ad content should be returned.\n\nThis is accomplished with the `adTagParameters` property, like so: \n\n### Objective-C\n\n```objective-c\n- (void)requestStream {\n ...\n IMALiveStreamRequest *request =\n [[IMALiveStreamRequest alloc] initWithAssetKey:kAssetKey\n networkCode:kNetworkCode\n adDisplayContainer:adDisplayContainer\n videoDisplay:imaVideoDisplay];\n request.adTagParameters = @{ @\"npa\" : @1};\n [self.adsLoader requestStreamWithRequest:request];\n}\n```\n\n### Swift\n\n```swift\nfunc requestStream() {\n ...\n let request = IMALiveStreamRequest(\n assetKey: ViewController.assetKey,\n networkCode: ViewController.networkCode,\n adDisplayContainer: adDisplayContainer!,\n videoDisplay: imaVideoDisplay,\n userContext: nil)\n request.adTagParameters = {'npa', 1};\n adsLoader?.requestStream(with: request)\n}\n```\n\n\u003cbr /\u003e\n\nTagging users as under the age of consent\n-----------------------------------------\n\nYou can mark your ad requests to receive treatment for users in the European\nEconomic Area (EEA) under the age of consent. This feature is designed to\nhelp facilitate compliance with the [General Data Protection Regulation\n(GDPR)](//eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679).\nNote that you may have other legal obligations under GDPR. Please review\nthe European Union's guidance and consult with your own legal counsel.\nPlease remember that Google's tools are designed to facilitate compliance\nand do not relieve any particular publisher of its obligations under the\nlaw. [Learn more about how GDPR affects\npublishers](//support.google.com/admanager/answer/7666366)\n\nWhen using this feature, a TFUA (Tag For Users under the Age of Consent in\nEurope) parameter will be included in the ad request. This parameter disables\n[personalized advertising](//support.google.com/admanager/answer/9005435),\nincluding remarketing, for that specific ad request. It also disables\nrequests to third-party ad vendors, such as ad measurement pixels and\nthird-party ad servers. The parameter does not affect your use of\nAd Manager key-values. Consequently, you must ensure that your use of\nkey-values is compliant with GDPR.\n\nIncluding the TFUA parameter in an ad request takes precedence over any\napplicable site-level settings.\n\nTo include this tag on all ad requests made from your implementation,\nappend `&tfua=1` to your ad tag. \n\n### Objective-C\n\n```objective-c\n- (void)requestStream {\n ...\n IMALiveStreamRequest *request =\n [[IMALiveStreamRequest alloc] initWithAssetKey:kAssetKey\n networkCode:kNetworkCode\n adDisplayContainer:adDisplayContainer\n videoDisplay:imaVideoDisplay];\n request.adTagParameters = @{ @\"tfua\" : @1};\n [self.adsLoader requestStreamWithRequest:request];\n}\n```\n\n### Swift\n\n```swift\nfunc requestStream() {\n ...\n let request = IMALiveStreamRequest(\n assetKey: ViewController.assetKey,\n networkCode: ViewController.networkCode,\n adDisplayContainer: adDisplayContainer!,\n videoDisplay: imaVideoDisplay,\n userContext: nil)\n request.adTagParameters = {'tfua', 1};\n adsLoader?.requestStream(with: request)\n}\n```\n\n\u003cbr /\u003e\n\nThe example above uses a live stream request, but the same applies to VOD streams."]]