Google Analytics SDK for iOS Version 1 (alt)

Mit dem Google Analytics for Mobile Apps SDK for iOS können Sie Google Analytics ganz einfach in iOS-basierte Apps implementieren. In diesem Dokument wird beschrieben, wie Sie das SDK in Ihre Apps einbinden.

SDK – Übersicht

Dieses SDK verwendet ein Tracking-Modell, das entwickelt wurde, um Nutzer auf herkömmliche Websites zu führen und Interaktionen mit Widgets auf herkömmlichen Webseiten zu erfassen. Daher entsprechen die unten verwendeten Begriffe dem herkömmlichen Website-Tracking-Modell und werden mobilen Apps zugeordnet. Du solltest mit Analytics-Tracking vertraut sein, damit du weißt, wie dieses SDK funktioniert.

Mit dem Mobile Tracking SDK können Sie Ihre Telefonanwendungen mit den folgenden Analytics-Interaktionstypen erfassen:

Tracking von Seitenaufrufen
Ein Seitenaufruf ist eine Standardmethode zum Messen des Trafficvolumens zu einer herkömmlichen Website. Da mobile Apps keine HTML-Seiten enthalten, müssen Sie festlegen, wann und wie oft eine Seitenaufrufanfrage ausgelöst werden soll. Da Anfragen zu Seitenaufrufen dazu dienen, Berichte zu Verzeichnisstrukturen zu erstellen, solltest du ihnen aussagekräftige Namen geben, damit die Namen der Seitenpfade in den Analytics-Berichten zu Inhalten berücksichtigt werden. Die von Ihnen ausgewählten Namen werden in Ihren Analytics-Berichten als Seitenpfade ausgefüllt, obwohl es sich in Wirklichkeit nicht um HTML-Seiten handelt. Sie können dies jedoch zu Ihrem Vorteil nutzen, indem Sie Pfade strukturieren, um zusätzliche Gruppierungen für Ihre Aufrufe bereitzustellen.
Ereignis-Tracking
In Analytics sollen Ereignisse die Nutzerinteraktionen auf Webseitenelemente von Seitenaufrufanfragen unterscheiden. Mit der Ereignis-Tracking-Funktion in Google Analytics kannst du zusätzliche Aufrufe tätigen, die im Bereich „Ereignis-Tracking“ der Analytics-Benutzeroberfläche für Berichte angezeigt werden. Ereignisse werden nach Kategorien gruppiert und können auch Labels pro Ereignis verwenden, was Flexibilität bei der Berichterstellung bietet. So kann beispielsweise eine Multimedia-App die Aktionen play/stop/pause für die Kategorie video haben und für jeden Videonamen ein Label zuweisen. In den Google Analytics-Berichten werden dann Ereignisse für alle Ereignisse zusammengefasst, die mit der Kategorie video gekennzeichnet sind. Weitere Informationen zum Ereignis-Tracking finden Sie im Leitfaden zum Ereignis-Tracking.
E-Commerce-Tracking
Mit der E-Commerce-Tracking-Funktion kannst du Einkaufswagentransaktionen und In-App-Käufe erfassen. Rufen Sie zum Erfassen einer Transaktion die Methode addTransaction auf, um eine Gesamttransaktion zu erstellen, sowie die Methode addItem für jedes Produkt im Einkaufswagen. Nachdem die Daten erfasst wurden, können sie im Bereich „E-Commerce-Berichte“ der Google Analytics-Benutzeroberfläche angesehen werden. Weitere Informationen zum E-Commerce-Tracking findest du im Leitfaden zu E-Commerce-Tracking.
Benutzerdefinierte Variablen
Benutzerdefinierte Variablen sind Name/Wert-Paar-Tags, die Sie zur Optimierung des Google Analytics-Trackings in Ihren Tracking-Code einfügen können. Weitere Informationen zur Verwendung von benutzerdefinierten Variablen findest du im Leitfaden zu benutzerdefinierten Variablen.
NoThumb-Support
Das SDK für das iPhone enthält jetzt sowohl eine NoThumb-Version der Bibliothek als auch die Thumb-Standardversion. Wenn du die NoThumb-Version der Mediathek verwenden möchtest, verwende die Datei libGoogleAnalytics_NoThumb.a anstelle der Datei libGoogleAnalytics.a.

Erste Schritte

Voraussetzungen

Wenn Sie Tracking-Funktionen von Google Analytics in Ihre iOS-App einbinden möchten, benötigen Sie Folgendes:

Einrichtung

  • Öffnen Sie Xcode und erstellen Sie ein neues iPhone-Betriebssystemprojekt.
  • Ziehen Sie GANTracker.h und libGoogleAnalytics.a aus dem SDK-Bibliotheksverzeichnis in Ihr neues Projekt.
  • Fügen Sie das CFNetwork-Framework in Ihr Projekt ein und verknüpfen Sie es mit libsqlite3.0.dylib.

Das Google Analytics for Mobile Apps SDK sollte mit jedem iPhone oder iPod Touch 2.0 oder höher funktionieren. Die Bibliothek ist mit allen iOS-Versionen kompatibel, die native Anwendungen unterstützen.

Im SDK ist eine Beispielanwendung enthalten, die zeigt, wie Ihr Projekt nach erfolgreicher Einrichtung aussehen sollte. Sie können sie als Vorlage für Ihre eigenen in Analytics integrierten Apps verwenden.

SDK verwenden

Bevor Sie das SDK verwenden können, müssen Sie zuerst unter www.google.com/analytics ein kostenloses Konto erstellen und in diesem Konto eine neue Web-Property mit einer fiktiven, aber beschreibenden Website-URL erstellen (z.B. http://mymobileapp.mywebsite.com). Notieren Sie sich oder erstellen Sie eine Kopie der Web-Property-ID, die für die neu erstellte Property generiert wurde.

Sie müssen Ihren Nutzern entweder in der App selbst oder in Ihren Nutzungsbedingungen angeben, dass Sie sich das Recht vorbehalten, anonym die Aktivitäten eines Nutzers in Ihrer App nachzuverfolgen und zu melden. Ihre Verwendung des Google Analytics SDK unterliegt außerdem den Google Analytics-Nutzungsbedingungen, denen Sie bei der Registrierung für ein Konto zustimmen müssen.

Beispiele und Best Practices

Beispielcode und Best Practices finden Sie unter code.google.com im Projekt analytics-api-samples.

EasyTracker-Bibliothek

Eine EasyTracker-Bibliothek ist verfügbar. Es bietet auf App- und UI-Controller-Ebene Tracking ohne Programmieraufwand. Sie finden sie im Abschnitt Downloads des Projekts analytics-api-samples.

Der Tracker wird gestartet

Starte den Tracker, indem du die startTrackerWithAccountID-Methode auf dem Tracker-Singleton aufrufst, der über [GANTracker sharedTracker] abgerufen wurde. Es ist oft praktischer, diese Methode direkt in der Methode applicationDidFinishLaunching des Bevollmächtigten Ihrer App aufzurufen. Übergeben Sie die Web-Property-ID, den erforderlichen Weiterleitungszeitraum und optional den Bevollmächtigten. Beispiel:

#import "BasicExampleAppDelegate.h"

#import "GANTracker.h"

// Dispatch period in seconds
static const NSInteger kGANDispatchPeriodSec = 10;

@implementation BasicExampleAppDelegate

@synthesize window = window_;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  // **************************************************************************
  // PLEASE REPLACE WITH YOUR ACCOUNT DETAILS.
  // **************************************************************************
  [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1"
                                        dispatchPeriod:kGANDispatchPeriodSec
                                              delegate:nil];

  NSError *error;
  if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1
                                                       name:@"iPhone1"
                                                      value:@"iv1"
                                                  withError:&error]) {
    // Handle error here
  }

  if (![[GANTracker sharedTracker] trackEvent:@"my_category"
                                       action:@"my_action"
                                        label:@"my_label"
                                        value:-1
                                   withError:&error]) {
    // Handle error here
  }

  if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point"
                                   withError:&error]) {
    // Handle error here
  }

  [window_ makeKeyAndVisible];
}

- (void)dealloc {
  [[GANTracker sharedTracker] stopTracker];
  [window_ release];
  [super dealloc];
}

@end

Seitenaufrufe und Ereignisse erfassen

Das Tracking von Seitenaufrufen und Ereignissen ist unkompliziert: Sie rufen einfach jedes Mal trackPageView des Tracker-Objekts auf, wenn Sie einen Seitenaufruf auslösen möchten. Rufe trackEvent auf, um ein Ereignis aufzuzeichnen. Weitere Informationen zu Seitenaufrufen und Ereignissen finden Sie oben unter SDK-Übersicht.

Benutzerdefinierte Variablen verwenden

Benutzerdefinierte Variablen lassen sich ebenfalls ganz einfach hinzufügen: Dazu verwenden Sie einfach die vom Mobile SDK bereitgestellte Methode setCustomVariableAtIndex. Sie sollten vorausplanen, damit die einzelnen benutzerdefinierten Variablen indexiert werden. Vorhandene Variablen werden also nicht überschrieben. Weitere Informationen zu benutzerdefinierten Variablen finden Sie im Leitfaden zu benutzerdefinierten Variablen. Beachten Sie, dass die Methode setCustomVariableAtIndex selbst keine Daten sendet. Vielmehr werden die Daten zusammen mit dem nächsten erfassten Seitenaufruf oder Ereignis gesendet. Sie müssen setCustomVariableAtIndex aufrufen, bevor Sie einen Seitenaufruf oder ein Ereignis erfassen. Der Standardumfang von benutzerdefinierten Variablen ist seitenbezogen.

E-Commerce-Tracking verwenden

Es gibt vier Methoden, mit denen Sie E-Commerce-Tracking in Ihrer Anwendung aktivieren können:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Durch das Aufrufen von addTransaction und addItem wird die Transaktion oder das Element einem internen E-Commerce-Zwischenspeicher hinzugefügt, dem weitere Elemente und Transaktionen hinzugefügt werden können. Nur wenn trackTransactions aufgerufen wird, werden die Transaktionen und Artikel an den Disziplin gesendet und in die Warteschlange gestellt.

Zum Löschen des Zwischenspeichers können Sie die Methode clearTransactions aufrufen. Hinweis: Es werden keine Transaktionen zurückgerufen, die zuvor an den Dispatcher gesendet wurden, noch Transaktionen, die bereits von Google Analytics erfasst wurden.

Den folgenden Beispielcode können Sie verwenden.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   */
- (void) processPurchase:Purchase purchase {
  [[GANTracker sharedTracker] addTransaction:[purchase transactionId]
                                  totalPrice:[purchase totalPrice]
                                   storeName:[purchase store]
                                    totalTax:[purchase tax]
                                shippingCost:[purchase shipping]
                                   withError:&error];
  if (error) {
    // Handle error
  }
  for (PurchaseItem item in [purchase items]) {
    [[GANTracker sharedTracker] addItem:[purchase transactionId]
                                itemSKU:[item itemSKU]
                              itemPrice:[item price]
                              itemCount:[item count]
                           itemCategory:[item category]
                              withError:&error];
    if (error) {
      // Handle error
    }
  }

  if ([purchase isConfirmed]) {
    [[GANTracker sharedTracker] trackTransactions:&error];
  } else {
    // The purchase was denied or failed in some way.  We need to clear out
    // any data we've already put in the Ecommerce buffer.
    [[GANTracker sharedTracker] clearTransactions:&error];
  }
}

Weitere Informationen zum E-Commerce

IP-Anonymisierung

Wenn Sie die IP-Informationen von Nutzern anonymisieren möchten, setzen Sie die Property anonymizeIp auf YES. Dadurch wird Google Analytics angewiesen, die vom SDK gesendeten Informationen zu anonymisieren. Dabei wird das letzte Oktett der IP-Adresse vor dem Speichern entfernt.

Hier ein Beispiel für die Einstellung:

 [[GANTracker sharedTracker] setAnonymizeIp:YES];

Sie können anonymizeIp jederzeit festlegen.

Abtastrate festlegen

Sie können die Abtastrate mit der Property sampleRate festlegen. Wenn in Ihrer Anwendung viele Analytics-Zugriffe generiert werden, kann die Festlegung der Abtastrate dazu führen, dass Ihre Berichte nicht anhand von Stichprobendaten erstellt werden. Die Stichprobenerhebung wird konsequent bei einzelnen Nutzern durchgeführt. Daher sind die Trends und die Berichte einheitlich, wenn die Abtastrate aktiviert ist. Der Parameter sampleRate ist eine NSUGanzzahl und kann einen Wert zwischen 0 und 100 haben. In diesem Beispiel wird die sampleRate auf 95 % reduziert:

 [[GANTracker sharedTracker] setSampleRate:95];

Bei einer Rate von 0 wird die Treffergenerierung deaktiviert, bei einer Rate von 100 werden alle Daten an Google Analytics gesendet. Am besten legen Sie sampleRate vor dem Aufruf von Tracking-Methoden fest.

Weitere Informationen zur Stichprobenerhebung finden Sie im Leitfaden zu Stichprobenkonzepten.

Batch-Treffer

Wir empfehlen Ihnen, Ihre Tracking-Anfragen in Batches zusammenzufassen, um die Verbindung und den Akkuverbrauch zu verringern. Sie können dispatch für das Tracking-Objekt jederzeit aufrufen, wenn Sie eine Batchanfrage stellen möchten – entweder manuell oder in bestimmten Zeitintervallen.

Bekannte Probleme

  • Verweise/Besucherquellen: Derzeit ist es nicht möglich, die Kampagnen- oder Verweisquellen eines App-Downloads auf dem iOS-Gerät nachzuverfolgen.
  • Wir raten dringend davon ab, dispatch in den folgenden Situationen aufzurufen:
    • In der Methode applicationWillTerminate
    • Im applicationDidEnterBackground
    • Vor dem Anruf bei stopTracker
    Dadurch werden Treffer unter Umständen zweimal gesendet. Verwenden Sie stattdessen die Methode dispatchSynchronous:.
  • Das Aufrufen von GANTracker-Methoden in verschiedenen Threads kann zu verschwommenen SQLite-Fehlern führen. Achten Sie darauf, dass Sie alle Anrufe aus demselben Thread tätigen.
  • Tracking-Kampagnen

    Kampagnen-Tracking

    Mit Version 1.3 des Google Analytics SDK for iOS können Sie jetzt Kampagnenverweise erfassen. Wenn in Ihrer Anwendung beispielsweise ein benutzerdefiniertes URL-Schema implementiert ist, können Sie eine URL erstellen, die Abfrageparameter für Kampagnen enthält. Wenn Ihre Anwendung als Antwort auf eine solche URL gestartet wird, können Sie die Abfrageparameter abrufen und an „setReferrer“ übergeben, damit die Informationen in Google Analytics gespeichert werden.

    Verwenden Sie zum Festlegen der Verweisinformationen für die Kampagne die Methode setReferrer:

      [[GANTracker sharedTracker] setReferrer:referrer withError:&error];
    

    Für diese Funktion gelten zwei Einschränkungen. Sie müssen zuerst startTrackerWithAccountID aufrufen, bevor Sie setReferrer aufrufen. Dieser Schritt ist erforderlich, da die von Google Analytics verwendete SQLite-Datenbank nicht vor dem Aufruf von startTrackerWithAccountID eingerichtet wird und setReferrer diese Datenbank benötigt. Wenn Sie startTrackerWithAccountID nicht aufgerufen haben, wird eine Fehlermeldung zurückgegeben.

    Die zweite Einschränkung besteht darin, dass der an setReferrer übergebene Verweisstring ein bestimmtes Format haben muss. Er muss die Form eines URL-Parametersatzes haben und mindestens einen gclid-Parameter oder einen der Parameter „utm_campaign“, „utm_medium“ und „utm_source“ enthalten. Im letzteren Fall können auch die Parameter „utm_term“ und „utm_content“ enthalten sein.

    Der Parameter „gclid“ ist Teil der automatischen Tag-Kennzeichnung. Damit werden Google Analytics automatisch mit Google Ads verknüpft. Ein Beispiel für einen Kampagnenverweis mit dem automatischen Tagging könnte so aussehen:

    referrer = @“gclid=gclidValue”;
    

    Der String für den manuellen Kampagnenverweis könnte so aussehen:

    referrer = @“utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

    Wenn Sie einen ungültigen Verweis-URL-String an setReferrer übergeben, werden die Verweisinformationen nicht geändert und Sie erhalten den Rückgabewert „false“. Der Rückgabewert "true" gibt an, dass die Verweis-URL aktualisiert wurde, und wird jedem Treffer in Zukunft hinzugefügt. Außerdem erhalten Sie eine Fehlermeldung, die Sie sich ansehen können, um herauszufinden, was im Falle eines Fehlers aufgetreten ist.

    Wenn Sie setReferrer aufrufen, wird eine neue Sitzung gestartet und „true“ zurückgegeben.

    Parameter Required Beschreibung Beispiel(e)
    utm_campaign Ja Kampagnenname; wird für die Keyword-Analyse verwendet, um eine bestimmte Produktwerbung oder strategische Kampagne zu identifizieren utm_campaign=spring_sale
    utm_source Ja Kampagnenquelle; dient zur Identifizierung einer Suchmaschine, eines Newsletters oder einer anderen Quelle utm_source=google
    utm_medium Ja Kampagnenmedium; wird verwendet, um ein Medium wie E-Mail oder Cost-per-Click (CPC) zu identifizieren utm_medium=cpc
    utm_term Nein Kampagnenbegriff; wird zusammen mit der bezahlten Suche verwendet, um die Keywords für Anzeigen bereitzustellen utm_term=running+shoes
    utm_content Nein Kampagneninhalte; werden für A/B-Tests und inhaltsbezogene Anzeigen verwendet, um Anzeigen oder Links zu unterscheiden, die auf dieselbe URL verweisen utm_content=logolink
    utm_content=textlink