我正在考虑集成对跟踪 Facebook 新移动应用广告的支持。
我在这里阅读了教程: https://developers.facebook.com/docs/tutorials/mobile-app-ads/
它说:
Include the following code to be executed when your app opens for the first time by user
[FBSettings publishInstall:appId];
所以第一个问题是 - 我应该把它放在哪里,以便它只在安装是从 Facebook 驱动时调用调用?我不希望 FB 因在应用商店中自己找到我的应用的人而获得荣誉。
我是否需要手动跟踪之前是否为该特定用户调用过 publishInstall? (序言句暗示了这一点 - 但 publishInstall 的 SDK 文档另有暗示)。
更令人困惑的是,SDK FBSettings 引用包括 shouldAutoPublishInstall
,默认为 YES
。这表明除了集成 SDK 之外我不需要做任何事情。那么,为什么本教程没有将此作为选项提及呢?
我假设 appId 是关联的 Facebook appId(与 App Store App ID 相对)。文档中也不清楚这一点。
最佳答案
我浏览了 facebook iOS SDK 的源代码,似乎指南是错误的。
你是对的,autoPublishInstall
默认设置为 YES
,这意味着我们不需要调用 [FBSettings publishInstall:appId];
手动。 AppId
确实是 facebook 应用程序 ID。
当您调用 openActiveSessionWith....
方法时,它会初始化 FBSession
initWithAppID:permissions:defaultAudience:urlSchemeSuffix:tokenCacheStrategy:
最后包含 [FBSettings autoPublishInstall:self.appID];
+ (void)autoPublishInstall:(NSString *)appID {
if ([FBSettings shouldAutoPublishInstall]) {
dispatch_once(&g_publishInstallOnceToken, ^{
// dispatch_once is great, but not re-entrant. Inside publishInstall we use FBRequest, which will
// cause this function to get invoked a second time. By scheduling the work, we can sidestep the problem.
[[FBSettings class] performSelector:@selector(publishInstall:) withObject:appID afterDelay:FBPublishDelay];
});
}
}
所以从技术上讲,它应该报告开箱即用的安装(如果我没有遗漏任何东西)。我今天要多玩一会儿,看看它是否按预期工作,并用结果更新答案。
关于ios - 我到底应该在哪里调用 [FBSettings publishInstall :appId],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12955259/