我认为我没有从 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
}
}
确保您的实现使用正确的
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 广告文档,这是错误的
尝试一下,如果您以这种方式实现后遇到问题,请立即告诉我。