2012-10-18 14 views
16

Sto cercando di integrare il supporto per il monitoraggio dei nuovi annunci di app per dispositivi mobili di Facebook.Dove esattamente dovrei mettere la chiamata a [FBSettings publishInstall: appId]

Ho letto il tutorial qui: https://developers.facebook.com/docs/tutorials/mobile-app-ads/

Dice:

includere il seguente codice da eseguire quando la vostra applicazione si apre per la prima volta dall'utente

[FBSettings publishInstall:appId]; 

Quindi la prima domanda è - dove inserisco questo in modo che invochi solo la chiamata se l'installazione è stata guidata da Face libro? Non voglio che FB ottenga credito per qualcuno che ha trovato la mia app da sola nell'app store.

Devo tracciare manualmente se ho già chiamato publishInstall per questo specifico utente? (La frase del preambolo implica questo - ma la documentazione SDK per publishInstall implica diversamente).

E ancora più confuso è che il riferimento SDK FBSettings include shouldAutoPublishInstall che per impostazione predefinita è YES. Questo suggerirebbe che non ho bisogno di fare altro che avere l'SDK integrato. Quindi, perché il tutorial non menziona questo come un'opzione?

Suppongo che l'appId sia l'appId Facebook associata (al contrario dell'ID app store). Anche questo non è chiaro dalla documentazione.

+1

Hai scoperto tutte le ulteriori informazioni relative a questo? Voglio usare publishInstall per tracciare le installazioni, ma non voglio implementare alcun tipo di accesso a Facebook. Sto anche assistendo a un problema in cui su iOS 6+ l'SDK di Facebook si arresta in modo anomalo quando passa sopra la riga publishInstall. –

risposta

7

Ho sfogliato le origini di Facebook iOS SDK e sembra che la guida sia errata.

Avete ragione, che autoPublishInstall è impostato su YES per impostazione predefinita, il che significa che non è necessario richiamare [FBSettings publishInstall:appId]; manualmente. AppId è infatti l'ID app di Facebook.

Quando si richiama openActiveSessionWith.... metodo, inizializza FBSession con initWithAppID:permissions:defaultAudience:urlSchemeSuffix:tokenCacheStrategy: che contiene alla fine [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]; 
     }); 
    } 
} 

Quindi tecnicamente dovrebbe segnalare l'installazione fuori dalla scatola (se non mi manca qualcosa). Ho intenzione di giocarci un po 'di più oggi per vedere se funziona come previsto e aggiornare la risposta con i risultati.

+1

Si è corretto, se si implementa l'accesso a Facebook, la pubblicazione dovrebbe essere impostata automaticamente. Quindi non devi aggiungere alcun codice oltre a chiamare i metodi aperti .... –

6
  1. Basta inserirlo a -[application:didFinishLaunchingWithOptions].

  2. Non tutte le app desiderano integrare il login di Facebook. Vogliono solo la funzione "annunci per l'installazione di app mobili". Per questo tipo di app, dovrebbero invocare manualmente +[FBSettings publishInstall:appId]. D'altra parte, se la tua app ha già integrato l'accesso a Facebook, puoi presumere che lo sdk FB abbia pubblicato l'installazione.

3

Se non ci resta che mettere

[FBSettings publishInstall:appId]; 

manualmente

-[application:didFinishLaunchingWithOptions] 

come farò a identificare quali installano successo da facebook? Non voglio che FB ottenga credito per qualcuno che ha trovato la mia app da sola nell'app store.

2

mettere il codice nel metodo di AppDelegate DidbecomeActive

- (void)applicationDidBecomeActive:(UIApplication *)application 

speranza questo aiuto :)

+0

Questo è secondo la loro documentazione: SDK 3.1 presenta un metodo nella classe FBSettings chiamato publishInstall: che esegue il ping in modo asincrono di un evento di installazione su Facebook quando viene richiamato. Includilo nell'applicazioneDidBecomeActive: metodo del delegato dell'app in questo modo. https://developers.facebook.com/docs/ios/upgrading-from-2.0-to-3.1/ –