Где именно я должен поместить вызов в [FBSettings publishInstall: appId]
Я ищу интегрирующую поддержку для отслеживания новых объявлений мобильных приложений в Facebook.
Я прочитал учебник здесь:
https://developers.facebook.com/docs/tutorials/mobile-app-ads/
В нем говорится:
Включите следующий код для запуска, когда ваше приложение открывается в первый раз пользователем
[FBSettings publishInstall:appId];
Итак, первый вопрос: где я могу разместить это так, чтобы он вызывал вызов только в том случае, если установка была изгнана из Facebook? Я не хочу, чтобы FB получал кредит для тех, кто нашел мое приложение в магазине приложений.
Нужно ли вручную отслеживать, вызывал ли я раньше публикацию для этого конкретного пользователя? (В предложении преамбулы это подразумевается, но документация SDK для publishInstall подразумевает иное).
И еще более запутанным является то, что ссылка SDK FBSettings включает shouldAutoPublishInstall
, которая по умолчанию равна YES
. Это говорит о том, что мне не нужно ничего делать, кроме встроенного SDK. Итак, почему учебник не упоминает об этом в качестве опции?
Я предполагаю, что appId - связанное приложение Facebook (в отличие от App App App ID). Это также не ясно из документации.
Ответы
Ответ 1
Я просмотрел источники фейсбука iOS SDK, и кажется, что руководство неверно.
Вы правы, что autoPublishInstall
установлен на YES
по умолчанию, что означает, что нам не нужно вызывать [FBSettings publishInstall:appId];
вручную. AppId
действительно является идентификатором приложения facebook.
Когда вы вызываете метод 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];
});
}
}
Таким образом, технически он должен сообщать об установке из коробки (если я чего-то не пропускаю). Я собираюсь поиграть с ним немного больше сегодня, чтобы увидеть, работает ли он так, как ожидалось, и обновлять ответ с результатами.
Ответ 2
-
Просто поставьте его в -[application:didFinishLaunchingWithOptions]
.
-
Не все приложения хотят интегрировать вход в Facebook. Они хотят только функцию "объявления для установки мобильных приложений". Для такого приложения они должны вызывать +[FBSettings publishInstall:appId]
вручную. С другой стороны, если ваше приложение уже интегрировано в facebook, вы можете предположить, что FB sdk опубликовал установку.
Ответ 3
Если нам просто нужно положить
[FBSettings publishInstall:appId];
вручную в
-[application:didFinishLaunchingWithOptions]
как определить, какая установка произошла из facebook? Я не хочу, чтобы FB получал кредит для тех, кто нашел мое приложение в магазине приложений.
Ответ 4
введите код в метод Appdelegate DidbecomeActive
- (void)applicationDidBecomeActive:(UIApplication *)application
надеюсь, что эта помощь:)