[英]Facebook ios sdk in iOS 14.5 can not send app events
我为我的游戏开发了一个 sdk。 在 ios 14 下,一切正常,我可以在 facebook 中看到事件分析和业务事件管理器。 但是在ios 14上面,什么也看不到。 我尝试什么:
- 添加 Ska.network 信息到 Info.plist:
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v9wttpbfk9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n38lu8286q.skadnetwork</string>
</dict>
</array>
-整合facebook sdk:
添加facebook的app id,facebook的client token
+ (void) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[FBSDKApplicationDelegate sharedInstance] application:application
didFinishLaunchingWithOptions:launchOptions];
[AppsFlyerLib shared].delegate = SDK.self;
[AppsFlyerLib shared].isDebug = false;
[FIRApp configure];
// [FIRMessaging messaging].delegate = SDK.self;
if (@available(iOS 10.0, *)) {
// iOS 10 or later
// For iOS 10 display notification (sent via APNS)
[UNUserNotificationCenter currentNotificationCenter].delegate = ESGameSDK.self;
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter]
requestAuthorizationWithOptions:authOptions
completionHandler:^(BOOL granted, NSError * _Nullable error) {
// ...
}];
} else {
// iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
UIUserNotificationType allNotificationTypes =
(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
UIUserNotificationSettings *settings =
[UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
[application registerUserNotificationSettings:settings];
}
[application registerForRemoteNotifications];
/**
[FBSDKSettings enableLoggingBehavior:FBSDKLoggingBehaviorAppEvents];
[FBSDKSettings setAdvertiserIDCollectionEnabled:TRUE];
[FBSDKSettings setAdvertiserTrackingEnabled:TRUE];
[FBSDKSettings setAutoLogAppEventsEnabled:YES];
*/
if (@available(iOS 14, *)) {
//if(ATTrackingManager.trackingAuthorizationStatus == ATTrackingManagerAuthorizationStatusAuthorized)
//[FBSDKSettings setAdvertiserTrackingEnabled:TRUE];
//else{
//[FBSDKSettings setAdvertiserTrackingEnabled:NO];
//}
} else {
//[FBSDKSettings setAdvertiserTrackingEnabled:TRUE];
}
/**
[SDK checkTrackingAuthorization:^(bool status) {
[TrackingHelper firstAppLaunch];
//[FBSDKAppEvents logEvent:@"tracking_authorized"];
}];
*/
if (launchOptions[UIApplicationLaunchOptionsURLKey] == nil) {
[FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) {
if (error) {
NSLog(@"Received error while fetching deferred app link %@", error);
}
if (url) {
[[UIApplication sharedApplication] openURL:url];
}
}];
}
}
+(void)checkTrackingAuthorization:(void(^)(bool status))callback{
if (@available(iOS 14.5, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
NSLog(@" ATTrackingManagerAuthorizationStatus %lu",(unsigned long)status);
NSLog(@" ATTrackingManagerAuthorizationStatus %lu",(unsigned long)ATTrackingManagerAuthorizationStatusAuthorized);
bool rs = status == ATTrackingManagerAuthorizationStatusAuthorized;
if(rs){
[FBSDKSettings setAdvertiserTrackingEnabled:YES];
}else{
//[FBSKSettings setAdvertiserTrackingEnabled:NO];
}
callback(true);
}];
} else {
callback(true);
}
}
+ (BOOL) application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
[[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
];
[[GIDSignIn sharedInstance] handleURL:url ];
[[AppsFlyerLib shared] handleOpenUrl:url options:options];
return true;
}
+ (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
[[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
];
[[GIDSignIn sharedInstance] handleURL:url];
[[AppsFlyerLib shared] handleOpenURL:url sourceApplication:sourceApplication withAnnotation:annotation];
return true;
}
+ (void) applicationDidBecomeActive:(UIApplication *)application {
/**
[FBSDKSettings setAdvertiserIDCollectionEnabled:TRUE];
[FBSDKSettings setAutoLogAppEventsEnabled:TRUE];
//[FBSDKSettings setAdvertiserTrackingEnabled:TRUE];
*/
[[AppsFlyerLib shared] start];
[SDK checkTrackingAuthorization:^(bool status) {
[TrackingHelper firstAppLaunch];
//[FBSDKAppEvents logEvent:@"tracking_authorized"];
}];
}
- 并像这样发送应用程序事件:
[FBSDKAppEvents logEvent:@"register" valueToSum:1 parameters:@{
@"uId":user.name,
@"provider":user.provider
}];
注意:我用的是 facebook sdk 11.
我想念什么吗? 对不起,我的英语不好。
这是一个未记录的问题,由您在 iOS14+ 设备上禁用跟踪引起。
Go 至 iOS 设置 > 隐私 > 跟踪 > 启用跟踪; 启动 facebook 应用程序并等待它提示允许跟踪和接受。 如果它没有 go 到 iOS 设置 > facebook > 跟踪并打开然后重新启动 fb 应用程序片刻。 现在重新启动您的应用程序,事件将触发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.