Erste Schritte mit App-Events in iOS

In diesem Leitfaden erfährst du, wie du App-Events zu deiner neuen oder bestehenden App hinzufügst. Hierzu musst du das Facebook-SDK integrieren und dann diese Events protokollieren.

Wir haben Änderungen am Facebook-iOS-SDK vorgenommen. Wir empfehlen ein Upgrade auf die neue Version des Facebook-iOS-SDK. Weitere Informationen zu dieser Änderung findest du im Abschnitt zur Geräteeinwilligung.

Bevor du loslegst

Voraussetzungen:

Schritt 1: Konfiguriere deine Facebook-App

Navigiere zum App-Dashboard, klicke auf Meine Apps und erstelle eine neue App, wenn du noch keine hast. Gehe zu Einstellungen > Allgemeines, um das Fenster App-Details mit deiner App-ID, deinem App-Geheimcode und anderen Details zu deiner App aufzurufen.

Scrolle zum Ende der Seite und klicke auf Plattform hinzufügen. Wähle iOS aus, füge die Informationen zu deiner App hinzu und speichere deine Änderungen.

Gib die folgenden Details an, um deine App für Werbeanzeigen einzurichten:

  • App-Domains: Gib die Apple App Store-URL für deine App an.
  • URL zur Datenrichtlinie: Gib eine Datenrichtlinien-URL an. Diese ist erforderlich, damit deine App veröffentlicht werden kann.
  • URL zu Nutzungsbedingungen: Gib eine Nutzungsbedingungen-URL an.
  • Plattform: Scrolle im Fenster „Einstellungen“ nach unten, um die iOS-Plattform hinzuzufügen.

Sieh dir die Dokumentation zur App-Entwicklung an, wenn du weitere Details wie ein Symbol oder eine Kategorie zu deiner App hinzufügen möchtest.

Schritt 2: Verknüpfe deine Anzeigen- und Business-Portfolios

Um Werbeanzeigen zu schalten und Installationen im Werbeanzeigenmanager zu messen, musst du mindestens ein Werbekonto und ein Business-Portfolio mit deiner App verknüpfen.

  1. Klicke im App-Dashboard auf Einstellungen > Erweitert.
  2. Füge deine Werbekonten-IDs unter Autorisierte Werbekonten-IDs hinzu. Du kannst deine Werbekonten-IDs vom Werbeanzeigenmanager abrufen.
  3. Klicke im Bereich Werbekonten auf Los geht's und befolge die Anweisungen, um die App mit einem Unternehmen zu verknüpfen.

Schritt 3: Richte deine Entwicklungsumgebung ein

In der nachstehenden Vorgehensweise richtest du deine Entwicklungsumgebung in Xcode mit dem Swift Package Manager ein.

  1. Klicke in Xcode auf File > Add Packages....
  2. Gib im angezeigten Suchfeld die Repository-URL ein: https://github.com/facebook/facebook-ios-sdk.
  3. Wähle in Dependency Rule die Option Up to Next Major Version aus und gib eine aktuelle Version ein. Die aktuelle Version findest du unter https://github.com/facebook/facebook-ios-sdk/releases/.
  4. Wähle die gewünschten Bibliotheken und die Ziele aus, denen du diese Bibliotheken hinzufügen möchtest.
  5. Klicke auf Add Package, um das Setup abzuschließen.

Schritt 4: Registriere und konfiguriere deine App für Facebook

  1. Scrolle im App-Dashboard unter App-Einstellungen > Allgemeines nach unten und klicke auf + Plattform hinzufügen.
  2. Scrolle nach unten zur iOS-Karte und füge deine Bundle-ID hinzu. Deine Bundle-ID findest du im iOS-App-Ziel deines XCode-Projekts. Du kannst deine Bundle-ID jederzeit aktualisieren.

Schritt 5: Konfiguriere dein Projekt

Konfiguriere die Datei Info.plist mit einem XML-Ausschnitt, der Daten zu deiner App enthält.

Nachdem du Facebook Login integriert hast, werden App-Events automatisch für den Events Manager protokolliert und erfasst, es sei denn, du deaktivierst die automatische Protokollierung von App-Events. Detaillierte Informationen dazu, welche Daten erfasst werden und wie du die automatische Protokollierung von App-Events deaktivierst, findest du im Abschnitt Automatische Protokollierung von App-Events.

  1. Klicke mit der rechten Maustaste auf Info.plist und wähle „Öffnen als ▸ Quellcode“ aus.
  2. Kopiere den folgenden XML-Ausschnitt und füge ihn in den Textkörper deiner Datei ein (<dict>...</dict>).
    <key>CFBundleURLTypes</key><array><dict><key>CFBundleURLSchemes</key><array><string>fbAPP-ID</string></array></dict></array><key>FacebookAppID</key><string>APP-ID</string><key>FacebookClientToken</key><string>CLIENT-TOKEN</string><key>FacebookDisplayName</key><string>APP-NAME</string>
  3. Ersetze in <array><string> im Key [CFBundleURLSchemes]APP-ID durch deine App-ID.
  4. Ersetze in <string> im Key FacebookAppIDAPP-ID durch deine App-ID.
  5. Ersetze in <string> im Key FacebookClientTokenCLIENT-TOKEN durch den Wert, den du in deinem App-Dashboard unter Einstellungen > Erweitert > Client Token findest.
  6. Ersetze in <string> im Key FacebookDisplayNameAPP-NAME durch den Namen deiner App.
  7. Wenn du Facebook-Dialoge (wie z. B. „Login“, „Teilen“ oder „App-Einladungen“) verwendest, die einen App-Wechsel zu Facebook-Apps durchführen können, muss die Info.plist-Datei deiner App ebenfalls Folgendes aufweisen:
    <key>LSApplicationQueriesSchemes</key><array><string>fbapi</string><string>fb-messenger-share-api</string></array>

Du kannst die automatische Erfassung von App-Events direkt auf „true“ oder „false“ setzen, indem du FacebookAutoLogAppEventsEnabled als Schlüssel in Info.plist hinzufügst.

Du musst in deinem Projekt die Funktion „Schlüsselbund teilen“ aufnehmen, damit die Anmeldung in Mac Catalyst-Anwendungen funktioniert.

  1. Wähle den Button + Funktion im Tab Anmeldung und Funktionen, wenn du dein App-Ziel konfigurierst.
  2. Wähle die Funktion Schlüsselbund teilen aus.
  3. Stelle sicher, dass die Funktion Schlüsselbund teilen für das Ziel aufgeführt ist.

Schritt 6: Verbinde deinen App Delegate und Scene Delegate

Ersetze den Code in der Methode AppDelegate.swift durch folgenden Code. Dieser Code initialisiert das SDK beim Start der App und ermöglicht dem SDK, die Anmeldungen und Teilen-Vorgänge aus der nativen Facebook-App zu verarbeiten, wenn du einen Anmelde- oder Teilen-Vorgang durchführst. Ansonsten muss der*die Nutzer*in bei Facebook angemeldet sein, um den Browser in der App für die Anmeldung zu verwenden.

  
// AppDelegate.swift
import UIKit
import FBSDKCoreKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {    
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {          
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        return true
    }
          
    func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
        ApplicationDelegate.shared.application(
            app,
            open: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
    }  
}

iOS 13 hat die Funktionalität zum Öffnen der URL auf SceneDelegate verschoben. Wenn du iOS 13 verwendest, füge die folgende Methode zu deinem SceneDelegate hinzu, damit Vorgänge wie das Anmelden oder Teilen wie gewünscht funktionieren:

 
// SceneDelegate.swift
import FBSDKCoreKit
  ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

Schritt 7: Füge App-Events hinzu

Es gibt drei Möglichkeiten, Events in deiner App zu tracken:

App Store Connect für iOS 14

Weil deine App Events erfasst und an Facebook sendet, musst du eventuell diese Datentypen im Fragebogen zu App Store Connect angeben. Du bist dafür verantwortlich, die Datenschutzrichtlinie deiner Anwendung entsprechend zu gestalten. Im Artikel zum Datenschutz im Apple App Store erfährst du mehr über die Datentypen, die du angeben musst.

Automatisch protokollierte Events

Wenn du das Facebook-SDK verwendest, werden bestimmte Events in deiner App automatisch für Facebook Analytics protokolliert und erfasst, es sei denn, du deaktivierst die automatische Event-Protokollierung. Diese Events sind für alle Anwendungsfälle relevant, wie Targeting, Messung und Optimierung.

Im Rahmen der automatischen App-Event-Protokollierung werden drei Haupt-Events erfasst: App-Installation, App-Launch und Kauf. Mit der Aktivierung der automatischen Protokollierung können Werbetreibende diese Events und andere interne Facebook-Events wie beispielsweise Login-Impression-Events deaktivieren. Wenn du jedoch die automatische Protokollierung deaktiviert hast und dennoch bestimmte Events protokollieren möchtest wie zum Beispiel Installations- und Kauf-Events kannst du die Protokollierung für diese Events in deiner App manuell implementieren.

EventDetails

App-Installation

Wenn ein neuer Nutzer erstmalig eine App aktiviert oder wenn eine App erstmalig auf einem bestimmten Gerät gestartet wird.

App-Launch

Wenn eine Person deine App startet, wird das Facebook-SDK initialisiert und das Event wird protokolliert. Tritt jedoch ein zweites App-Launch-Event innerhalb von 60 Sekunden nach dem ersten ein, wird das zweite App-Launch-Event nicht protokolliert.

App-interner Kauf

Wenn ein von Apple App Store oder Google Play verarbeiteter Kauf abgeschlossen wurde. Wenn du andere Zahlungsplattformen verwendest, musst du den Code für das Kauf-Event manuell hinzufügen.

Absturzbericht für das Facebook-SDK

(Nur zur Facebook-Verwendung.)

Wenn deine App wegen des Facebook-SDK abgestürzt ist, wird ein Absturzbericht generiert und bei Neustart der App an Facebook gesendet. Dieser Bericht enthält keine Nutzer*innendaten und unterstützt Facebook dabei, die Qualität und Stabilität des SDK sicherzustellen. Wenn du dieses Event nicht mehr protokollieren möchtest, deaktiviere automatisch protokollierte Events.

Automatisch protokollierte Events für In-App-Käufe

Apple bietet vier verschiedene Arten von In-App-Käufen an: verbrauchbar, nicht verbrauchbar, automatisch verlängerbare Abonnements und nicht verlängerbare Abonnements. Wenn du In-App-Käufe mit StoreKit 1 implementierst, protokollieren wir automatisch jede dieser Arten von In-App-Käufen. Wenn du In-App-Käufe mit StoreKit 2 implementierst, protokollieren wir automatisch nicht verbrauchbare Artikel, automatisch verlängerbare Abonnements und nicht verlängerbare Abonnements. Wenn auch Verbrauchsartikel automatisch protokolliert werden sollen, musst du den Schlüssel SKIncludeConsumableInAppPurchaseHistory zu deiner Info.plist hinzufügen:

<key>SKIncludeConsumableInAppPurchaseHistory</key>

<true/>

In StoreKit 1 wird automatisch ein Event protokolliert, wenn der*die Nutzer*in erfolgreich ein Produkt kauft, ein Produkt wiederherstellt oder versucht, ein Produkt zu kaufen, aber der Kauf fehlschlägt. In StoreKit 2 wird automatisch ein Event protokolliert, wenn der*die Nutzer*in erfolgreich ein Produkt kauft oder ein Produkt wiederherstellt. Wenn auch protokolliert werden soll, wenn ein Produkt in StoreKit 1 fehlschlägt, stellen wir dir eine manuelle API zur Verfügung, die du aufrufen musst. Du kannst diese API folgendermaßen in deinem StoreKit 2-Kaufablauf aufrufen:

do {
   let result = try await product.purchase()
   switch result {
   case .success(let verificationResult):
       // Handle success case
   case .pending:
       // Handle pending case
   default:
       AppEvents.shared.logFailedStoreKit2Purchase(product.id)
   }
} catch {
   AppEvents.shared.logFailedStoreKit2Purchase(product.id)
}


Geräteeinwilligung abrufen

Ab iOS 14.5 musst du das Flag isAdvertiserTrackingEnabled aktivieren und jedes Mal protokollieren, wenn du einem Gerät die Berechtigung erteilst, Daten mit Facebook zu teilen.

Wenn ein Gerät die Einwilligung erteilt, lege Settings.shared.isAdvertiserTrackingEnabled = true fest.

Wenn ein Gerät kein Tracking zulässt, lege Settings.shared.isAdvertiserTrackingEnabled = false fest.

Automatisch protokollierte Events deaktivieren

Um die automatische Protokollierung von Events zu deaktivieren, öffne die Info.plist der App als Code in Xcode und füge dem Eigenschafts-Dictionary den folgenden XML-Code hinzu:

<key>FacebookAutoLogAppEventsEnabled</key>
<false/>

In einigen Fällen solltest du die Erfassung automatisch protokollierter Events unter Umständen verzögern, anstatt sie zu deaktivieren, beispielsweise um die Einwilligung eines*einer Nutzer*in einzuholen oder deine rechtlichen Pflichten zu erfüllen. Lege in diesem Fall Settings.shared.isAutoLogAppEventsEnabled = true fest, um die automatische Protokollierung nach der Einwilligung des*der Endnutzer*in wieder zu aktivieren.

Um die Erfassung erneut zu unterbrechen, legst du Settings.shared.isAutoLogAppEventsEnabled = false fest.

Du kannst mit dem App-Dashboard auch die automatische Protokollierung von App-internen Käufen deaktivieren. Navigiere zur iOS-Karte unter Allgemeines>Einstellungen und setze den Schalter auf Nein.

Erfassung von Werbekunden-IDs deaktivieren

Um die automatische Erfassung von advertiser-id zu deaktivieren, öffne die .plist der App als Code in Xcode und füge dem Eigenschafts-Dictionary den folgenden XML-Code hinzu:

<key>FacebookAdvertiserIDCollectionEnabled</key>
<false/>

In einigen Fällen solltest du die Erfassung von advertiser_id unter Umständen verzögern, anstatt sie zu deaktivieren, beispielsweise um die Einwilligung eines*einer Nutzer*in einzuholen oder deine rechtlichen Pflichten zu erfüllen. Lege in diesem Fall Settings.shared.isAdvertiserIDCollectionEnabled = true nach der Einwilligung des*der Endnutzer*in fest.

Um die Erfassung erneut zu unterbrechen, legst du Settings.shared.isAdvertiserIDCollectionEnabled = false fest.

Manuelles Protokollieren von Events

Um ein selbstdefiniertes Event zu protokollieren, übergib einfach den Namen des Events als AppEvents.Name:

AppEvents.shared.logEvent(AppEvents.Name("battledAnOrc"))

Event-Parameter

Meta hat eine Reihe nützlicher Event-Parameter für Standard-Events oder deine eigenen selbstdefinierten Events erstellt. Du kannst auch eigene Parameter angeben.

Wenn du App-Events zum Messen der Conversions von Dynamic Ads verwenden möchtest, lege den Parameter fb_content_id so fest, dass er der in der zugehörigen Dynamic Ad verwendeten Produkt-ID entspricht.

Diese vordefinierten Parameter dienen als Leitlinien für gängige Protokollierungsmuster und weisen möglicherweise eine besser lesbare Form in der Berichterstellung und anderen UIs auf. Protokolliere die Parameter, die du aufschlüsseln möchtest. Die empfohlene Beschreibung dieser Parameter dient lediglich als Leitlinie. Du kannst die Parameter so einsetzen, wie es für deine App sinnvoll ist.

Die Parameter werden über ein Dictionary übergeben, wobei der Schlüssel den Parameternamen als AppEvents.ParameterName enthält und der Wert entweder ein String oder eine Zahl (Int, Double usw.) sein muss.

Schritt 8: Teste deine Events

Mit dem App Ads-Hilfstool kannst du die App-Events in deiner App testen, um sicherzustellen, dass deine App-Events an Facebook sendet.

  1. Öffne das App Ads-Hilfstool.
  2. Wähle unter App auswählen deine App aus und wähle dann Senden aus.
  3. Scrolle nach unten und wähle Event testen aus.
  4. Starte deine App und sende ein Event. Das Event sollte auf der Webseite angezeigt werden.

Wenn du deine Events in SKAdNetwork-Kampagnen optimieren/tracken möchtest, musst du auch die Event-Priorität (auch als Conversion-Wert bezeichnet) richtig konfigurieren. Nur dann kann Facebook die Conversions richtig empfangen. Mehr dazu erfährst du hier.

Mehr dazu

Beispiel-Apps

Wir haben einige Beispiele für unterschiedliche App-Typen erstellt, um dir besser zu zeigen, wie du App-Events einsetzen kannst. Jede der Beispiel-Apps bietet eine Aufschlüsselung der verschiedenen Events und Parameter, die auf den einzelnen Bildschirmen erfasst werden können. Am Ende jedes Abschnitts werden die empfohlenen Events und Parameter für jede App in einer Tabelle aufgelistet. Bei Bedarf kannst du auch deine eigenen Events und Parameter erstellen.