2012-10-18 11 views
16

Czekam na integrację wsparcia dla śledzenia nowych reklam aplikacji mobilnych na Facebooku.Gdzie dokładnie powinienem umieścić wywołanie w [FBSettings publishInstall: appId]

Czytałem tutorial tutaj: https://developers.facebook.com/docs/tutorials/mobile-app-ads/

mówi:

zawierać następujący kod do wykonania po otwarciu aplikacji po raz pierwszy przez użytkownika

[FBSettings publishInstall:appId]; 

Pierwsze pytanie brzmi: gdzie umieścić to tak, aby wywoływał tylko połączenie, jeśli instalacja była prowadzona przez Face książka? Nie chcę, aby FB otrzymywał punkty dla osób, które znalazły moją aplikację w sklepie z aplikacjami.

Czy muszę ręcznie śledzić, czy wcześniej wywołałem instalację publiczną dla tego konkretnego użytkownika? (Z tego wynika to zdanie preambuły - ale dokumentacja SDK dla publishInstall sugeruje inaczej).

Jeszcze bardziej mylące jest to, że odwołanie SDK FBSettings obejmuje shouldAutoPublishInstall, które domyślnie jest YES. Sugerowałoby to, że nie muszę robić nic innego, jak tylko zintegrować SDK. Dlaczego tutorial nie wspomina o tym jako opcji?

Zakładam, że appId jest powiązaną aplikacją Facebook appId (w przeciwieństwie do App App App ID). Nie wynika to również z dokumentacji.

+1

Znalazłeś się wszelkie dodatkowe informacje związane z tym? Chcę używać publishInstall do śledzenia instalacji, ale nie chcę implementować żadnego rodzaju logowania do Facebooka. Widzę także problem, w którym na iOS 6+ pakiet SDK w serwisie Facebook ulega awarii podczas przeglądania linii publikuj. –

Odpowiedz

7

Przeglądałem źródła facebook SDK iOS i wydaje się, że przewodnik jest błędny.

Masz rację, że autoPublishInstall jest domyślnie ustawiony na YES, co oznacza, że ​​nie musimy ręcznie wywoływać [FBSettings publishInstall:appId];. AppId to w rzeczywistości identyfikator aplikacji Facebook.

Po wywołaniu openActiveSessionWith.... sposób, że inicjuje FBSession z initWithAppID:permissions:defaultAudience:urlSchemeSuffix:tokenCacheStrategy: który zawiera w końcu [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]; 
     }); 
    } 
} 

Więc technicznie powinien zgłosić instalacji po wyjęciu z pudełka (jeśli nie jestem czegoś brakuje). Zamierzam zagrać jeszcze trochę dzisiaj, aby sprawdzić, czy działa zgodnie z oczekiwaniami i zaktualizować odpowiedź z wynikami.

+1

Masz rację, jeśli zaimplementujesz Facebook Login, to publikowanie powinno być automatycznie skonfigurowane. Więc nie musisz dodawać żadnego kodu poza wywołaniem otwartych ... metod. –

6
  1. Po prostu umieść go pod adresem -[application:didFinishLaunchingWithOptions].

  2. Nie wszystkie aplikacje chcą zintegrować logowanie na Facebooku. Chcą tylko funkcji "reklam promujących instalację aplikacji mobilnych". W przypadku tego rodzaju aplikacji należy ręcznie wywołać +[FBSettings publishInstall:appId]. Z drugiej strony, jeśli twoja aplikacja ma już zintegrowane logowanie facebookowe, możesz założyć, że sdk FB opublikował instalację.

3

Jeśli wystarczy umieścić

[FBSettings publishInstall:appId]; 

ręcznie w

-[application:didFinishLaunchingWithOptions] 

jak będę zidentyfikować, które instalują się z Facebooka? Nie chcę, aby FB otrzymywał punkty dla osób, które znalazły moją aplikację w sklepie z aplikacjami.

2

umieścić kod w metodzie Appdelegate DidbecomeActive

- (void)applicationDidBecomeActive:(UIApplication *)application 

nadzieję, że ta pomoc :)

+0

Jest to zgodne z ich dokumentacją: SDK 3.1 zawiera metodę w klasie FBSettings o nazwie publishInstall: która asynchronicznie wysyła zdarzenie instalacyjne do Facebooka po jej wywołaniu. Włącz to w applicationDidBecomeActive: metoda delegowania aplikacji w ten sposób. https://developers.facebook.com/docs/ios/upgrading-from-2.0-to-3.1/ –

Powiązane problemy