Google 发布商合作规范最近有更新,针对出于广告相关目的而向 Google 传送用户精确位置数据的发布商,在通知和用户意见征求方面提出了新的要求。
如果该政策适用于您,以下代码段演示了您向用户告知此类数据共享的一种方式:
Swift
func presentConsentOverlayFromViewController(_ rootViewController: UIViewController) { if (rootViewController == nil) { return; } DispatchQueue.main.async { let alert = UIAlertController(title: "Location data", message: """ We may use your location, and share it with third parties, for the purposes of personalized advertising, analytics, and attribution. To learn more, visit our privacy policy at https://myapp.com/privacy. """, preferredStyle: .alert) let alertAction = UIAlertAction(title: "OK", style: .default, handler: { _ in // TODO: replace the below log statement with code that specifies how // you want to handle the user's acknowledgement. print("Got consent.") } ) alert.addAction(alertAction) rootViewController.present(alert, animated: true, completion: nil) } } // To use the above function assuming you are in a view controller: presentConsentOverlayFromViewController(self)
Objective-C
- (void)presentConsentOverlayFromViewController:(UIViewController *)rootViewController { if (rootViewController == nil) { return; } dispatch_async(dispatch_get_main_queue(), ^{ UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Location data" message: @"We may use your location, and share it with third parties," @"for the purposes of personalized advertising, analytics, and attribution." @"To learn more, visit our privacy policy at https://myapp.com/privacy." preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { [alert dismissViewControllerAnimated:YES completion:^{ // TODO: replace the below log statement with code that specifies // how you want to handle the user's acknowledgement. NSLog(@"Got consent."); }]; }]; [alert addAction:ok]; [rootViewController presentViewController:alert animated:YES completion:nil]; }); } // To use the previous function assuming you are in a view controller: [self presentConsentOverlayFromViewController:self];