מסחר אלקטרוני משופר ב-Universal Analytics עבור iOS

מסחר אלקטרוני משופר היא תכונה של Google Analytics הזמינה בנכסי Universal Analytics, שמאפשרת למדוד אינטראקציות של משתמשים עם מוצרים בחוויית הקנייה של המשתמש. זה יכול לכלול חשיפות של מוצרים, קליקים על מוצרים, צפיות בפרטי מוצרים, הוספת פריטים לעגלת קניות, ביצוע תשלום בקופה, עסקאות והחזרים כספיים.

הדור האחרון של Google Tag Manager ושל Google Analytics לאפליקציות לנייד פועל יחד עם Firebase, הפלטפורמה של Google לאפליקציות לנייד. כשאתם מודדים אפליקציות עם Firebase SDK יש לכם גישה למגוון דוחות אוטומטיים של אפליקציות לנייד, שתוכלו להוסיף ולהתאים אישית באמצעות הקוד בתוך האפליקציה. הדוחות האלה יכללו באופן אוטומטי נתונים על רכישות מתוך האפליקציה שעובדו על ידי App Store ב-iTunes וב-Google Play. אפשר ליצור דוחות נוספים שקשורים למסחר אלקטרוני על ידי הטמעת אירועים מוצעים לאפליקציות של מסחר אלקטרוני. דוחות מעמיקים על התנהגות הקנייה (כלומר מסחר אלקטרוני משופר) זמינים כרגע רק בנכסי Universal Analytics.

במאמר זה מוסבר איך להשתמש ב-Tag Manager לאפליקציות ל-iOS בשילוב עם Firebase SDK כדי לשלוח נתוני מסחר אלקטרוני משופר לנכסי Universal Analytics. צריך להשתמש באותם תחביר של אירוע ופרמטר כדי להגדיר את השלב לדוחות נוספים של מסחר אלקטרוני בעתיד.

צעדים ראשונים

לפני שמתחילים, צריך להגדיר את הדרישות המוקדמות הבאות לאפליקציה:

  1. מתקינים ומגדירים את Firebase ו-Google Tag Manager באפליקציה. ודאו שאתם משתמשים בגרסה 11 ואילך של Firebase SDK ל-iOS.
  2. מגדירים משתנה בהגדרת המשתמש במאגר במאגר של Tag Manager, שנקרא "קידומי מכירות", עם ההגדרות הבאות:
    • סוג האירוע: פרמטר מותאם אישית
    • מפתח פרמטר של אירוע: קידומי מכירות
    • ערך ברירת המחדל: לא מוגדר

יישום

בקטעים הבאים נסביר איך לתעד אירועים עם הפרמטרים הנחוצים כדי למדוד פעילויות משופרות של מסחר אלקטרוני, כמו:

חשיפות של המוצר

כדי למדוד חשיפות של מוצרים, צריך לתעד אירוע עם פרמטר kFIRParameterItemID ועם פריט אחד או יותר (כלומר מוצרים) שמוגדרים בשדות הרלוונטיים.

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: צפייה במסך
  • שדות להגדרה: (שם השדה) screenName (ערך, למשל) מסך תוצאות החיפוש
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה view_search_results

קליקים/בחירות מוצרים

כדי למדוד קליקים על מוצר, מתעדים אירוע kFIREventSelectContent עם פריט (למשל, מוצר) שמוגדר באמצעות השדות הרלוונטיים:

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: אירוע
  • קטגוריית האירוע, למשל: מסחר אלקטרוני
  • פעולת האירוע, למשל: קליק על מוצר
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-select_content AND {{promotions}} שווה ל- לא מוגדר

צפיות בפרטי מוצר

כדי למדוד צפיות של פרטי מוצר, צריך לתעד אירוע kFIREventViewItem עם פריט (למשל, מוצר) שמוגדר באמצעות השדות הרלוונטיים:

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: צפייה במסך
  • שדות להגדרה: (שם השדה) screenName (ערך, למשל) מסך פרטי המוצר
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-view_item וגם
  • {{promotions}} שווה ללא הגדרה

תוספות לעגלת הקניות

כדי למדוד מוצר שנוסף לעגלת קניות, מתעדים אירוע בשם kFIREventAddToCart שמכיל פריט (למשל, מוצר) עם השדות הרלוונטיים:

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: אירוע
  • קטגוריית האירוע, למשל: מסחר אלקטרוני
  • פעולת האירוע, למשל: הוספה לעגלת הקניות
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-add_to_cart

הסרות מעגלת קניות

אם רוצים להסיר מוצר מעגלת קניות, מתעדים אירוע בשם kFIREventRemoveFromCart עם פריט (למשל: מוצר) שמוגדר באמצעות השדות הרלוונטיים:

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: אירוע
  • קטגוריית האירוע, למשל: מסחר אלקטרוני
  • פעולת האירוע, למשל: הסרה מעגלת הקניות
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-remove_from_cart

חשיפות של קידום מכירות

כדי למדוד חשיפות של מבצע, צריך לתעד אירוע kFIREventViewItem עם פריט מבצע שמוגדר בשדות הרלוונטיים:

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: אירוע
  • קטגוריית האירוע, למשל: קידום מכירות פנימי
  • פעולת האירוע, למשל: חשיפה
  • התאמה ללא אינטראקציה: True
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-view_item וגם
  • {{promotions}} לא שווה ללא הגדרה

קליקים/בחירות של קידום מכירות

כדי למדוד קליקים של קידום מכירות, צריך לתעד אירוע kFIREventSelectContent עם מבצע שמוגדר עם השדות הרלוונטיים:

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: אירוע
  • קטגוריית האירוע, למשל: קידום מכירות פנימי
  • פעולת האירוע, למשל : לחיצה
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (בהתאמה אישית > אירועים מסוימים) שם האירוע שווה ל-select_content AND {{promotions}} אינו שווה ללא הגדרה

תהליך התשלום בקופה

התחלת התשלום בקופה

מודדים את השלב הראשון בתהליך התשלום בקופה על ידי רישום אירוע kFIREventBeginCheckout עם פריט אחד או יותר (למשל מוצרים) שמוגדרים עם השדות הרלוונטיים:

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: צפייה במסך
  • שדות להגדרה: (שם השדה) screenName (ערך, למשל) מסך עגלת קניות
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-start_checkout

אפשרויות בסיום קנייה

אפשרויות התשלום מאפשרות לכם למדוד מידע נוסף על המצב של תהליך התשלום. תוכלו למדוד את אפשרויות התשלום בקופה כחלק מאירוע בשלב התשלום (כפי שמוצג למעלה) או כשמשתמש בוחר אפשרות אחרי שהאירוע של שלב מסוים בקופה כבר נרשם.

כדי למדוד את אפשרויות התשלום אחרי שלב התשלום בקופה, צריך לתעד אירוע kFIREventCheckoutProgress עם הפרמטרים התואמים: kFIRParameterCheckoutStep ו-kFIRParameterCheckoutOption:

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

דוגמה להגדרה של התג:

  • סוג g: Universal Analytics
  • סוג ack: אירוע
  • ent קטגוריה, למשל: מסחר אלקטרוני
  • פעולת ent, למשל : הגדרת אפשרות תשלום
  • תכונות של מסחר אלקטרוני משופר: True
  • נתוני מודעה מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-set_checkout_option

רכישות

כדי למדוד רכישות, צריך לתעד אירוע kFIREventEcommercePurchase עם פריט אחד או יותר (למשל מוצרים) שמוגדר עם השדות הרלוונטיים:

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

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: צפייה במסך
  • שדות להגדרה: (שם השדה) screenName (ערך, למשל) מסך תודה
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-ecommerce_purchase

החזרים כספיים

כדי למדוד החזרים כספיים, יש לתעד אירוע kFIREventPurchaseRefund ולציין בו את מזהה העסקה הרלוונטי, ולבחור אם להוסיף (או לקבל החזר כספי חלקי) לגבי פריט אחד או יותר (כלומר מוצרים) שמוגדרים בו מזהי הפריטים והכמויות:

// (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];

דוגמה להגדרה של התג:

  • סוג תג: Universal Analytics
  • סוג מעקב: אירוע
  • קטגוריית האירוע, למשל: מסחר אלקטרוני
  • פעולת האירוע, למשל: החזר כספי
  • הפעלת תכונות של מסחר אלקטרוני משופר: True
  • קריאת נתונים מ: אירוע Firebase
  • הפעלה, למשל: (מותאם אישית > אירועים מסוימים) שם האירוע שווה ל-purchase_refund