2012-10-18 3 views
16

Ich bin dabei, die Unterstützung für das Tracking der neuen mobilen App-Anzeigen von Facebook zu integrieren.Wohin genau soll ich den Anruf an [FBSettings publishInstall: appId] senden?

ich das Tutorial hier gelesen habe: https://developers.facebook.com/docs/tutorials/mobile-app-ads/

Dort heißt es:

den folgenden Code Fügen Sie ausgeführt werden, wenn Ihre Anwendung durch den Benutzer zum ersten Mal öffnet

[FBSettings publishInstall:appId]; 

Also die erste Frage ist - wo stelle ich das so, dass es nur den Anruf aufruft, wenn die Installation von Face gefahren wurde Buch? Ich möchte nicht, dass FB jemanden für jemanden anerkennt, der meine App selbst im App Store gefunden hat.

Muss ich manuell nachverfolgen, ob ich den publishInstall zuvor für diesen bestimmten Benutzer aufgerufen habe? (Der Präambelsatz impliziert dies - aber die SDK-Dokumentation für publishInstall impliziert ansonsten).

Und noch verwirrender ist, dass die SDK FBSettings-Referenz enthält shouldAutoPublishInstall, die standardmäßig auf YES. Dies würde bedeuten, dass ich nichts anderes tun muss, als das SDK integriert zu haben. Warum erwähnt das Tutorial das nicht als Option?

Ich nehme an, dass die AppId die zugehörige Facebook AppId ist (im Gegensatz zur App Store App ID). Dies ist auch nicht aus der Dokumentation ersichtlich.

+1

Sie weitere Informationen im Zusammenhang mit dieser erfahren? Ich möchte publishInstall verwenden, um Installationen zu verfolgen, möchte aber keine Art von Facebook-Login implementieren. Ich sehe auch ein Problem, bei dem auf iOS 6+ das Facebook SDK abstürzt, wenn es über die publishInstall-Zeile hinausgeht. –

Antwort

7

Ich durchsucht die Quellen von Facebook iOS SDK, und es scheint, dass Guide falsch ist.

Sie haben recht, dass autoPublishInstall standardmäßig auf YES eingestellt ist, was bedeutet, dass wir [FBSettings publishInstall:appId]; nicht manuell aufrufen müssen. AppId ist in der Tat die Facebook App ID.

Wenn Sie openActiveSessionWith.... Methode aufrufen, initialisiert er FBSession mit initWithAppID:permissions:defaultAudience:urlSchemeSuffix:tokenCacheStrategy: die am Ende enthält [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]; 
     }); 
    } 
} 

Technisch sollte es die aus dem System installieren berichten (wenn ich nicht etwas fehlt). Ich werde heute ein wenig mehr damit spielen, um zu sehen, ob es wie erwartet funktioniert und die Antwort mit Ergebnissen aktualisieren.

+1

Sie haben Recht, wenn Sie Facebook Login implementieren, sollte die Veröffentlichung automatisch für Sie eingerichtet werden. Sie müssen also keinen Code hinzufügen, der über die offenen Methoden hinausgeht. –

6
  1. Setzen Sie ihn einfach an -[application:didFinishLaunchingWithOptions].

  2. Nicht alle Apps möchten den Facebook-Login integrieren. Sie möchten nur die Funktion "Mobile App Install Ads". Für diese Art von App sollten sie +[FBSettings publishInstall:appId] manuell aufrufen. Auf der anderen Seite, wenn Ihre App Facebook-Login bereits integriert hat, können Sie davon ausgehen, dass die FB sdk die Installation veröffentlicht hat.

3

Wenn wir müssen nur

[FBSettings publishInstall:appId]; 

manuell

-[application:didFinishLaunchingWithOptions] 

wie werde ich erkennen, welche von Facebook passiert Installation in

setzen? Ich möchte nicht, dass FB jemanden für jemanden anerkennt, der meine App selbst im App Store gefunden hat.

2

setzen Sie den Code in AppDelegate DidbecomeActive Methode

- (void)applicationDidBecomeActive:(UIApplication *)application 

Hoffnung diese Hilfe :)

+0

Dies ist entsprechend ihrer Dokumentation: Das SDK 3.1 verfügt über eine Methode in der FBSettings-Klasse mit dem Namen publishInstall: Diese sendet ein install-Ereignis asynchron an Facebook, wenn es aufgerufen wird. Fügen Sie es in die applicationDidBecomeActive: Methode Ihres App-Delegaten ein. https://developers.facebook.com/docs/ios/upgrading-from-2.0-bis-3.1/ –

Verwandte Themen