Android v4 - อีคอมเมิร์ซที่เพิ่มประสิทธิภาพ

คู่มือนี้อธิบายวิธีใช้งานฟีเจอร์อีคอมเมิร์ซที่เพิ่มประสิทธิภาพของ Universal Analytics โดยใช้ Google Tag Manager SDK สำหรับ Android

ภาพรวม

อีคอมเมิร์ซที่เพิ่มประสิทธิภาพของ Google Analytics ช่วยให้คุณส่งข้อมูลการแสดงผลผลิตภัณฑ์ โปรโมชัน และการขายไปกับการดูหน้าจอและเหตุการณ์ของ Google Analytics ได้

ก่อนที่คุณจะเริ่ม

เราขอแนะนำให้อ่านส่วนประเภทข้อมูลอีคอมเมิร์ซที่เพิ่มประสิทธิภาพและการกระทำของคู่มือการพัฒนาอีคอมเมิร์ซที่เพิ่มประสิทธิภาพ (เว็บ) ของ Google Analytics เพื่อช่วยในการวางแผนใช้งาน คู่มือนี้จะช่วยให้คุณเข้าใจได้ว่าช่องใดที่จำเป็นและไม่บังคับสำหรับการโต้ตอบอีคอมเมิร์ซแต่ละครั้งที่คุณต้องการวัด

การใช้งาน

ส่วนต่อไปนี้จะแสดงวิธีใช้ชั้นข้อมูลเพื่อวัดกิจกรรมอีคอมเมิร์ซที่เพิ่มประสิทธิภาพต่อไปนี้

การวัดการแสดงผลของผลิตภัณฑ์

  • การวัดอีคอมเมิร์ซ: impressions
  • ยอมรับข้อมูล: อาร์เรย์ของ impressionFieldObjects

วัดการแสดงผลผลิตภัณฑ์โดยใช้การดำเนินการ impression และ impressionFieldObjects อย่างน้อย 1 รายการ ตัวอย่างต่อไปนี้ถือว่ารายละเอียดเกี่ยวกับผลิตภัณฑ์ที่แสดงนั้นทราบอยู่แล้วในขณะที่หน้าจอแสดง

// Product impressions are sent by pushing an impressions object
// containing one or more impressionFieldObjects.
dataLayer.push("ecommerce",
    DataLayer.mapOf(
        "currencyCode", "EUR",                                  // Local currency is optional.
        "impressions", DataLayer.listOf(
            DataLayer.mapOf(
                "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),
            DataLayer.mapOf(
                "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.pushEvent("productClick",
    DataLayer.mapOf(
        "ecommerce", DataLayer.mapOf(
            "click", DataLayer.mapOf(
                "actionField", DataLayer.mapOf(
                    "list", "Search Results"),                    // Optional list property.
                "products", DataLayer.listOf(
                    DataLayer.mapOf(
                        "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 อย่างน้อย 1 รายการที่แสดงผลิตภัณฑ์ที่ดูอยู่

// Measure a view of product details.
dataLayer.push("ecommerce",
    DataLayer.mapOf(
        "detail", DataLayer.mapOf(
            "actionField", DataLayer.mapOf(
                "list", "Apparel Gallery"),               // detail actions have an optional list property.
            "products", DataLayer.listOf(
                DataLayer.mapOf(
                    "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

วัดการเพิ่มหรือนำสินค้าออกจากรถเข็นช็อปปิ้งโดยใช้ actionFieldObject add หรือ remove และรายการ productFieldObjects:

การเพิ่มผลิตภัณฑ์ลงในรถเข็นช็อปปิ้ง

// Measure adding a product to a shopping cart by using an "add"
// actionFieldObject and a list of productFieldObjects.
dataLayer.pushEvent("addToCart",
    DataLayer.mapOf(
        "ecommerce", DataLayer.mapOf(
            "currencyCode", "EUR",
            "add", DataLayer.mapOf(                             // 'add' actionFieldObject measures.
                "products", DataLayer.listOf(
                    DataLayer.mapOf(
                        "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.pushEvent("removeFromCart",
    DataLayer.mapOf(
        "ecommerce", DataLayer.mapOf(
            "remove", DataLayer.mapOf(                      // 'remove' actionFieldObject measures.
                "products", DataLayer.listOf(
                    DataLayer.mapOf(
                        "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",
    DataLayer.mapOf(
        "promoView", DataLayer.mapOf(
            "promotions", DataLayer.listOf(         // List of promoFieldObjects.
                DataLayer.mapOf(
                    "id", "JUNE_PROMO13",           // ID or Name is required.
                    "name", "June Sale",
                    "creative", "banner1",
                    "position", "slot1"),
                DataLayer.mapOf(
                    "id", "FREE_SHIP13",
                    "name", "Free Shipping Promo",
                    "creative", "skyscraper1",
                    "position", "slot2")))));

การวัดการคลิก/การเลือกของโปรโมชัน

หากต้องการวัดการเลือกโปรโมชัน ให้พุชการดําเนินการ promoClick ไปยังชั้นข้อมูลที่มีอาร์เรย์ที่มี promoFieldObject ที่อธิบายโปรโมชันที่เลือก

dataLayer.pushEvent("promotionClick",
    DataLayer.mapOf(
        "ecommerce", DataLayer.mapOf(
            "promoClick", DataLayer.mapOf(
                "promotions", DataLayer.listOf(
                    DataLayer.mapOf(
                        "id", "JUNE_PROMO13",          // Name or ID is required.
                        "name", "June Sale",
                        "creative", "banner1",
                        "position", "slot1"))))));

การวัดการชำระเงิน

หากต้องการวัดผลแต่ละขั้นตอนในกระบวนการชำระเงิน คุณต้องทำดังนี้

  1. วัดแต่ละขั้นตอนของกระบวนการชำระเงินโดยใช้การดำเนินการ checkout
  2. วัดตัวเลือกขั้นตอนการชำระเงินโดยใช้การดำเนินการ checkout_option (หากมี)
  3. (ไม่บังคับ) ตั้งชื่อขั้นตอนที่ใช้งานง่ายสำหรับรายงาน Funnel การชำระเงิน โดยกำหนดค่าการตั้งค่าอีคอมเมิร์ซในส่วนผู้ดูแลระบบของอินเทอร์เฟซเว็บ

1. การวัดขั้นตอนการเช็คเอาต์

  • การวัดอีคอมเมิร์ซ: checkout
  • ยอมรับข้อมูล: step, อาร์เรย์ของ productFieldObjects

หากต้องการวัดกระบวนการชำระเงิน ซึ่งอาจรวมถึงปุ่มชำระเงินและหน้าจอชำระเงินอย่างน้อย 1 หน้าจอที่ผู้ใช้ป้อนข้อมูลการจัดส่งและการชำระเงิน ให้ใช้การดำเนินการ checkout และช่อง step เพื่อระบุว่าระบบกำลังวัดขั้นตอนใดในกระบวนการชำระเงิน คุณยังใช้ช่อง option เพื่อระบุข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการชำระเงินได้ เช่น ประเภทการชำระเงินที่ผู้ใช้เลือก

dataLayer.pushEvent("checkout",
    DataLayer.mapOf(
        "ecommerce", DataLayer.mapOf(
            "checkout", DataLayer.mapOf(
                "actionField", DataLayer.mapOf(
                    "step", 1,
                    "option", "Visa"),
                "products", DataLayer.listOf(
                    DataLayer.mapOf(
                        "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.pushEvent("checkoutOption",
    DataLayer.mapOf(
        "ecommerce", DataLayer.mapOf(
            "checkout_option", DataLayer.mapOf(
                "products", DataLayer.listOf(),     // checkout_option expects a list of products. The workaround is to provide an empty list.
                "actionField", DataLayer.mapOf(
                    "step", 1,
                    "option", "Express")))));

3. การกำหนดค่าช่องทางการชำระเงิน

(ไม่บังคับ) แต่ละขั้นตอนในกระบวนการชำระเงินอาจตั้งชื่อที่สื่อความหมายซึ่งจะใช้ในรายงาน หากต้องการกำหนดค่าชื่อเหล่านี้ ให้ไปที่ส่วนผู้ดูแลระบบของอินเทอร์เฟซบนเว็บของ Google Analytics เลือกข้อมูลพร็อพเพอร์ตี้ (โปรไฟล์) และคลิกการตั้งค่าอีคอมเมิร์ซ ทำตามวิธีการตั้งค่าอีคอมเมิร์ซเพื่อติดป้ายกำกับขั้นตอนการเช็คเอาต์แต่ละขั้นที่คุณต้องการติดตาม

การตั้งค่าอีคอมเมิร์ซในอินเทอร์เฟซผู้ดูแลระบบ Google Analytics Funnel การชำระเงินมีการกำหนดไว้ 4 ขั้นตอน ดังนี้ 1. ตรวจสอบรถเข็น, 2. รวบรวมข้อมูลการชำระเงิน, 3. ยืนยันรายละเอียดการซื้อ, 4. ใบเสร็จ
ภาพที่ 1: การตั้งค่าอีคอมเมิร์ซ, Funnel การชําระเงิน

การวัดการซื้อ

  • การวัดอีคอมเมิร์ซ: 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",
    DataLayer.mapOf(
        "purchase", DataLayer.mapOf(
            "actionField", DataLayer.mapOf(
                "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", DataLayer.listOf(                   // List of productFieldObjects.
                DataLayer.mapOf(
                    "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.
                DataLayer.mapOf(
                    "name", "Donut Friday Scented T-Shirt",
                    "id", "67890",
                    "price", "33.75",
                    "brand", "Google",
                    "category", "Apparel",
                    "variant", "Black",
                    "quantity", 1)))));

การวัดการคืนเงิน

  • การวัดอีคอมเมิร์ซ: refund
  • ยอมรับข้อมูล: id (รหัสธุรกรรม) อาร์เรย์ของ productFieldObjects

หากต้องการวัดการคืนเงินเต็มจำนวนของธุรกรรม ให้พุช actionFieldObject refund พร้อมด้วยรหัสธุรกรรมของธุรกรรมที่จะคืนเงิน ดังนี้

// 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",
    DataLayer.mapOf(
        "refund", DataLayer.mapOf(
            "products", DataLayer.listOf(),     // refund expects a list of products. The workaround is to provide an empty list.
            "actionField", DataLayer.mapOf(
                "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",
    DataLayer.mapOf(
        "refund", DataLayer.mapOf(
            "products", DataLayer.listOf(
                DataLayer.mapOf(
                    "id", "P4567",
                    "quantity", 1),                 // Product ID & quantity. Required for partial refunds.
                DataLayer.mapOf(
                    "id", "P8901",
                    "quantity", 2)),
            "actionField", DataLayer.mapOf(
                "id", "T12345"))));                 // Transaction ID.

การรวมการแสดงผลและการดำเนินการ

ในกรณีที่มีทั้งการแสดงผลผลิตภัณฑ์และการดำเนินการ คุณจะรวมและวัดผลได้ใน Hit เดียว

ตัวอย่างด้านล่างแสดงวิธีวัดมุมมองรายละเอียดผลิตภัณฑ์ด้วยการแสดงผลผลิตภัณฑ์จากส่วนผลิตภัณฑ์ที่เกี่ยวข้อง

dataLayer.push("ecommerce",
    DataLayer.mapOf(
        "impressions", DataLayer.listOf(
            DataLayer.mapOf(
                "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),
            DataLayer.mapOf(
                "name", "Donut Friday Scented T-Shirt",
                "id", "67890",
                "price", "33.75",
                "brand", "Google",
                "category", "Apparel",
                "variant", "Black",
                "list", "Related Products",
                "position", 2)),
        "detail", DataLayer.mapOf(
            "actionField", DataLayer.mapOf(
                "list", "Apparel Gallery"),              // 'detail' actions have an optional list property.
            "products", DataLayer.listOf(
                DataLayer.mapOf(
                    "name", "Triblend Android T-Shirt",   // Name or ID is required.
                    "id", "12345",
                    "price", "15.25",
                    "brand", "Google",
                    "category", "Apparel",
                    "variant", "Gray")))));