定位

本指南介绍了如何向广告请求提供定位信息。

要查看广告定位的实际运作情况,请下载 Objective-C 或 Swift 语言的 iOS API Demo 应用。

下载 API Demo

前提条件

完成入门指南

GADRequestConfiguration

GADRequestConfiguration 对象会收集通过 GADMobileAds 共享实例在全局范围内应用的定位信息。

您可以通过以下这段代码进行访问:

Swift

let requestConfiguration = GADMobileAds.sharedInstance.requestConfiguration

Objective-C

GADRequestConfiguration requestConfiguration = GADMobileAds.sharedInstance.requestConfiguration;

面向儿童的设置

为了遵守《儿童在线隐私保护法》(COPPA) 的规定,我们提供了一项名为 tagForChildDirectedTreatment 的设置。

作为应用开发者,您可以在发出广告请求时表明是否希望 Google 将您的内容视为面向儿童的内容。如果您表明希望 Google 将您的内容视为面向儿童的内容,则我们会采取相应措施,在该广告请求上停用针对用户兴趣投放广告和再营销广告。设置选项如下:

  • tagForChildDirectedTreatment 设置为 YES,以表明您希望根据《儿童在线隐私保护法》(COPPA) 的规定将您的内容视为面向儿童的内容。
  • tagForChildDirectedTreatment 设置为 NO,以表明您不希望根据《儿童在线隐私保护法》(COPPA) 的规定将您的内容视为面向儿童的内容。
  • 如果您不希望表明您想如何根据《儿童在线隐私保护法》(COPPA) 的规定来认定您的内容,请不要设置 tagForChildDirectedTreatment

Swift

GADMobileAds.sharedInstance.requestConfiguration.tag(forChildDirectedTreatment: true)

Objective-C

[GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment:YES];

设置此标记,即表示您确认此通知准确无误,且您有权代表应用的所有者行事。您了解,滥用此设置可能会导致您的 Google 帐号被终止。

您可以对广告请求进行标记,确保针对未达到法定承诺年龄的欧洲经济区 (EEA) 用户投放的是合适的广告。这项功能旨在帮助您遵守一般数据保护条例 (GDPR)。需要说明的是,您可能还须承担 GDPR 规定的其他法律义务。具体请查看欧盟发布的指导原则,并咨询您自己的法律顾问。另外请注意,Google 的工具旨在协助发布商遵守法规,但并不能免除任何特定发布商按照法律规定所需承担的义务。 详细了解 GDPR 给发布商带来了哪些影响

当使用这项功能时,将来的所有广告请求中都会包含一个标记 (TFUA) 参数,用于表示用户位于欧洲且未达到法定承诺年龄。此参数会禁止针对该特定广告请求投放个性化广告,包括再营销广告。它还禁止向第三方广告供应商(例如广告衡量像素和第三方广告服务器)发送请求。

通过在 GADMobileAds.requestConfiguration 对象上调用 tagForUnderAgeOfConsent 方法并传入 YES,该设置可用于所有版本的 Google 移动广告 SDK。

  • tagForUnderAgeOfConsent 设置为 YEStrue,以表明您希望按适合未达到法定承诺年龄的用户的方式处理广告请求。
  • 如果未设置 tagForUnderAgeOfConsent,则表明您不希望按适合未达到法定承诺年龄的用户的方式处理广告请求。

以下示例表明您希望广告请求中包含 TFUA 标记:

Swift

GADMobileAds.sharedInstance.requestConfiguration.tagForUnderAgeOfConsent(true);

Objective-C

[GADMobileAds.sharedInstance.requestConfiguration tagForUnderAgeOfConsent:YES];

不应将用于启用面向儿童的设置的标记和 tagForUnderAgeOfConsent 同时设置为 true。如果同时设置为 true,则以“面向儿童的设置”为准。

广告内容过滤

应用可以使用 GADRequestConfigurationmaxAdContentRating 属性为所有广告请求设置广告内容分级上限。此上限设置适用于该会话余下部分未来的所有广告请求。 此属性可能的值依数字内容标签分类而定,并应该是以下常量之一:

  • GADMaxAdContentRatingGeneral
  • GADMaxAdContentRatingParentalGuidance
  • GADMaxAdContentRatingTeen
  • GADMaxAdContentRatingMatureAudience

以下代码会配置所有广告请求,以指定返回的广告内容所对应的数字内容标签不应高于 GADMaxAdContentRatingGeneral

Swift

GADMobileAds.sharedInstance.requestConfiguration.maxAdContentRating =
  GADMaxAdContentRatingGeneral

Objective-C

GADMobileAds.sharedInstance.requestConfiguration.maxAdContentRating =
  GADMaxAdContentRatingGeneral;

GADRequest

GADRequest 对象可收集随广告请求一起发生的定位信息。

位置

如果您的应用已被用户授予位置权限,则位置数据会自动传递给 SDK。SDK 会使用此数据来改进广告定位,而不需更改应用中的任何代码。当然,您可以为广告启用或停用位置数据

自动填充的地理位置信息不会转发到中介广告联盟,而且还可能会被完全停用。因此,SDK 提供了手动设置地理位置的功能。

获得用户的地理位置后,您可以在 GADRequest 中指定地理位置定位信息,如下所示:

Swift

let request = GADRequest()
if let currentLocation = locationManager.location {
  request.setLocationWithLatitude(CGFloat(currentLocation.coordinate.latitude),
      longitude: CGFloat(currentLocation.coordinate.longitude),
      accuracy: CGFloat(currentLocation.horizontalAccuracy))
}

Objective-C

GADRequest *request = [GADRequest request];
CLLocation *currentLocation = locationManager.location;
if (currentLocation) {
  [request setLocationWithLatitude:currentLocation.coordinate.latitude
                         longitude:currentLocation.coordinate.longitude
                          accuracy:currentLocation.horizontalAccuracy];
}

出于对用户隐私权的尊重,Google 要求所指定的地理位置必须来自您的应用已在使用的信息。

内容网址

在请求广告时,应用可能会传递自身正在投放的内容的网址。这样就能进行关键字定位,从而将广告与内容进行匹配。

例如,如果您的应用在显示来自 https://www.example.com 内容时请求广告,则可传递此网址定位相关的关键字:

Swift

let request = GADRequest()
request.contentURL = "https://www.example.com"

Objective-C

GADRequest *request = [GADRequest request];
request.contentURL = @"https://www.example.com";

利用定位加载广告

设置所有请求定位信息后,请使用 GADRequest 实例在 GADBannerView 上调用 loadRequest

Swift

let request = GADRequest()
request.contentURL = "https://www.example.com"
adView.loadRequest(request)

Objective-C

GADRequest *request = [GADRequest request];
request.contentURL = @"https://www.example.com";
[self.adView loadRequest:request];

有关 iOS API Demo 应用中广告定位的实现方式,请参阅 AdMob 广告定位示例。

Objective-C Swift

常见问题解答

是否可以使用 request.testDevices 发布应用?
可以。测试广告仅在您指定的具体设备上展示,因此您的所有用户仍会收到发布的广告。
当广告自动刷新时会使用什么定位?
广告刷新时,之前指定的 GADRequest 对象会再次用于定位。要设置新定位,请使用新的 GADRequest 对象显式调用 GADBannerViewloadRequest
如何将更多定位参数传递到中介广告联盟?
有关如何将定位信息发送到中介广告联盟的详情,请参阅中介