Где именно я должен поместить вызов в [FBSettings publishInstall: appId] - программирование
Подтвердить что ты не робот

Где именно я должен поместить вызов в [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). Это также не ясно из документации.

4b9b3361

Ответ 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

надеюсь, что эта помощь:)