iOS v3 - מסחר אלקטרוני משופר

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

סקירה כללית

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

לפני שתתחיל

מומלץ לעיין בקטע סוגים ופעולות של נתוני מסחר אלקטרוני משופרים במדריך למפתחים בנושא מסחר אלקטרוני משופר ב-Google Analytics (אתרים) כדי לקבל עזרה בתכנון ההטמעה. המדריך יעזור לכם להבין אילו שדות הם שדות חובה ושדות אופציונליים בכל אחת מהאינטראקציות של המסחר האלקטרוני שאתם רוצים למדוד.

הטמעה

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

מדידת הופעות של מוצרים

  • מדידת מסחר אלקטרוני: impressions
  • ניתן להזין נתונים: מערך של impressionFieldObjects

כדי למדוד חשיפות של מוצרים אפשר להשתמש בפעולה impression ולפחות בimpressionFieldObjects אחד. בדוגמה הבאה ההנחה היא שהפרטים לגבי המוצרים המוצגים ידועים במועד שבו המסך מוצג:

// Product impressions are sent by pushing an impressions object
// containing one or more impressionFieldObjects.
[dataLayer push:@{@"ecommerce": @{
                    @"currencyCode": @"EUR",                      // Local currency is optional.
                    @"impressions": @[
                      @{@"name": @"Triblend Android T-Shirt",     // Name or ID is required.
                        @"id": @"12345",
                        @"price": @"15.25",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Gray",
                        @"list": @"Search Results",
                        @"position": @1},
                      @{@"name": @"Donut Friday Scented T-Shirt",
                        @"id": @"67890",
                        @"price": @"33.75",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Black",
                        @"list": @"Search Results",
                        @"position": @2}]}}];

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

  • מדידת מסחר אלקטרוני: click
  • ניתן להזין נתונים: list, מערך של productFieldObjects

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

[dataLayer push:@{@"event": @"productClick",
                  @"ecommerce": @{
                    @"click": @{
                      @"actionField": @{
                        @"list": @"Search Results"},              // Optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];

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

  • מדידת מסחר אלקטרוני: detail
  • ניתן להזין נתונים: list, מערך של productFieldObjects

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

// Measure a view of product details.
[dataLayer push:@{@"ecommerce": @{
                    @"detail": @{
                      @"actionField": @{
                        @"list": @"Apparel Gallery"},             // 'detail' actions have an optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];

מדידה של הוספה או הסרה מעגלת קניות

  • מדידת מסחר אלקטרוני: add, remove
  • ניתן להזין נתונים: list, מערך של productFieldObjects

ניתן למדוד הוספות או הסרות מעגלת קניות באמצעות add או remove actionFieldObject ורשימה של productFieldObjects:

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

// Measure adding a product to a shopping cart by using an "add"
// actionFieldObject and a list of productFieldObjects.
[dataLayer push:@{@"event": @"addToCart",
                  @"ecommerce": @{
                    @"currencyCode": @"EUR",
                    @"add": @{                                  // 'add' actionFieldObject measures.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

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

// Measure the removal of a product from a shopping cart.
[dataLayer push:@{@"event": @"removeFromCart",
                  @"ecommerce": @{
                    @"remove": @{                               // 'remove' actionFieldObject measures.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

מדידת קידומי מכירות

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

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

  • מדידת מסחר אלקטרוני: promoView
  • ניתן להזין נתונים: מערך של promoFieldObjects

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

// An example of measuring promotion views. This example assumes that
// information about the promotions displayed is available when the screen is
// displayed.
[dataLayer push:@{@"ecommerce": @{
                    @"promoView": @{
                      @"promotions": @[                     // Array of promoFieldObjects.
                        @{@"id": @"JUNE_PROMO13",           // ID or Name is required.
                          @"name": @"June Sale",
                          @"creative": @"banner1",
                          @"position": @"slot1"},
                        @{@"id": @"FREE_SHIP13",
                          @"name": @"Free Shipping Promo",
                          @"creative": @"skyscraper1",
                          @"position": @"slot2"}]}}}];

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

כדי למדוד בחירת מבצע, צריך לדחוף את הפעולה promoClick לשכבת הנתונים עם מערך שמכיל promoFieldObject שמתאר את המבצע שנבחר:

[dataLayer push:@{@"event": @"promotionClick",
                  @"ecommerce": @{
                    @"promoClick": @{
                      @"promotions": @[
                        @{@"id":  @"JUNE_PROMO13",          // Name or ID is required.
                          @"name": @"June Sale",
                          @"creative": @"banner1",
                          @"position": @"slot1"}]}}}];

מדידת תשלומים בקופה

כדי למדוד כל שלב בתהליך התשלום, צריך:

  1. מודדים כל שלב בתהליך התשלום באמצעות הפעולה checkout.
  2. אם רלוונטי, אפשר למדוד את האפשרויות בסיום הקנייה באמצעות הפעולה checkout_option.
  3. אם רוצים להגדיר שמות לשלבים ידידותיים למשתמש בדוח משפך התשלום, אפשר להגדיר את הגדרות מסחר אלקטרוני בקטע אדמין בממשק האינטרנט.

1. מדידת השלבים בתהליך התשלום

  • מדידת מסחר אלקטרוני: checkout
  • ניתן להזין נתונים: step, מערך של productFieldObjects

כדי למדוד את תהליך התשלום, שעשוי לכלול לחצן תשלום ומסך תשלום אחד או יותר שבהם המשתמשים מזינים פרטי משלוח ותשלום, יש להשתמש בפעולה checkout ובשדה step כדי לציין באיזה שלב בתהליך התשלום נמדד. אפשר גם להשתמש בשדה option כדי לספק עוד נתונים על תהליך התשלום בקופה, כמו סוג התשלום שנבחר על ידי המשתמש.

[dataLayer push:@{@"event": @"checkout",
                  @"ecommerce": @{
                    @"checkout": @{
                      @"actionField": @{
                        @"step": @1,
                        @"option": @"Visa"},
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

2. אפשרויות מדידה של תהליך התשלום

  • מדידת מסחר אלקטרוני: checkout_option
  • מקבלים נתונים: step, option

אפשרות התשלום בקופה שימושית במקרים שבהם כבר מדדת שלב בקופה, אבל ברצונך לתעד מידע נוסף לגבי אותו שלב בקופה. לדוגמה, שיטת המשלוח שהמשתמש בחר. כדי למדוד זאת, צריך להשתמש בפעולה checkout_option בשילוב עם השדות step ו-option.

[dataLayer push:@{@"event": @"checkoutOption",
                  @"ecommerce": @{
                    @"checkout_option": @{
                      @"actionField": @{
                        @"step": @1,
                        @"option": @"Express"}}}}];

3. הגדרת משפך התשלום

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

הגדרת מסחר אלקטרוני בממשק הניהול של Google Analytics. משפך התשלום מוגדר עם ארבעה שלבים: 1. עגלת קניות, 2. איסוף פרטי תשלום, 3. אישור פרטי הרכישה, 4. קבלה.
איור 1: הגדרת מסחר אלקטרוני, משפך התשלום.

מדידת רכישות

  • מדידת מסחר אלקטרוני: purchase
  • יתקבלו נתונים: id (מזהה עסקה), מערך של productFieldObjects

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

// Send transaction data with a screenview if possible.
// Otherwise, use an event when the transaction data becomes available.
[dataLayer push:@{@"ecommerce": @{
                    @"purchase": @{
                      @"actionField": @{
                        @"id": @"T12345",                         // Transaction ID. Required for purchases and refunds.
                        @"affiliation": @"Online Store",
                        @"revenue": @"35.43",                     // Total transaction value (incl. tax and shipping)
                        @"tax":"4.90",
                        @"shipping": @"5.99",
                        @"coupon": @"SUMMER_SALE"},
                      @"products": @[                             // List of productFieldObjects.
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1,
                          @"coupon": @""},                        // Optional fields may be omitted or set to empty string.
                        @{@"name": @"Donut Friday Scented T-Shirt",
                          @"id": @"67890",
                          @"price": @"33.75",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Black",
                          @"quantity": @1}]}}}];

מדידת החזרים כספיים

  • מדידת מסחר אלקטרוני: refund
  • יתקבלו נתונים: id (מזהה עסקה), מערך של productFieldObjects

כדי למדוד החזר כספי מלא על עסקה, יש לשלוח refund actionFieldObject יחד עם מזהה העסקה של העסקה שהוחזרה:

// Refund an entire transaction by providing the transaction ID. This example
// assumes the details of the completed refund are available when the screen
// is displayed:
[dataLayer push:@{@"ecommerce": @{
                    @"refund": @{
                      @"actionField": @{
                        @"id": @"T12345"}}}}];  // Transaction ID. Required for refunds.

כדי למדוד החזר כספי חלקי, צריך להוסיף רשימה של productFieldObjects, כולל מזהי המוצרים והכמויות שרוצים לקבל עליהם החזר כספי:

// Measure a partial refund by providing an array of productFieldObjects and
// specifying the ID and quantity of each product being returned. This example
// assumes the partial refund details are known at the time the screen is
// displayed:
[dataLayer push:@{@"ecommerce": @{
                    @"refund": @{
                      @"actionField": @{
                        @"id": @"T12345"},      // Transaction ID.
                      @"products": @[
                        @{@"id": @"P4567",
                          @"quantity": @1},     // Product ID & quantity. Required for partial refunds.
                        @{@"id": @"P8901",
                          @"quantity": @2}]}}}];

שילוב של חשיפות ופעולות

במקרים שבהם יש לך גם חשיפות של מוצרים וגם פעולה, ניתן לשלב ולמדוד זאת בהיט אחד.

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

[dataLayer push:@{@"ecommerce": @{
                    @"impressions": @[
                      @{@"name": @"Triblend Android T-Shirt",       // Name or ID is required.
                        @"id": @"12345",
                        @"price": @"15.25",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Gray",
                        @"list": @"Related Products",
                        @"position": @1},
                      @{@"name": @"Donut Friday Scented T-Shirt",
                        @"id": @"67890",
                        @"price": @"33.75",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Black",
                        @"list": @"Related Products",
                        @"position": @2}],
                    @"detail": @{
                      @"actionField": @{
                        @"list": @"Apparel Gallery"},               // 'detail' actions have an optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",     // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];