在向Apple App Review和广告标识符提交新应用或应用更新时,我们必须在iTunes Connect中进行选择。最后一个复选框声明:
我,Jay Doe,确认此应用以及与此应用程序接口的任何第三方使用广告标识符检查并尊重用户在iOS中的限制广告跟踪设置,并且当用户启用此应用时除了iOS开发者计划许可协议中定义的“有限广告目的”之外,不使用广告标识符以及通过使用广告标识符获得的任何信息。
我们正在使用Facebook SDK来跟踪应用安装。我没有在Facebook开发者门户网站上找到任何关于此的信息。我发现的只有:
Facebook的iOS SDK是否可以访问IDFA?
Facebook SDK包含访问Apple广告标识符(IDFA)的代码,但该代码仅在某些情况下执行。
适用于iOS的Facebook SDK仅在以下情况下访问IDFA:
1)如果您的应用通过Facebook的受众群体网络在应用内投放广告,或2)如果您的应用会记录应用安装或其他移动应用事件,以便将这些事件归因于您的广告系列。如果您没有使用FBSDKAppEvents类记录App Events,则Facebook SDK不会访问IDFA。此外,Facebook SDK不需要包含AdSupport.framework。
如果您想在不收集IDFA的情况下跟踪应用事件,可以在高级设置部分的应用信息中心内禁用IDFA收集。
我怀疑Facebook不尊重这条规则,因为我在他们的SDK中没有找到advertisingTrackingEnabled
bool。我发现的是:
+ (NSString *)advertiserID
{
NSString *result = nil;
Class ASIdentifierManagerClass = fbsdkdfl_ASIdentifierManagerClass();
if ([ASIdentifierManagerClass class]) {
ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
result = [[manager advertisingIdentifier] UUIDString];
}
return result;
}
我正在使用以下pod:
pod 'FBSDKCoreKit'
答案 0 :(得分:1)
我刚发现了这个。
+ (FBSDKAdvertisingTrackingStatus)advertisingTrackingStatus
{
static dispatch_once_t fetchAdvertisingTrackingStatusOnce;
static FBSDKAdvertisingTrackingStatus status;
dispatch_once(&fetchAdvertisingTrackingStatusOnce, ^{
status = FBSDKAdvertisingTrackingUnspecified;
Class ASIdentifierManagerClass = fbsdkdfl_ASIdentifierManagerClass();
if ([ASIdentifierManagerClass class]) {
ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
if (manager) {
status = [manager isAdvertisingTrackingEnabled] ? FBSDKAdvertisingTrackingAllowed : FBSDKAdvertisingTrackingDisallowed;
}
}
});
return status;
}
这让我很开心,看起来Facebook正确地做了一切。
我无法找到布尔值的原因是is
中的isAdvertisingTrackingEnabled
前缀。