Erweiterte E-Commerce-Berichte für iOS

Erweiterte E-Commerce-Berichte sind eine Google Analytics-Funktion in Universal Analytics-Properties, mit der Nutzerinteraktionen mit Produkten im gesamten Einkaufserlebnis erfasst werden können. Dazu gehören Produktimpressionen, Produktklicks, Aufrufe von Produktdetails, das Hinzufügen von Artikeln zu einem Einkaufswagen, das Starten von Zahlungsvorgängen, Transaktionen und Erstattungen.

Die neuesten Generationen von Google Tag Manager und Google Analytics für mobile Apps arbeiten mit Firebase, der Google-Plattform für mobile Apps, zusammen. Wenn Sie Apps mit dem Firebase SDK messen, haben Sie Zugriff auf zahlreiche automatisch erstellte Berichte für mobile Apps, die durch In-App-Code weiter angepasst und ergänzt werden können. Diese Berichte enthalten automatisch Daten zu In-App-Käufen, die über den App Store von iTunes und Google Play verarbeitet werden. Zusätzliche E-Commerce-bezogene Berichte können erstellt werden, indem vorgeschlagene Ereignisse für E-Commerce-Apps implementiert werden. Ausführliche Berichte zum Kaufverhalten (d.h. erweiterte E-Commerce-Berichte) sind derzeit nur in Universal Analytics-Properties verfügbar.

In diesem Dokument wird beschrieben, wie Sie Tag Manager für iOS-Apps in Verbindung mit dem Firebase SDK verwenden, um erweiterte E-Commerce-Daten an Universal Analytics-Properties zu senden. Für zukünftige E-Commerce-Berichte sollte dieselbe Ereignis- und Parametersyntax verwendet werden.

Erste Schritte

Bevor Sie beginnen, müssen Sie die folgenden Voraussetzungen für Ihre App erfüllen:

  1. Installieren und konfigurieren Sie Firebase und Google Tag Manager in Ihrer App. Verwenden Sie Version 11 oder höher des Firebase SDK for iOS.
  2. Konfigurieren Sie in Ihrem Tag Manager-Container eine benutzerdefinierte Variable namens „Angebote“ mit den folgenden Einstellungen:
    • Ereignistyp: Benutzerdefinierter Parameter
    • Ereignisparameterschlüssel: Hochstufungen
    • Standardwert: nicht definiert

Implementierung

In den folgenden Abschnitten wird gezeigt, wie Ereignisse mit den Parametern protokolliert werden, die zum Messen von erweiterten E-Commerce-Aktivitäten erforderlich sind:

Produktimpressionen

Sie können Produktimpressionen erfassen, indem Sie ein Ereignis mit einem kFIRParameterItemID-Parameter und einem oder mehreren Elementen (d.h. Produkten) mit den relevanten Feldern protokollieren.

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @2          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewSearchResults
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Track-Typ: Bildschirmaufruf
  • Festzulegende Felder: (Name des Felds) screenName (Wert, z.B.) Bildschirm „Suchergebnisse“
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich view_search_results

Produktklicks/-auswahl

Wenn Sie Produktklicks erfassen möchten, protokollieren Sie ein kFIREventSelectContent-Ereignis mit einem Element (d.h. einem Produkt), das durch die relevanten Felder definiert ist:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Tracking-Typ: Ereignis
  • Ereigniskategorie, z.B.: E-Commerce
  • Ereignisaktion, z.B. Produktklick
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich „select_content“ UND {{promotions}} ist nicht definiert

Produktdetailansichten

Erfassen Sie Produktdetailansichten, indem Sie ein kFIREventViewItem-Ereignis mit einem Element (d.h. Produkt) protokollieren, das durch die entsprechenden Felder definiert ist:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log view_item event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Track-Typ: Bildschirmaufruf
  • Festzulegende Felder: (Name des Felds) screenName (Wert, z.B.) Bildschirm „Produktdetails“
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich „view_item“ UND
  • {{promotions}} ist undefiniert

Hinzufügungen zum Einkaufswagen

Messen Sie ein Produkt, das in den Einkaufswagen gelegt wird. Dazu protokollieren Sie ein kFIREventAddToCart-Ereignis mit einem Artikel (d. h. einem Produkt), der durch die entsprechenden Felder definiert ist:

/// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log add_to_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventAddToCart
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Tracking-Typ: Ereignis
  • Ereigniskategorie, z.B.: E-Commerce
  • Ereignisaktion, z.B. „In den Einkaufswagen“
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich add_to_cart

Aus dem Einkaufswagen entfernt

Ein Produkt wird aus einem Einkaufswagen entfernt. Dazu wird das Ereignis kFIREventRemoveFromCart mit einem Artikel (d. h. einem Produkt) protokolliert, der durch die entsprechenden Felder definiert ist:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log remove_from_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventRemoveFromCart
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Tracking-Typ: Ereignis
  • Ereigniskategorie, z.B.: E-Commerce
  • Ereignisaktion, z.B. „Aus dem Einkaufswagen entfernen“
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich remove_from_cart

Impressionen durch Werbung

Erfassen Sie die Werbeimpressionen, indem Sie ein kFIREventViewItem-Ereignis mit einem Angebotselement protokollieren, das mit den entsprechenden Feldern definiert ist:

/// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
NSDictionary *ecommerce = @{
   @"promotions" : promotions
};

// Log view_item, view_item_list, or view_search_results
// event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Tracking-Typ: Ereignis
  • Ereigniskategorie, z.B.: Interne Werbung
  • Ereignisaktion, z.B.: Impression
  • Treffer ohne Interaktion: wahr
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich „view_item“ UND
  • {{promotions}} ist nicht undefiniert

Werbeklicks/-auswahl

Erfassen Sie Angebotsklicks, indem Sie ein kFIREventSelectContent-Ereignis mit einem für die relevanten Felder definierten Angebot protokollieren:

// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];

// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.
NSDictionary *ecommerce = @{
   kFIRParameterItemID : @"PROMO_1234",
   kFIRParameterContentType : @"Internal Promotions",
   @"promotions" : promotions
};

// Log select_content, view_item_list, or view_search_results event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Tracking-Typ: Ereignis
  • Ereigniskategorie, z.B.: Interne Werbung
  • Ereignisaktion, z.B. Klick
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich select_content UND {{promotions}} ist nicht undefiniert

Bezahlvorgang

Bezahlvorgang starten

Messen Sie den ersten Schritt in einem Bezahlvorgang, indem Sie ein kFIREventBeginCheckout-Ereignis mit einem oder mehreren Elementen (d.h. Produkten) mit den relevanten Feldern protokollieren:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @1, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log BEGIN_CHECKOUT event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventBeginCheckout
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Track-Typ: Bildschirmaufruf
  • Festzulegende Felder: (Name des Felds) screenName (Wert, z.B.) Einkaufswagen
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich start_checkout

Zahlungs- und Versandoptionen

Mit den Zahlungsoptionen können Sie zusätzliche Informationen zum Status des Bezahlvorgangs messen. Sie können die Bezahloptionen entweder als Teil eines Bezahlschritt-Ereignisses (wie oben gezeigt) messen oder wenn ein Nutzer eine Option auswählt, nachdem das Ereignis für einen bestimmten Bezahlschritt bereits protokolliert wurde.

Messen Sie die Bezahloptionen nach einem Bezahlschritt, indem Sie ein kFIREventCheckoutProgress-Ereignis mit den entsprechenden Parametern kFIRParameterCheckoutStep und kFIRParameterCheckoutOption protokollieren:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @2, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log CHECKOUT_PROGRESS event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventCheckoutProgress
                   parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • g-Typ: Universal Analytics
  • Bestätigungstyp: Ereignis
  • Kategorie, z.B.: E-Commerce
  • Aktion, z.B. : Bezahloption festlegen
  • Erweiterte E-Commerce-Funktionen: Richtig
  • Anzeigendaten aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich set_checkout_option

Käufe

Erfassen Sie Käufe, indem Sie ein kFIREventEcommercePurchase-Ereignis mit einem oder mehreren Elementen (d.h. Produkten) mit den relevanten Feldern protokollieren:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results", // List name.
   kFIRParameterTransactionID : @"T12345",
   kFIRParameterAffiliation : @"Google Store - Online",
   kFIRParameterValue : @75.98, // Revenue.
   kFIRParameterTax : @3.80,
   kFIRParameterShipping : @5.34,
   kFIRParameterCurrency : @"USD",
   kFIRParameterCoupon : @"SUMMER2017"
};

// Log ecommerce_purchase event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventEcommercePurchase
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Track-Typ: Bildschirmaufruf
  • Festzulegende Felder: (Name des Felds) screenName (Wert, z.B.) „Danke“-Seite
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich ecommerce_purchase

Erstattungen

Du kannst Erstattungen erfassen, indem du ein kFIREventPurchaseRefund-Ereignis mit der entsprechenden Transaktions-ID und optional (bei teilweisen Erstattungen) einen oder mehrere Artikel (d.h. Produkte) mit Artikel-IDs und Mengen protokollierst:

// (OPTIONAL) For partial refunds, define the item IDs and
// quantities of products being refunded.
NSDictionary *refundedProduct = @{
   kFIRParameterItemID : @"sku1234", // Required for partial refund.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce bundle with transaction ID to be refunded.
NSDictionary *ecommerce = @{
   @"items" : @[ refundedProduct ],
   kFIRParameterTransactionID : @"T12345", // Required.
   kFIRParameterValue : @75.98 // Optional in Universal Analytics.
};

// Log purchase_refund event with ecommerce.
[FIRAnalytics logEventWithName:kFIREventPurchaseRefund
                    parameters:ecommerce];

Im folgenden Beispiel sehen Sie die Tag-Konfiguration:

  • Tag-Typ: Universal Analytics
  • Tracking-Typ: Ereignis
  • Ereigniskategorie, z.B.: E-Commerce
  • Ereignisaktion, z.B. Erstattung
  • Erweiterte E-Commerce-Funktionen aktivieren: True
  • Daten lesen aus: Firebase-Ereignis
  • Trigger, z.B.: (Benutzerdefiniert > Einige Ereignisse) Ereignisname ist gleich „purchase_refund“