最近帮小伙伴集成Facebook 的event自动打点,踩了好几个坑,记录下。
首先,根据关于Facebook官方提供的集成步骤在这:https://developers.facebook.com/docs/app-events/getting-started-app-events-ios
步骤一
先按照上面👆🏻的链接中所给的步骤操作完毕,这个文档里面的第六步
,也就是关联应用委托和场景委托只给了swift
部分的代码,oc的代码如下:
#import <FBSDKCoreKit/FBSDKCoreKit.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
return YES;
}
文档里的第七步:添加应用事件,这里一般使用自动记录事件
就可以,如果使用手动记录
,那么搜集到的数据可能和自动搜集的重复,重复的事件就会有两次搜集,造成数据不准确。
步骤二
也是在上述的文档中阐述过的:获取设备同意。也只是提供了swift的代码,oc的如下:
#import <AppTrackingTransparency/AppTrackingTransparency.h>
- (void)requestIDFA {
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
NSLog(@"%lu",(unsigned long)status);
if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
[[FBSDKSettings sharedSettings]setAdvertiserTrackingEnabled:YES];
}else{
[[FBSDKSettings sharedSettings]setAdvertiserTrackingEnabled:NO];
}
}];
} else {
// Fallback on earlier versions
}
}
这个是iOS14.5之后需要的,设备授权和拒绝分别调用YES 和NO,不要忘记在info.plist中添加相关的字段Privacy - Tracking Usage Description
。
步骤三
步骤三就是很坑的地方,上面文档到前两步就结束了,就到测试环节了,我们测的时候怎么也测不通,官方给的测试面板没反应。然后我们的FaceBook后台出现红色的惊叹号,如下:
就出来个
SKAdNetwork
,这个也是需要集成的,集成这个东西也踩了许多坑,不做赘述,找了好久才找到FaceBook官方的文档部分,上链接:Audience Network SDK按照我画红框的前五个步骤配置一下就行了。这里特别说明一下:我导入
FBAudienceNetwork
,通过pod的方式时,会报错,一直失败,于是我选的手动导入,如果你也一直失败换手动导入挺方便的。
结果
步骤三配置完毕后,我们后台的关于SKAdNetwork的叹号就消掉了。我们测试环境走它的测试流程并没有通,但是小伙伴上线了APP后,是可以搜集到事件的,因为查资料一部分开发者说也是测试情况不通,但是正式是没问题的,所以就上线试试。
总结
搞这个东西查了好多资料,附上相关的比较关键的超级链接,这里感谢这些作者的分享(😄我都点赞了👍🏻),才让我解决这个坑,不然可能会花费更长的时间。
参考链接: