Google Analytics SDK für iOS Version 1 (alte Version)

Mit dem Google Analytics for Mobile Apps SDK for iOS lässt sich Google Analytics ganz einfach in iOS-basierten Anwendungen implementieren. In diesem Dokument wird beschrieben, wie Sie das SDK in Ihre Apps einbinden.

SDK – Übersicht

Dieses SDK verwendet ein Tracking-Modell, mit dem Nutzer auf herkömmliche Websites gelangen und mit Widgets auf herkömmlichen Webseiten interagieren können. Aus diesem Grund beziehen sich die unten verwendeten Begriffe auf das herkömmliche Website-Tracking-Modell und werden auf mobile Tracking-Apps angewendet. Sie sollten mit dem Tracking in Analytics vertraut sein, um die Funktionsweise dieses SDK zu verstehen.

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

Seitenaufruf-Tracking
Ein Seitenaufruf ist eine Standardmethode zur Messung der Anzahl der Zugriffe auf eine herkömmliche Website. Da mobile Apps keine HTML-Seiten enthalten, musst du festlegen, wann (und wie oft) eine Seitenaufruf-Anfrage ausgelöst werden soll. Da bei Seitenaufrufanfragen Berichte zu Verzeichnisstrukturen erstellt werden, sollten Sie den Anfragen aussagekräftige Namen geben, damit Sie die Seitenpfadbenennung in den Contentberichten in Analytics nutzen können. Die von Ihnen gewählten Namen werden in Ihren Analytics-Berichten als Seitenpfade dargestellt, auch wenn es sich dabei nicht um HTML-Seiten handelt. Sie können dies jedoch zu Ihrem Vorteil nutzen, indem Sie Pfade so strukturieren, dass Ihre Aufrufe zusätzliche Gruppierungen enthalten.
Ereignis-Tracking
In Analytics dienen Ereignisse dazu, Nutzerinteraktionen mit Webseitenelementen unabhängig von Seitenaufrufanfragen zu erfassen. Mit der Funktion „Ereignis-Tracking“ von Google Analytics können Sie zusätzliche Aufrufe ausführen, die im Bereich „Ereignis-Tracking“ der Analytics-Benutzeroberfläche für Berichte aufgeführt werden. Ereignisse werden anhand von Kategorien gruppiert und können auch ereignisspezifische Labels verwenden, um Flexibilität bei der Berichterstellung zu ermöglichen. Eine Multimedia-App könnte beispielsweise die Aktionen play/stop/pause für die Kategorie video haben und jedem Videonamen ein Label zuweisen. In den Google Analytics-Berichten werden dann Ereignisse für alle Ereignisse mit der Kategorie Video zusammengefasst. Weitere Informationen zum Ereignis-Tracking finden Sie im Leitfaden zum Ereignis-Tracking.
E-Commerce-Tracking
Mit der E-Commerce-Tracking-Funktion können Sie Einkaufswagentransaktionen und In-App-Käufe erfassen. Rufe zum Erfassen einer Transaktion die Methode addTransaction auf, um eine Gesamttransaktion zu erstellen, sowie die Methode addItem für jedes Produkt im Einkaufswagen. Die erfassten Daten können dann in Google Analytics im Bereich „E-Commerce-Berichte“ aufgerufen werden. Weitere Informationen zum E-Commerce-Tracking finden Sie im Leitfaden zum E-Commerce-Tracking.
Benutzerdefinierte Variablen
Benutzerdefinierte Variablen sind Tags mit Name/Wert-Paaren, die Sie in Ihren Tracking-Code einfügen können, um das Google Analytics-Tracking zu optimieren. Weitere Informationen zur Verwendung von benutzerdefinierten Variablen finden Sie in der Anleitung zu benutzerdefinierten Variablen.
NoThumb-Support
Das SDK für das iPhone enthält jetzt eine NoThumb-Version der Bibliothek sowie die Thumb-Standardversion. Wenn du die NoThumb-Version der Bibliothek verwenden möchtest, verwende die Datei libGoogleAnalytics_NoThumb.a anstelle der Datei libGoogleAnalytics.a.

Erste Schritte

Voraussetzungen

Um die Tracking-Funktionen von Google Analytics in Ihre iOS-App einzubinden, ist Folgendes erforderlich:

Einrichtung

  • Öffnen Sie Xcode und erstellen Sie ein neues iPhone OS-Projekt.
  • Ziehen Sie GANTracker.h und libGoogleAnalytics.a aus dem SDK-Bibliotheksverzeichnis in das neue Projekt.
  • Binden 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 mit iOS 2.0 oder höher funktionieren. Die Bibliothek ist mit allen iOS-Versionen kompatibel, die native Anwendungen unterstützen.

Das SDK enthält eine Beispielanwendung, die zeigt, wie Ihr Projekt bei 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 darin eine neue Web-Property mit einer gefälschten, aber beschreibenden Website-URL erstellen (z.B. http://mymobileapp.mywebsite.com). Notieren oder kopieren Sie die ID der neu erstellten Property.

Sie müssen Ihre Nutzer entweder in der Anwendung selbst oder in Ihren Nutzungsbedingungen darauf hinweisen, dass Sie sich das Recht vorbehalten, die Aktivitäten eines Nutzers in Ihrer App anonym zu erfassen und zu melden. Die Verwendung des Google Analytics SDK unterliegt außerdem den Nutzungsbedingungen für Google Analytics, denen Sie zustimmen müssen, wenn Sie sich für ein Konto registrieren.

Beispiele und Best Practices

Beispielcode und Best Practices finden Sie auf code.google.com im Projekt analytics-api-sample.

EasyTracker-Bibliothek

Eine EasyTracker-Bibliothek ist verfügbar. Es ermöglicht Tracking auf Anwendungs- und UIViewController-Ebene ohne großen Entwicklungsaufwand. Sie finden es im Abschnitt Downloads des Projekts analytics-api-sample.

Tracker starten

Starten Sie den Tracker, indem Sie die Methode startTrackerWithAccountID im Singleton des Trackers aufrufen, der über [GANTracker sharedTracker] abgerufen wurde. Häufig ist es praktisch, diese Methode direkt in der Methode applicationDidFinishLaunching des Delegaten Ihrer App aufzurufen. Übergeben Sie die Web-Property-ID, den erforderlichen Weiterleitungszeitraum und den optionalen 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: Rufen Sie 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 in der SDK-Übersicht.

Benutzerdefinierte Variablen verwenden

Benutzerdefinierte Variablen lassen sich ebenfalls ganz einfach hinzufügen: Verwenden Sie einfach die Methode setCustomVariableAtIndex aus dem Mobile SDK. Planen Sie daher im Voraus, welchen Indexen die einzelnen benutzerdefinierten Variablen zugeordnet sind, damit Sie keine zuvor vorhandenen Variablen überschreiben. Weitere Informationen zu benutzerdefinierten Variablen finden Sie in der Anleitung zu benutzerdefinierten Variablen. Mit der Methode setCustomVariableAtIndex werden Daten nicht direkt gesendet. Stattdessen werden die Daten mit dem nächsten erfassten Seitenaufruf oder Ereignis gesendet. Sie müssen setCustomVariableAtIndex aufrufen, bevor Sie einen Seitenaufruf oder ein Ereignis erfassen. Hinweis: Der Standardbereich von benutzerdefinierten Variablen ist auf Seitenebene.

E-Commerce-Tracking verwenden

Es gibt vier Methoden, um E-Commerce-Tracking in Ihrer Anwendung zu aktivieren:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Durch Aufrufen von addTransaction und addItem wird die Transaktion oder das Element einem internen E-Commerce-Zwischenspeicher hinzugefügt, in den weitere Elemente und Transaktionen eingefügt werden können. Nur beim Aufrufen von trackTransactions werden Transaktionen und Artikel an den Disponenten gesendet und in die Warteschlange zum Senden an Google Analytics gestellt.

Zum Löschen des Zwischenspeichers können Sie die Methode clearTransactions aufrufen. Hinweis: Zuvor an den Disponenten gesendete Transaktionen oder bereits von Google Analytics erfasste Transaktionen werden nicht zurückgerufen.

Der folgende Beispielcode kann Ihnen bei den ersten Schritten helfen.

  /**
   * 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 zu E-Commerce finden Sie im Leitfaden zum E-Commerce-Tracking.

IP-Anonymisierung

Um die Nutzer-IP-Informationen zu anonymisieren, setze die Eigenschaft anonymizeIp auf JA. Dadurch wird Google Analytics angewiesen, die vom SDK gesendeten Informationen zu anonymisieren, indem das letzte Oktett der IP-Adresse vor dem Speichern entfernt wird.

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 Eigenschaft sampleRate festlegen. Falls Ihre Anwendung viele Analytics-Zugriffe generiert, kann das Festlegen der Stichprobenrate verhindern, dass Ihre Berichte mit Stichproben erstellt werden. Die Stichprobenerhebung erfolgt konsistent für einzelne Nutzer, sodass die Trends und Berichte fehlerfrei sind, wenn die Stichprobenrate aktiviert ist. Der Parameter sampleRate ist ein NSUInteger und kann einen Wert zwischen 0 und 100 (einschließlich) haben. Im folgenden Beispiel wird sampleRate auf 95 % gesenkt:

 [[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 Aufrufen von Tracking-Methoden fest.

Weitere Informationen zur Stichprobenerhebung finden Sie im Leitfaden zu Konzepten für Stichproben.

Treffer im Batch

Um den Aufwand für die Verbindung und den Akku zu sparen, empfehlen wir, die Tracking-Anfragen in einem Batch zusammenzufassen. Sie können dispatch für das Tracking-Objekt jederzeit aufrufen, wenn Sie eine Batchanfrage stellen möchten, und zwar entweder manuell oder in bestimmten Zeitintervallen.

Bekannte Probleme

  • Verweise/Besucherquellen: Es ist derzeit nicht möglich, die Kampagne/Verweisquelle eines App-Downloads auf einem iOS-Gerät nachzuverfolgen.
  • Wir raten dringend davon ab, in den folgenden Situationen dispatch aufzurufen:
    • In der Methode applicationWillTerminate
    • Im applicationDidEnterBackground
    • Vor dem Anruf bei stopTracker
    Dies kann dazu führen, dass Treffer zweimal gesendet werden. Verwenden Sie stattdessen die Methode dispatchSynchronous:.
  • Das Aufrufen von GANTracker-Methoden für verschiedene Threads kann zu unklaren SQLite-Fehlern führen. Achten Sie darauf, alle Anrufe aus demselben Thread zu tätigen.
  • Tracking von Kampagnen

    Allgemeines Kampagnen-Tracking

    Mit Version 1.3 des Google Analytics SDK für 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 Suchparameter für Kampagnen enthält. Wenn Ihre Anwendung als Reaktion auf eine solche URL gestartet wird, können Sie die Abfrageparameter abrufen und an setReferrer übergeben, sodass die Informationen in Google Analytics gespeichert werden.

    Verwenden Sie zum Festlegen der Kampagnenverweisinformationen die setReferrer-Methode:

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

    Für die Verwendung dieser Funktion gelten zwei Einschränkungen. Sie müssen zuerst startTrackerWithAccountID aufrufen, bevor Sie setReferrer aufrufen. Dies ist erforderlich, da die von Google Analytics verwendete SQLite-Datenbank nicht vor dem Aufruf von startTrackerWithAccountID eingerichtet ist 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 einem bestimmten Format entsprechen muss. Er muss in Form einer Gruppe von URL-Parametern vorliegen und mindestens einen „gclid“-Parameter oder „utm_campaign“, „utm_medium“ und „utm_source“ enthalten. Im letzteren Fall können sie auch die Parameter „utm_term“ und „utm_content“ enthalten.

    Der Parameter „gclid“ ist Teil der automatischen Tag-Kennzeichnung, bei der Google Analytics automatisch mit Google Ads verknüpft wird. Ein Beispiel für einen Kampagnenverweis mit automatischem 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 falsch formatierten Referrer-String an setReferrer übergeben, werden die Referrer-URL-Informationen nicht geändert und Sie erhalten den Rückgabewert „false“. Der Rückgabewert „true“ gibt an, dass die Referrer-URL aktualisiert wurde und zukünftig zu jedem Treffer hinzugefügt wird. Außerdem wird ein Fehler zurückgegeben, den Sie überprüfen können, um zu ermitteln, was schiefgelaufen ist, falls der Aufruf fehlgeschlagen ist.

    Beachten Sie außerdem, dass eine neue Sitzung gestartet wird, wenn Sie "setReferrer" aufrufen und der Wert "true" zurückgibt.

    Parameter Erforderlich Beschreibung Beispiel(e)
    utm_campaign Ja Kampagnenname; wird für die Keyword-Analyse verwendet, um eine bestimmte Werbeaktion oder strategische Kampagne zu identifizieren utm_campaign=spring_sale
    utm_source Ja Kampagnenquelle; zur Identifizierung einer Suchmaschine, eines Newsletters oder einer anderen Quelle utm_source=google
    utm_medium Ja Kampagnenmedium; zur Identifizierung eines Mediums wie E-Mail oder Cost-per-Click (CPC) utm_medium=cpc
    utm_term Nein Kampagnenbegriff; wird bei bezahlter Suche verwendet, um die Keywords für Anzeigen bereitzustellen utm_term=running+shoes
    utm_content Nein Kampagneninhalte; wird 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