الإصدار 4 من Android - التجارة الإلكترونية المحسَّنة

يوضِّح هذا الدليل كيفية تنفيذ ميزات التجارة الإلكترونية المحسَّنة في Universal Analytics باستخدام حزمة تطوير البرامج (SDK) لأداة "إدارة العلامات من Google" لنظام التشغيل Android.

نظرة عامة

تسمح التجارة الإلكترونية المحسَّنة في "إحصاءات Google" بإرسال بيانات مرّات ظهور المنتجات والترويج لها والمبيعات مع أيٍّ من مشاهدات الصفحة في "إحصاءات Google" وأحداثها.

قبل البدء

ننصحك بمراجعة قسم أنواع بيانات التجارة الإلكترونية المحسَّنة والإجراءات ضمن دليل مطوّري برامج التجارة الإلكترونية المحسَّنة (الويب) في "إحصاءات Google" لمساعدتك في التخطيط لعملية التنفيذ. سيساعدك هذا الدليل على فهم الحقول المطلوبة والاختيارية لكل تفاعل من تفاعلات التجارة الإلكترونية التي تريد قياسها.

التنفيذ

ستوضِّح لك الأقسام التالية كيفية استخدام طبقة البيانات لقياس أنشطة التجارة الإلكترونية المحسَّنة التالية:

قياس مرات ظهور المنتجات

  • قياس التجارة الإلكترونية: impressions
  • يقبل البيانات: مصفوفة من impressionFieldObjects

يمكنك قياس مرات ظهور المنتجات باستخدام إجراء impression وimpressionFieldObjects واحد أو أكثر. يفترض المثال التالي أن تفاصيل حول المنتجات المعروضة معروفة في وقت عرض الشاشة:

// 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 واحد أو أكثر يمثّل المنتجات التي يتم عرضها:

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

يمكنك قياس الإضافات أو عمليات الإزالة من سلّة التسوّق باستخدام add أو remove actionFieldObject وقائمة من 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. يمكنك اختياريًا ضبط أسماء خطوات سهلة الاستخدام لتقرير مسار الدفع من خلال ضبط إعدادات التجارة الإلكترونية في قسم المشرف من واجهة الويب.

1- قياس خطوات الدفع

  • قياس التجارة الإلكترونية: checkout
  • تقبل البيانات: step، مصفوفة من productFieldObjects

لقياس عملية الدفع، التي قد تشمل زر دفع وشاشة دفع واحدة أو أكثر يُدخِل فيها المستخدمون معلومات الشحن والدفع، استخدِم الإجراء 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" على الويب، واختيار الملف الشخصي (الملف الشخصي) والنقر على إعدادات التجارة الإلكترونية. اتّبِع تعليمات إعداد التجارة الإلكترونية لتصنيف كل خطوة من خطوات الدفع التي تنوي تتبُّعها.

إعداد التجارة الإلكترونية في واجهة مشرف "إحصاءات Google". يتم تحديد مسار الدفع
         من خلال أربع خطوات: 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",
    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.

الجمع بين مرات الظهور والإجراءات

وفي الحالات التي تتضمّن فيها مرات ظهور للمنتج وإجراءً معًا، من الممكن دمج هذا المقياس وقياسه في نتيجة واحدة.

يوضّح المثال التالي كيفية قياس عرض تفاصيل المنتج باستخدام مرّات ظهور المنتج من قسم المنتجات ذات الصلة:

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")))));