繁体   English   中英

Facebook ios sdk in iOS 14.5无法发送app事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM