测试环境
v.11.0.0
+预期结果
App事件--标准事件和自定义事件--都应该是iOS 14的记录。我们已经启用了AdvertiserTrackingEnabled by Settings.setAdvertiserTrackingEnabled(true)。我们已经检查了调试日志请求,saw SDK发送了事件成功。
+实际行为
即使我们确实设置了Settings.setAdvertiserTrackingEnabled(真)和调试日志请求成功发送事件。但它似乎没有被记录在仪表盘上。
发布于 2022-11-25 06:52:54
我已经为我的应用程序之一开发了这些Facebook,用于获取应用程序事件。在14,15,16岁以下的iOS中,一切正常。。
这些Facebook事件一旦应用程序在实际设备上运行就会出现,并且在该设备中已经安装了facebook应用程序及其登录,然后这些事件将出现在事件管理器中,否则将不会显示在事件管理器中。
NSUserTrackingUsageDescription ${PRODUCT_NAME}请允许跟踪用于为您提供更好和个性化的广告体验。CFBundleURLSchemes fb674454383521423
<key>FacebookAppID</key>
<string>674454383521423</string>
<key>FacebookClientToken</key>
<string>3067e472e89ff8d7c39a18f38d931301</string>
<key>FacebookDisplayName</key>
<string>AppName</string>
稍后在AppDelegate中,只需导入这两个框架并将这些代码添加到didFinshlunch方法中。
import FBSDKCoreKit
import AppTrackingTransparency
ApplicationDelegate.shared.initializeSDK()
Settings.shared.isAdvertiserTrackingEnabled = true
Settings.shared.enableLoggingBehavior(.appEvents)
Settings.shared.isAutoLogAppEventsEnabled = true
Settings.shared.isAdvertiserIDCollectionEnabled = true
Settings.shared.enableLoggingBehavior(.developerErrors)
Settings.shared.enableLoggingBehavior(.cacheErrors)
Settings.shared.enableLoggingBehavior(.uiControlErrors)
下一步,我们需要添加这些函数
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
if (url.scheme?.hasPrefix("fb"))! {
ApplicationDelegate.shared.application(
application,
open: url,
sourceApplication: sourceApplication,
annotation: annotation
)
}
}
在app委托中添加这些传输安全许可警报,并将这些函数调用为活动方法,否则就不使用午餐方法。
func getTrackingPermission() {
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Tracking authorization dialog was shown
// and we are authorized
Settings.shared.isAutoLogAppEventsEnabled = true
Settings.shared.isAdvertiserTrackingEnabled = true
print("Authorized")
// Now that we are authorized we can get the IDFA
print(ASIdentifierManager.shared().advertisingIdentifier)
case .denied:
Settings.shared.isAutoLogAppEventsEnabled = false
Settings.shared.isAdvertiserTrackingEnabled = false
// Tracking authorization dialog was
// shown and permission is denied
print("Denied")
case .notDetermined:
// Tracking authorization dialog has not been shown
print("Not Determined")
case .restricted:
print("Restricted")
@unknown default:
print("Unknown")
}
}
}
}
最后一步在app委托中添加了这些方法。
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
//AppUpdater.shared.showUpdate(withConfirmation: false)
if #available(iOS 15.0, *) {
ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
switch status{
case .authorized:
Settings.shared.isAutoLogAppEventsEnabled = true
Settings.shared.isAdvertiserTrackingEnabled = true
print(ASIdentifierManager.shared().advertisingIdentifier)
break
case .denied:
Settings.shared.isAutoLogAppEventsEnabled = false
Settings.shared.isAdvertiserTrackingEnabled = false
print(ASIdentifierManager.shared().advertisingIdentifier)
default:
break
}
})
}
AppEvents.shared.activateApp()
}
通过这种方式,我们可以编写事件,请在类中添加这些框架,并编写如下的事件
import FBSDKCoreKit
AppEvents.shared.logEvent(AppEvents.Name(FACEBOOK_EVENTS.paymentDone.rawValue))
var fbParams: [AppEvents.ParameterName : AppEvents.ParameterValue] = [:]
fbParams[AppEvents.ParameterName.content] = AppEvents.ParameterValue.init(rawValue: "10")
fbParams[AppEvents.ParameterName.init(rawValue: "number")] = AppEvents.ParameterValue.init(rawValue: "200")
AppEvents.shared.logEvent(AppEvents.Name.purchased, parameters: fbParams)
https://stackoverflow.com/questions/68181116
复制相似问题