我将 Facebook SDK 与 ATT 集成的代码正确吗?

问题描述 投票:0回答:1

我认为我没有从 Facebook 广告管理器报告中获得准确的安装数量。

是因为我的iOS应用程序没有实现ATT吗?

如果是,我可以知道这是正确的实现吗?

有关此内容的文档尚不清楚 - https://developers.facebook.com/docs/app-events/guides/advertising-tracking-enabled

我想知道,此代码片段是否足够正确,以便我可以在 Facebook Ad Manager 中获得更准确的报告?谢谢你。

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func requestTrackingPermission() {
        if #available(iOS 14, *), #available(iOS 17, *) {
            // For iOS 17 and later: ATT API is automatically used by Facebook SDK
            ATTrackingManager.requestTrackingAuthorization { status in
                switch status {
                case .authorized:
                    print("ATT authorized: Tracking enabled automatically by Facebook SDK for iOS 17+.")
                    
                case .denied, .restricted:
                    print("ATT denied/restricted: Tracking disabled automatically by Facebook SDK for iOS 17+.")
                    
                case .notDetermined:
                    print("ATT not determined: No action, default to disabled.")
                    
                @unknown default:
                    print("ATT unknown status: No action, default to disabled.")
                }
            }
        } else if #available(iOS 14, *) {
            // For iOS 14 to iOS 16: Manually set Advertiser Tracking Enabled parameter
            ATTrackingManager.requestTrackingAuthorization { status in
                switch status {
                case .authorized:
                    Settings.shared.isAdvertiserTrackingEnabled = true
                    print("ATT authorized: Tracking enabled.")
                    
                case .denied, .restricted:
                    Settings.shared.isAdvertiserTrackingEnabled = false
                    print("ATT denied/restricted: Tracking disabled.")
                    
                case .notDetermined:
                    Settings.shared.isAdvertiserTrackingEnabled = false
                    print("ATT not determined: Defaulting to tracking disabled.")
                    
                @unknown default:
                    Settings.shared.isAdvertiserTrackingEnabled = false
                    print("ATT unknown status: Defaulting to tracking disabled.")
                }
            }
        }
    }

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        ////////////////////////////////////////////////////////////////////////////////////////////
        /// FACEBOOK
        ////////////////////////////////////////////////////////////////////////////////////////////
        ///
        // https://developers.facebook.com/docs/app-events/getting-started-app-events-ios
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        // Request Tracking Permission
        requestTrackingPermission()

        return true
    }
}
ios swift facebook facebook-ios-sdk facebook-ios-sdk-4.0
1个回答
0
投票

enter image description here

确保您的实现使用正确的

FBSDK
iOS
版本以及文档中的类似标志,有两个不同的标志与 17.0 和 17.0 以下以及 17.0 以上的不同版本一起使用

对于低于 17.0 和 17.0 使用此标志

FBAdSettings.setAdvertiserTrackingEnabled(true)

对于 17.0 以上使用此标志

Settings.shared.isAdvertiserTrackingEnabled = true

适用于 iOS 17.0.0 或更高版本的 FB SDK 指南

对于 iOS 17.0 及更高版本的设备,您不再需要为 Facebook SDK for iOS 17.0.0 及更高版本设置广告商跟踪启用参数。我们现在依靠 Apple 的应用程序跟踪透明度 (ATT) 系统 API 来确定通过 Facebook SDK for iOS 17.0.0 及更高版本发送的应用程序事件的 ATT 权限状态。

在您的代码中,您使用

Settings.shared.isAdvertiserTrackingEnabled = true
表示
iOS 14 to 16
,根据 FB 广告文档

,这是错误的

尝试一下,如果您以这种方式实现后遇到问题,请立即告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.