我正在考虑整合支持跟踪Facebook的新移动应用广告.
我在这里阅读了教程:https: //developers.facebook.com/docs/tutorials/mobile-app-ads/
它说:
当您的应用首次由用户打开时,请包含以下代码
Run Code Online (Sandbox Code Playgroud)[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 app 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];
});
}
}
Run Code Online (Sandbox Code Playgroud)
从技术上讲,它应该开箱即可报告安装(如果我没有遗漏的话).今天我将更多地使用它来查看它是否按预期工作并更新结果的答案.
把它放在-[application:didFinishLaunchingWithOptions]
.
并非所有应用都希望整合Facebook登录.他们只想要"移动应用安装广告"功能.对于这类应用,他们应该+[FBSettings publishInstall:appId]
手动调用.另一方面,如果您的应用已经集成了facebook登录,您可以假设FB sdk已发布安装.
归档时间: |
|
查看次数: |
3826 次 |
最近记录: |