Google Analytics SDK na iOS v1 (starsza wersja)

Pakiet SDK Google Analytics do aplikacji mobilnych na iOS ułatwia wdrażanie Google Analytics w aplikacjach na iOS. Z tego dokumentu dowiesz się, jak zintegrować pakiet SDK z aplikacjami.

Omówienie pakietu SDK

Ten pakiet SDK wykorzystuje model śledzenia służący do śledzenia użytkowników w tradycyjnych witrynach i interakcji z widżetami na tradycyjnych stronach internetowych. Z tego powodu użyte poniżej terminy odzwierciedlają konwencjonalny model śledzenia witryny i są mapowane na śledzenie aplikacji mobilnych. Aby zrozumieć, jak działa ten pakiet SDK, musisz wiedzieć, jak działa śledzenie Analytics.

Za pomocą pakietu SDK do śledzenia na urządzeniach mobilnych możesz śledzić aplikacje na telefony za pomocą następujących typów interakcji Analytics:

Śledzenie odsłon
Odsłona to standardowy sposób pomiaru natężenia ruchu w tradycyjnej witrynie. Aplikacje mobilne nie zawierają stron HTML, więc musisz zdecydować, kiedy (i jak często) ma być wysyłane żądanie wyświetlenia strony. Poza tym, ponieważ żądania odsłony są przeznaczone do raportowania danych o strukturach katalogów, musisz podać opisowe nazwy żądań, aby móc korzystać z nazywania ścieżek do stron w raportach dotyczących treści w Analytics. Wybrane nazwy będą widoczne w raportach Analytics jako ścieżki do strony, mimo że nie są to w rzeczywistości strony HTML, ale możesz je wykorzystać, tworząc ścieżki umożliwiające utworzenie dodatkowych grupowań dla wywołań.
Śledzenie zdarzeń
W Analytics zdarzenia służą do śledzenia interakcji użytkowników z elementami strony internetowej w odróżnieniu od żądań wyświetlenia strony. Za pomocą funkcji śledzenia zdarzeń w Google Analytics możesz wykonywać dodatkowe wywołania, które będą raportowane w sekcji Śledzenie zdarzeń w interfejsie raportów Analytics. Zdarzenia są grupowane według kategorii i mogą też korzystać z etykiet poszczególnych zdarzeń, co zapewnia elastyczność raportowania. Na przykład aplikacja multimedialna może mieć w swojej kategorii film działania odtwarzanie/zatrzymanie/wstrzymanie oraz przypisać etykietę do każdej nazwy filmu. Raporty Google Analytics będą sumować zdarzenia dla wszystkich zdarzeń otagowanych kategorią video. Więcej informacji o śledzeniu zdarzeń znajdziesz w przewodniku po śledzeniu zdarzeń.
Śledzenie e-commerce
Korzystaj z funkcji śledzenia e-commerce, aby śledzić transakcje z koszyka na zakupy i zakupy w aplikacji. Aby śledzić transakcję, wywołaj metodę addTransaction w celu utworzenia ogólnej transakcji, a także metodę addItem dla każdego produktu w koszyku. Po zebraniu danych można je wyświetlić w sekcji raportów e-commerce w interfejsie Google Analytics. Więcej informacji o śledzeniu e-commerce znajdziesz w przewodniku po śledzeniu e-commerce.
Zmienne niestandardowe
Zmienne niestandardowe to tagi pary nazwa-wartość, które można wstawiać do kodu śledzenia, aby ulepszać śledzenie w Google Analytics. Więcej informacji o korzystaniu ze zmiennych niestandardowych znajdziesz w przewodniku po zmiennych niestandardowych.
Zespół pomocy NoThumb
Pakiet SDK na iPhone'a zawiera teraz bibliotekę NoThumb oraz standardową wersję Thumb. Aby użyć wersji biblioteki NoThumb, użyj pliku libGoogleAnalytics_NoThumb.a zamiast libGoogleAnalytics.a.

Pierwsze kroki

Wymagania

Aby zintegrować funkcje śledzenia Google Analytics z aplikacją na iOS, potrzebujesz:

Konfiguracja

  • Otwórz Xcode i utwórz nowy projekt systemu operacyjnego iPhone.
  • Przeciągnij GANTracker.h i libGoogleAnalytics.a z katalogu biblioteki pakietu SDK do nowego projektu.
  • Uwzględnij w projekcie platformę CFNetwork i połącz ją z platformą libsqlite3.0.dylib.

Pakiet SDK usługi Google Analytics dla aplikacji mobilnych powinien działać z każdym urządzeniem iPhone i iPod Touch z systemem iOS 2.0 lub nowszym – biblioteka jest zgodna ze wszystkimi wersjami systemu iOS obsługującymi aplikacje natywne.

W pakiecie SDK znajduje się przykładowa aplikacja, która pokazuje, jak powinien wyglądać projekt po udanym skonfigurowaniu. Możesz używać go jako szablonu swoich aplikacji zintegrowanych z Analytics.

Przy użyciu pakietu SDK

Zanim zaczniesz korzystać z pakietu SDK, musisz utworzyć bezpłatne konto na www.google.com/analytics i utworzyć na nim nową usługę internetową, korzystając z fałszywego, ale opisowego adresu URL witryny (np. http://mymobileapp.mywebsite.com). Po utworzeniu usługi zapisz lub zachowaj jej identyfikator wygenerowany dla tej usługi.

Musisz poinformować użytkowników w samej aplikacji lub w warunkach korzystania z usługi, że zastrzegasz sobie prawo do anonimowego śledzenia i zgłaszania aktywności użytkownika wewnątrz aplikacji. Korzystanie z pakietu SDK Google Analytics podlega dodatkowo Warunkom korzystania z usługi Google Analytics, które musisz zaakceptować podczas rejestracji konta.

Przykłady i sprawdzone metody

Przykładowy kod i sprawdzone metody znajdziesz na stronie code.google.com w ramach projektu analytics-api-samples.

Biblioteka EasyTracker

Dostępna jest biblioteka EasyTracker. Zapewnia śledzenie na poziomie aplikacji i UIViewController w zakresie programowania. Znajdziesz go w sekcji Pobrane w projekcie analytics-api-samples.

Uruchamianie trackera

Uruchom lokalizator, wywołując metodę startTrackerWithAccountID na singletonie śledzącym uzyskanym za pomocą [GANTracker sharedTracker]. Często warto wywołać tę metodę bezpośrednio w metodzie applicationDidFinishLaunching przedstawiciela aplikacji. Przekaż identyfikator usługi internetowej, wymagany okres wysyłki i opcjonalnie przedstawiciela. Na przykład:

#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

Śledzenie odsłon i zdarzeń

Śledzenie wyświetleń stron i zdarzeń jest proste: wystarczy wywołać trackPageView obiektu skryptu śledzenia za każdym razem, gdy chcesz wywołać odsłonę. Zadzwoń pod numer trackEvent, aby nagrać wydarzenie. Więcej informacji o wyświetleniach strony i zdarzeniach znajdziesz w sekcji Omówienie pakietu SDK powyżej.

Używanie zmiennych niestandardowych

Dodanie zmiennej niestandardowej też jest proste – wystarczy użyć metody setCustomVariableAtIndex dostępnej w mobilnym pakiecie SDK. Pamiętaj, by wcześniej zaplanować indeksowanie każdej zmiennej niestandardowej, do której jest mapowana żadna zmienna niestandardowa, by nie zastąpić wcześniej utworzonej zmiennej. Więcej informacji o zmiennych niestandardowych znajdziesz w przewodniku po zmiennych niestandardowych. Pamiętaj, że metoda setCustomVariableAtIndex nie wysyła danych bezpośrednio. Dane są wysyłane przy następnej śledzonej odsłonie lub zdarzeniu. Musisz zadzwonić pod numer setCustomVariableAtIndex przed śledzeniem odsłon lub zdarzeń. Pamiętaj, że domyślny zakres zmiennych niestandardowych jest ograniczony do strony.

Korzystanie ze śledzenia e-commerce

Aby włączyć śledzenie e-commerce w aplikacji, możesz użyć 4 metod:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Wywołanie addTransaction i addItem dodaje transakcję lub element do wewnętrznego bufora e-commerce, do którego można dodać więcej elementów i transakcji. Dopiero podczas połączenia z numerem trackTransactions transakcje i produkty zostaną wysłane do dyspozytora i dodane do kolejki do Google Analytics.

Aby wyczyścić bufor, możesz wywołać metodę clearTransactions. Uwaga: system nie pamięta żadnych transakcji wysłanych wcześniej do dyspozytora ani transakcji zebranych już przez Google Analytics.

Ten przykładowy kod pomoże Ci zacząć.

  /**
   * 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];
  }
}

Więcej informacji o e-commerce znajdziesz w Przewodniku śledzenia e-commerce.

Ukryj adres IP

Aby zanonimizować informacje o adresie IP użytkownika, ustaw właściwość anonymizeIp na wartość YES. Dzięki temu Google Analytics anonimizuje informacje wysyłane przez pakiet SDK, usuwając ostatni oktet adresu IP poprzedzający przechowywanie.

Oto przykład, jak go ustawić:

 [[GANTracker sharedTracker] setAnonymizeIp:YES];

anonymizeIp możesz ustawić w każdej chwili.

Ustawianie częstotliwości próbkowania

Częstotliwość próbkowania możesz ustawić za pomocą właściwości sampleRate. Jeśli Twoja aplikacja generuje duży ruch Analytics, ustawienie częstotliwości próbkowania może uniemożliwić generowanie raportów z wykorzystaniem próbkowanych danych. Próbkowanie odbywa się konsekwentnie w przypadku unikalnych użytkowników, co pozwala zachować integralność trendów i raportów, gdy częstotliwość próbkowania jest włączona. Parametr sampleRate jest parametrem NSUInteger i może mieć wartość od 0 do 100 włącznie. Oto przykład, w którym wartość sampleRate zmniejsza się do 95%:

 [[GANTracker sharedTracker] setSampleRate:95];

Współczynnik równy 0 wyłącza generowanie działań, a współczynnik 100 wysyła wszystkie dane do Google Analytics. Najlepiej ustawić sampleRate przed wywołaniem jakichkolwiek metod śledzenia.

Więcej informacji na ten temat znajdziesz w poradniku na temat próbkowania.

Działania zbiorcze

Aby zmniejszyć obciążenie połączenia i baterię, zalecamy zebranie żądań śledzenia w grupę. Wywołanie dispatch w obiekcie śledzenia możesz wykonać w każdej chwili, gdy chcesz wysłać żądanie zbiorcze. Możesz to zrobić ręcznie lub w określonych odstępach czasu.

Znane problemy

  • Odesłania / źródła wizyt: obecnie nie można śledzić źródła kampanii lub odesłania pobrania aplikacji na urządzenie z iOS.
  • Zdecydowanie odradzamy wywoływanie funkcji dispatch w tych sytuacjach:
    • W metodzie applicationWillTerminate
    • W tunelu – applicationDidEnterBackground
    • Przed nawiązaniem połączenia z: stopTracker
    Może to spowodować dwukrotne wysłanie działań. Zamiast tego użyj metody dispatchSynchronous:.
  • Wywoływanie metod GANTracker w różnych wątkach może skutkować niejasnymi błędami SQLite. Pamiętaj, aby wszystkie połączenia wykonywać w tym samym wątku.
  • Kampanie śledzące

    Ogólne śledzenie kampanii

    Dzięki pakietowi SDK Google Analytics dla systemu iOS w wersji 1.3 możesz teraz śledzić odesłania z kampanii. Jeśli na przykład Twoja aplikacja implementuje niestandardowy schemat adresu URL, możesz utworzyć adres URL zawierający parametry zapytania dotyczącego kampanii. Gdy aplikacja jest uruchamiana w odpowiedzi na taki adres URL, możesz pobrać parametry zapytania i przekazać je do setReferrer, by informacje zostały zapisane w Google Analytics.

    Aby skonfigurować informacje o odesłaniu z kampanii, użyj metody setReferrer w następujący sposób:

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

    Istnieją 2 ograniczenia dotyczące korzystania z tej funkcji. Najpierw musisz zadzwonić pod numer startTrackerWithAccountID, a potem zadzwonić pod numer setReferrer. Musisz to zrobić, ponieważ baza danych SQLite używana przez Google Analytics nie została skonfigurowana przed wywołaniem startTrackerWithAccountID, a setReferrer potrzebuje tej bazy. Jeśli nie wywołujesz usługi startTrackerWithAccountID, wyświetli się komunikat o błędzie.

    Drugim ograniczeniem jest to, że ciąg odsyłający przekazywany do setReferrer musi mieć określony format. Musi on mieć postać zestawu parametrów adresu URL i zawierać co najmniej jeden parametr gclid lub po jednym z tych parametrów: utm_campaign, utm_medium oraz utm_source. W tym drugim przypadku może też zawierać parametry utm_term i utm_content.

    Parametr gclid jest częścią funkcji automatycznego tagowania, która automatycznie łączy Google Analytics z Google Ads. Przykładowe odesłanie do kampanii korzystające z automatycznego tagowania może wyglądać tak:

    referrer = @“gclid=gclidValue”;
    

    Ciąg znaków odesłania z kampanii ręcznej może wyglądać tak:

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

    Jeśli przekażesz do setReferrer błędnie sformatowany ciąg strony odsyłającej, informacje o stronie odsyłającej nie zostaną zmienione i otrzymasz zwracaną wartość false (fałsz). Zwracana wartość „true” (prawda) wskazuje, że strona odsyłająca została zaktualizowana i będzie dodawana do każdego działania w przyszłości. Pojawi się też komunikat o błędzie, który możesz sprawdzić, aby uzyskać szczegółowe informacje o tym, co poszło nie tak w przypadku niepowodzenia połączenia.

    Pamiętaj też, że nowa sesja uruchamia się, gdy wywołasz parametr setReferrer, który zwraca wartość „true”.

    Parametr Wymagane Opis Przykłady
    utm_campaign Tak Nazwa kampanii służy do analizy słów kluczowych w celu identyfikacji określonej promocji produktu lub kampanii strategicznej utm_campaign=spring_sale
    utm_source Tak Źródło kampanii; służy do identyfikowania wyszukiwarki, newslettera lub innego źródła. utm_source=google
    utm_medium Tak Medium kampanii; służy do identyfikacji medium, np. e-maila lub kosztu kliknięcia (cpc) utm_medium=cpc
    utm_term Nie Hasło kampanii; używane w płatnych wynikach wyszukiwania do dostarczania słów kluczowych do reklam utm_term=running+shoes
    utm_content Nie Treść kampanii; używana do testów A/B oraz reklam kierowanych na treść strony w celu rozróżnienia reklam lub linków kierujących do tego samego adresu URL utm_content=logolink
    utm_content=textlink