2016-08-31 36 views
0

當向Apple App Review和廣告標識符提交新應用程序或應用程序更新時,我們必須在iTunes Connect中進行選擇。最後一個複選框聲明:Facebook尊重不追蹤?

我,周杰倫DOE,確認這個程序,任何第三方使用這個應用程序接口,使用廣告識別碼的檢查和榮譽用戶的限制廣告跟蹤在iOS的設置,當它由用戶啓用,此應用程序不以任何方式使用廣告標識符以及通過使用廣告標識符獲得的任何信息,除非iOS開發人員計劃許可協議中定義的「有限廣告目的」。

我們使用Facebook SDK來跟蹤應用程序安裝。我在Facebook開發者門戶網站上沒有找到任何有關此信息。我發現的所有內容都是這樣的:

Facebook的iOS SDK是否可以訪問IDFA?

Facebook SDK包含訪問Apple廣告標識符(IDFA)的代碼,但該代碼僅在特定情況下執行。

Facebook的SDK適用於iOS只訪問IDFA包含在以下場景:
1)如果您的應用程序通過Facebook的觀衆走秀網在應用程序內的廣告,或者2)如果您的應用程序日誌,應用程序安裝或以其他移動應用程序活動將這些事件歸因於您的廣告系列。

如果您未將App Events記錄到FBSDKAppEvents類中,那麼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 'FBSDKCoreKit' 

回答

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做的一切都是正確的。

我無法找到布爾值的原因是isAdvertisingTrackingEnabled中的is前綴。