التجارة الإلكترونية المحسَّنة

يتيح المكوّن الإضافي للتجارة الإلكترونية المحسَّنة لـ analytics.js إمكانية قياس تفاعلات المستخدم مع المنتجات على مواقع التجارة الإلكترونية عبر تجربة التسوق الخاصة بالمستخدم، بما في ذلك: مرات ظهور المنتج، والنقرات على المنتج، وعرض تفاصيل المنتج، وإضافة منتج إلى سلة التسوق، وبدء عملية الدفع، والمعاملات، وعمليات ردّ الأموال.

نقل البيانات والتوافق مع المكوّن الإضافي للتجارة الإلكترونية (ecommerce.js)

إذا كنت قد نفّذت بالفعل قياس التجارة الإلكترونية وتريد البدء في استخدام التجارة الإلكترونية المحسَّنة، هناك خياران رئيسيان:

استخدام موقع جديد

يمكنك إضافة أداة تتبُّع أخرى لموقع تم إنشاؤه حديثًا وتفعيل علامة/تفعيل التجارة الإلكترونية المحسَّنة للموقع الجديد. راجع العمل مع كائنات تتبع متعددة للحصول على مزيد من التفاصيل حول كيفية إرسال البيانات إلى مواقع متعددة من صفحة واحدة.

نقل موقع حالي

للانتقال من المكوّن الإضافي للتجارة الإلكترونية إلى المكوّن الإضافي للتجارة الإلكترونية المحسَّنة، على مستخدمي analytics.js الحاليين إزالة المراجع واستبدالها برمز التجارة الإلكترونية المحسَّنة.

إذا كنت تستخدم حاليًا ga.js، ستحتاج أولاً إلى نقل البيانات إلى analytics.js قبل استخدام المكوّن الإضافي للتجارة الإلكترونية المحسَّنة.

لن تتأثّر عملية نقل البيانات ببيانات المعاملات والسلع التي تمّ جمعها سابقًا باستخدام المكوِّن الإضافي ecommerce.js، وستظل متوفّرة في المواقع والملفات الشخصية التي تمّ إرسالها إليها في الأصل.

أنواع بيانات التجارة الإلكترونية المحسَّنة وإجراءاتها

تتوفّر أنواع متعدّدة من بيانات التجارة الإلكترونية التي يمكنك إرسالها:

بيانات مرات الظهور

تمثل معلومات عن منتج تم عرضه. ويُشار إليه باسم impressionFieldObject ويحتوي على القيم التالية:

المفتاح نوع القيمة مطلوبة الوصف
id text *نعم

معرّف المنتج أو رمز التخزين التعريفي (SKU) (مثلاً P67890)

* يجب ضبط قيمة من id أو name.

name text *نعم

اسم المنتج (مثلاً قميص Android).

* يجب ضبط قيمة من id أو name.

list text لا القائمة أو المجموعة التي ينتمي إليها المنتج (مثل نتائج البحث)
list_name text لا القائمة أو المجموعة التي ينتمي إليها المنتج (مثل نتائج البحث)
brand text لا العلامة التجارية المرتبطة بالمنتج (مثل Google).
category text لا الفئة التي ينتمي إليها المنتج (مثل الملابس). يمكنك استخدام / كمحدِّد لتحديد ما يصل إلى 5 مستويات من التدرج الهرمي (مثل الملابس/الرجال/القمصان القصيرة الأكمام).
variant text لا خيار المنتج (مثلاً أسود).
position عدد صحيح لا موضع المنتج في قائمة أو مجموعة (مثلاً 2).
list_position عدد صحيح لا موضع المنتج في قائمة أو مجموعة (مثلاً 2).
price الرقم لا سعر منتج (مثلاً 29.20).

بيانات المنتج

تمثل بيانات المنتج المنتجات الفردية التي تم الاطّلاع عليها أو إضافتها إلى سلة التسوق أو غير ذلك. ويُشار إليها باسم productFieldObject وتحتوي على القيم التالية:

المفتاح نوع القيمة مطلوبة الوصف
id text *نعم

معرّف المنتج أو رمز التخزين التعريفي (SKU) (مثلاً P67890)

* يجب ضبط رقم من المعرّف أو name.

name text *نعم

اسم المنتج (مثلاً قميص Android).

* يجب ضبط رقم من المعرّف أو name.

brand text لا العلامة التجارية المرتبطة بالمنتج (مثل Google).
category text لا الفئة التي ينتمي إليها المنتج (مثل الملابس). يمكنك استخدام / كمحدِّد لتحديد ما يصل إلى 5 مستويات من التسلسل الهرمي (مثل الملابس/الرجال/القمصان).
variant text لا خيار المنتج (مثلاً أسود).
price الرقم لا سعر منتج (مثلاً 29.20).
quantity عدد صحيح لا كمية المنتج (مثلاً 2).
coupon text لا رمز القسيمة المرتبط بمنتج (مثل SUMMER_SALE13).
position عدد صحيح لا موضع المنتج في قائمة أو مجموعة (مثلاً 2).
list_position عدد صحيح لا موضع المنتج في قائمة أو مجموعة (مثلاً 2).

بيانات العرض الترويجي

تمثّل هذه السمة معلومات عن عرض ترويجي تمت مشاهدته. يُشار إليه باسم promoFieldObject ويحتوي على القيم التالية:

المفتاح نوع القيمة مطلوبة الوصف
id text *نعم

معرّف العرض الترويجي (مثل PROMO_1234)

* يجب ضبط قيمة من id أو name.

name text *نعم

اسم العرض الترويجي (مثل تخفيضات الصيف).

* يجب ضبط قيمة من id أو name.

creative text لا تصميم الإعلان المرتبط بالعرض الترويجي (على سبيل المثال الصيف_banner2).
creative_name text لا اسم تصميم الإعلان (على سبيل المثال،ummer_banner2).
position text لا موضع تصميم الإعلان (على سبيل المثال، بانر_slot_1).
creative_slot text لا اسم خانة تصميم الإعلان (مثل البانر_slot_1).

بيانات الإجراءات

يمثل معلومات عن إجراء مرتبط بالتجارة الإلكترونية تم إجراؤه. يُشار إليه باسم actionFieldObject ويحتوي على القيم التالية:

المفتاح نوع القيمة مطلوبة الوصف
id text *نعم

معرِّف المعاملة (مثل T1234).

* مطلوب إذا كان نوع الإجراء purchase أو refund

affiliation text لا المتجر أو الارتباط الذي حدثت منه هذه المعاملة (مثل Google Store).
revenue الرقم لا

تحدّد إجمالي الأرباح أو الإجمالي الكلي المرتبط بالمعاملة (مثلاً 11.99). يمكن أن تشمل هذه القيمة الشحن أو تكاليف الضرائب أو التسويات الأخرى في إجمالي الأرباح التي تريد تضمينها كجزء من عمليات احتساب الأرباح.

القيمة الرقم لا القيمة (أي الأرباح) المرتبطة بالحدث
tax الرقم لا إجمالي الضريبة المرتبطة بالمعاملة.
shipping الرقم لا تكلفة الشحن المرتبطة بالمعاملة.
coupon text لا قسيمة المعاملة التي تم تحصيل قيمتها مع المعاملة.
list text لا تمثّل هذه السمة القائمة التي تنتمي إليها المنتجات المرتبطة. اختياريّ.
items صفيف لا المصفوفة التي تحتوي على المنتجات المرتبطة بها
step عدد صحيح لا رقم يمثل خطوة في عملية الدفع. اختيارية في إجراءات "الدفع".
checkout_step عدد صحيح لا رقم يمثل خطوة في عملية الدفع.
option text لا حقل إضافي لإجراءات checkout وcheckout_option يمكن أن يصف معلومات الخيار في صفحة الدفع، مثل طريقة الدفع المحدّدة.
checkout_option text لا خيار الدفع (أي طريقة الدفع المحدَّدة)

الإجراءات المتعلقة بالمنتجات والعروض الترويجية

تحدّد الإجراءات كيفية تفسير بيانات المنتجات والعروض الترويجية التي ترسلها إلى "إحصاءات Google".

الإجراء حدث الوصف
click نقرة على رابط منتج أو منتج لمنتج واحد أو أكثر.
detail طريقة عرض لتفاصيل المنتج
add إضافة منتج واحد أو أكثر إلى سلة التسوّق
remove أزِل منتجًا واحدًا أو أكثر من سلة التسوّق.
checkout بدء عملية الدفع لمنتج واحد أو أكثر.
checkout_option جارٍ إرسال قيمة الخيار لخطوة دفع محدّدة.
purchase بيع منتج واحد أو أكثر.
refund ردّ الأموال المدفوعة مقابل منتج واحد أو أكثر
promo_click نقرة على إعلان ترويجي داخلي.
add_to_cart يضيف المستخدم منتجًا واحدًا أو أكثر إلى سلة التسوّق.
begin_checkout يبدأ المستخدم عملية الدفع لمنتج واحد أو أكثر.
checkout_progress يُكمل المستخدم خطوات الدفع بعد الخطوة الأولى من عملية الدفع.
purchase يُكمل مستخدم عملية شراء.
refund يتم ردّ الأموال للمستخدم مقابل منتج واحد أو أكثر.
remove_from_cart يزيل المستخدم منتجًا واحدًا أو أكثر من سلة التسوّق.
select_content ينقر المستخدم على رابط منتج أو منتج.
set_checkout_option هي خطوة الدفع التي يُكملها المستخدم.
view_item يشاهد مستخدم تفاصيل منتج معيّن.
view_item_list يشاهد أحد المستخدمين قائمة من منتج واحد أو أكثر.
view_promotion ينقر المستخدِم على عرض ترويجي داخلي.
view_refund يشاهد أحد المستخدمين الأموال المردودة لمنتج واحد أو أكثر.

التنفيذ

توضّح الأقسام التالية كيفية تنفيذ المكوّن الإضافي للتجارة الإلكترونية المحسَّنة لقياس نشاط التجارة الإلكترونية على موقع إلكتروني باستخدام مكتبة analytics.js.

تحميل المكوّن الإضافي للتجارة الإلكترونية

لخفض حجم مكتبة analytics.js، لا تتوفّر التجارة الإلكترونية المحسَّنة في المكتبة التلقائية. بدلاً من ذلك، يتم توفيره كوحدة مكونة إضافية يجب تحميلها قبل استخدامها.

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

ga('require', 'ec');

يجب أن يتم تنفيذ هذا الأمر بعد إنشاء كائن برنامج التتبُّع وقبل استخدام أيٍّ من الوظائف الخاصة بالتجارة الإلكترونية المحسَّنة.

إرسال بيانات التجارة الإلكترونية المحسَّنة

بعد التحميل، ستتم إضافة أمرَين جديدَين خاصَين بالتجارة الإلكترونية المحسَّنة إلى أداة التتبُّع التلقائية ويمكنك البدء في إرسال بيانات التجارة الإلكترونية.

قياس أنشطة التجارة الإلكترونية

سيقيس تنفيذ التجارة الإلكترونية المحسَّنة النموذجي مرّات ظهور المنتجات، بالإضافة إلى أيّ من الإجراءات التالية:

  • النقرات على رابط منتج
  • عرض تفاصيل المنتج.
  • عدد مرّات الظهور وعدد النقرات الخاصة بالعروض الترويجية الداخلية
  • إضافة منتج من سلة التسوّق أو إزالته
  • بدء عملية الدفع لمنتج ما.
  • عمليات الشراء وردّ الأموال

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

يتم قياس مرّات ظهور المنتجات باستخدام الأمر ec:addImpression. تتم إضافة التفاصيل عن المنتج في impressionFieldObject.

على سبيل المثال، يقيس الرمز التالي مرة ظهور منتج في قائمة نتائج البحث:

ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Search Results',         // Product list (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

يجب أن يحتوي impressionFieldObject على القيمة name أو id. وجميع القيم الأخرى اختيارية ولا تحتاج إلى ضبطها.

قياس الإجراءات

يتم قياس الإجراءات باستخدام الأمر ec:addProduct مع الأمر productFieldObject لإضافة تفاصيل المنتج، والأمر ec:setAction لتحديد الإجراء الذي يتم تنفيذه.

على سبيل المثال، يقيس الرمز التالي نقرة على رابط منتج معروض في قائمة نتائج البحث:

ga('ec:addProduct', {               // Provide product details in a productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

ga('ec:setAction', 'click', {       // click action.
  'list': 'Search Results'          // Product list (string).
});

يجب أن يتضمّن productFieldObject القيمة name أو id. وجميع القيم الأخرى اختيارية ولا تحتاج إلى ضبطها.

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

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

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

// The impression from a Related Products section.
ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1                     // Product position (number).
});

// The product being viewed.
ga('ec:addProduct', {                 // Provide product details in an productFieldObject.
  'id': 'P67890',                     // Product ID (string).
  'name': 'YouTube Organic T-Shirt',  // Product name (string).
  'category': 'Apparel/T-Shirts',     // Product category (string).
  'brand': 'YouTube',                 // Product brand (string).
  'variant': 'gray',                  // Product variant (string).
  'position': 2                       // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

قياس المعاملات

يمكنك قياس معاملة باستخدام الأمر ec:setAction وضبط نوع الإجراء على purchase. يتم تقديم تفاصيل مستوى المعاملة، مثل إجمالي الإيرادات والضريبة والشحن في actionFieldObject:

ga('ec:addProduct', {               // Provide product details in an productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'black',               // Product variant (string).
  'price': '29.20',                 // Product price (number).
  'coupon': 'APPARELSALE',          // Product coupon (string).
  'quantity': 1                     // Product quantity (number).
});

ga('ec:setAction', 'purchase', {          // Transaction details are provided in an actionFieldObject.
  'id': 'T12345',                         // (Required) Transaction id (string).
  'affiliation': 'Google Store - Online', // Affiliation (string).
  'revenue': '37.39',                     // Revenue (number).
  'tax': '2.85',                          // Tax (number).
  'shipping': '5.34',                     // Shipping (number).
  'coupon': 'SUMMER2013'                  // Transaction coupon (string).
});

يجب أن يحتوي actionFieldObject على القيمة id إذا كان نوع الإجراء purchase أو refund. وجميع القيم الأخرى اختيارية، ولا يلزم ضبطها.

قياس عمليات ردّ الأموال

لردّ أموال معاملة بأكملها، اضبط إجراء refund وقدِّم معرّف المعاملة:

// Refund an entire transaction.
ga('ec:setAction', 'refund', {
  // Transaction ID is only required field for full refund.
  'id': 'T12345'
});

إذا لم يتم العثور على معاملة مطابقة، لن تتم معالجة نتيجة refund.

لقياس عملية ردّ جزء من الأموال، اضبط إجراء refund وحدِّد معرّف المعاملة ومعرّفات المنتجات وكميات المنتجات التي تريد ردّ أموالها:

// Refund a single product.
ga('ec:addProduct', {
  'id': 'P12345',       // Product ID is required for partial refund.
  'quantity': 1         // Quantity is required for partial refund.
});

ga('ec:setAction', 'refund', {
  'id': 'T12345',       // Transaction ID is required for partial refund.
});

استخدام أحداث عدم التفاعل لعمليات ردّ الأموال

إذا كنت بحاجة إلى إرسال بيانات ردّ الأموال باستخدام حدث ولم يكن الحدث جزءًا من السلوك الذي يتم قياسه عادةً على الموقع (أي لم يبدأه المستخدم)، ننصحك بإرسال حدث عدم تفاعل. سيمنع ذلك مقاييس مثل معدّل الارتداد والوقت المستغرَق في الموقع وما إلى ذلك من تأثُّر المقاييس بالحدث. على سبيل المثال:

ga('send', 'event', 'Ecommerce', 'Refund', {'nonInteraction': 1});

قياس عملية الدفع

لقياس كل خطوة في عملية الدفع:

  • يمكنك إضافة رمز لقياس كل خطوة من خطوات عملية الدفع.
  • أضِف رمزًا لقياس خيارات الدفع، إذا كان ذلك ممكنًا.
  • يمكنك اختياريًا تحديد أسماء خطوات سهلة الاستخدام لتقرير مسار الإحالة الناجحة للدفع من خلال ضبط إعدادات التجارة الإلكترونية في قسم المشرف من واجهة الويب.

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

لكل خطوة في عملية الدفع، ستحتاج إلى تنفيذ الرمز المقابل لإرسال البيانات إلى "إحصاءات Google":

  • حقل step

    عليك تضمين قيمة step لكل خطوة تقيسها للدفع. تُستخدم هذه القيمة لربط إجراءات الدفع بالتصنيفات التي ضبطتها لكل خطوة في إعدادات التجارة الإلكترونية.

  • حقل option

    إذا كانت لديك معلومات إضافية حول خطوة الدفع المحدّدة وقت قياس الخطوة، يمكنك ضبط الحقل option باستخدام إجراء checkout لتسجيل هذه المعلومات. على سبيل المثال، طريقة الدفع التلقائية للمستخدم (مثل Visa).

  • قياس خطوة الدفع

    لقياس خطوة الدفع، استخدِم ec:addProduct لكل منتج، وec:setAction للإشارة إلى الدفع. يمكن أن يستخدم ec:setAction سمة actionFieldObject إضافية لوصف خطوة الدفع باستخدام step وoption، إذا كان ذلك منطبقًا.

    يوضح المثال التالي كيفية قياس الخطوة الأولى في عملية الدفع باستخدام منتج واحد، وبعض المعلومات الإضافية حول نوع الدفع:

    ga('ec:addProduct', {               // Provide product details in an productFieldObject.
      'id': 'P12345',                   // Product ID (string).
      'name': 'Android Warhol T-Shirt', // Product name (string).
      'category': 'Apparel',            // Product category (string).
      'brand': 'Google',                // Product brand (string).
      'variant': 'black',               // Product variant (string).
      'price': '29.20',                 // Product price (number).
      'quantity': 1                     // Product quantity (number).
    });
    
    // Add the step number and additional info about the checkout to the action.
    ga('ec:setAction','checkout', {
        'step': 1,
        'option': 'Visa'
    });
    

2. قياس خيارات الدفع

تتيح لك خيارات الدفع قياس المعلومات الإضافية حول حالة الدفع. يُعدّ ذلك مفيدًا في الحالات التي تكون فيها قد قمت بقياس خطوة دفع أثناء المشاهدة الأولية للصفحة، ولكن تتوفّر معلومات إضافية حول خطوة الدفع نفسها بعد ضبط خيار تحديد الخيار من جانب المستخدم. على سبيل المثال، يختار المستخدم طريقة شحن.

لقياس خيار دفع، استخدِم السمة ec:setAction للإشارة إلى checkout_option وأدرِج رقم الخطوة ووصف الخيار.

من المحتمل أن ترغب في قياس هذا الإجراء بمجرد نقر المستخدم للانتقال إلى الخطوة التالية في عملية الدفع. مثال:

// (On "Next" button click)
ga('ec:setAction', 'checkout_option', {'step': 2, 'option': 'FedEx'});

ga('send', 'event', 'Checkout', 'Option', {
    hitCallback: function() {
      // advance to next page
    },
});

3- إعداد مسار الدفع

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

إعدادات التجارة الإلكترونية في قسم "المشرف" في واجهة "إحصاءات Google" على الويب. تم تفعيل التجارة الإلكترونية وإضافة 4 تصنيفات لخطوات مسار الدفع: 1. مراجعة سلة التسوق، 2. جمع معلومات الدفع، 3. أكِّد تفاصيل
     الشراء، 4- إيصال
الشكل 1: إعداد التجارة الإلكترونية - مسار الدفع

قياس عمليات الترويج الداخلية

يتضمن المكوّن الإضافي للتجارة الإلكترونية المحسَّنة دعمًا لقياس مرات الظهور والنقرات المرتبطة بالعروض الترويجية الداخلية، مثل إعلانات البانر التي يتم عرضها للترويج لتخفيضات على قسم آخر من الموقع الإلكتروني.

مرات ظهور العروض الترويجية

بشكل عام، يتم قياس مرّات ظهور الإعلان الترويجي الداخلي عند تحميل الصفحة ويتم إرسالها مع المشاهدات الأولية للصفحة باستخدام الأمر ec:addPromo. مثال:

ga('ec:addPromo', {               // Promo details provided in a promoFieldObject.
  'id': 'PROMO_1234',             // Promotion ID. Required (string).
  'name': 'Summer Sale',          // Promotion name (string).
  'creative': 'summer_banner2',   // Creative (string).
  'position': 'banner_slot1'      // Position  (string).
});

نقرات الترويج

يمكن قياس عدد النقرات على الإعلانات الترويجية الداخلية من خلال ضبط الإجراء promo_click. مثال:

// Identify the promotion that was clicked.
ga('ec:addPromo', {
  'id': 'PROMO_1234',
  'name': 'Summer Sale',
  'creative': 'summer_banner2',
  'position': 'banner_slot1'
});

// Send the promo_click action with an event.
ga('ec:setAction', 'promo_click');
ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');

على سبيل المثال، لقياس صفحة تفاصيل منتج مع مرة ظهور ونقرة ترويجية، عليك أولاً إرسال بيانات المنتج ومرّات الظهور مع المشاهدة الأوليّة للصفحة، ثم إرسال بيانات النقرات الترويجية في حدث منفصل:

// 1. Send product and impression data with pageview.
ga('ec:addProduct', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
});

// The impression from the Related Products section.
ga('ec:addImpression', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1,                    // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

ga('send', 'pageview');             // Send the product data with initial pageview.


// 2. Send the promo click data when the promo click occurs.
// Call this function when promo click occurs.
function onPromoClick() {
  ga('ec:addPromo', {
    'id': 'PROMO_1234',
    'name': 'Summer Sale',
    'creative': 'summer_banner2',
    'position': 'banner_slot1'
  });

  // Send the promo_click action with an event.
  ga('ec:setAction', 'promo_click');
  ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');
}

يجب أن يحتوي promoFieldObject على قيمة name أو id. وجميع القيم الأخرى اختيارية ولا تحتاج إلى ضبطها.

مثال كامل

توضّح مقتطفات الرمز أدناه كيفية قياس دورة حياة التجارة الإلكترونية لمنتج واحد من مرة الظهور الأولية إلى المعاملة باستخدام المكوّن الإضافي للتجارة الإلكترونية المحسَّنة.

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

في هذا المثال، يرى المستخدم المنتج أولاً في قائمة نتائج البحث. لقياس مرة ظهور هذا المنتج، استخدِم الأمر ec:addImpression وقدِّم تفاصيل المنتج في impressionFieldObject:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addImpression', {
  'id': 'P12345',                   // Product details are provided in an impressionFieldObject.
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'Google',
  'variant': 'black',
  'list': 'Search Results',
  'position': 1                     // 'position' indicates the product position in the list.
});

ga('ec:addImpression', {
  'id': 'P67890',
  'name': 'YouTube Organic T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'YouTube',
  'variant': 'gray',
  'list': 'Search Results',
  'position': 2
});

ga('send', 'pageview');              // Send product impressions with initial pageview.

قياس النقر على المنتج

بعد ذلك، يعبّر أحد المستخدمين عن اهتمامه بهذا المنتج بالتحديد من خلال النقر على بيانات المنتج للاطّلاع على مزيد من التفاصيل.

لقياس هذه النقرة على المنتج، استخدِم ec:addProduct وec:setAction:

// Called when a link to a product is clicked.
function onProductClick() {
  ga('ec:addProduct', {
    'id': 'P12345',
    'name': 'Android Warhol T-Shirt',
    'category': 'Apparel',
    'brand': 'Google',
    'variant': 'black',
    'position': 1
  });
  ga('ec:setAction', 'click', {list: 'Search Results'});

  // Send click with an event, then send user to product page.
  ga('send', 'event', 'UX', 'click', 'Results', {
    hitCallback: function() {
      document.location = '/product_details?id=P12345';
    }
  });
}

يمكن بعد ذلك تنفيذ رابط المنتج على النحو التالي:

<a href="/next-page.html"
   onclick="onProductClick(); return !ga.loaded;">
  Android Warhol T-Shirt
</a>

قياس طريقة عرض تفاصيل المنتج

بعد النقر على بيانات المنتج، تظهر للمستخدم صفحة تفاصيل المنتج.

لقياس عرض تفاصيل المنتج هذا، يمكنك استخدام ec:addProduct وec:setAction لتحديد إجراء detail:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});

ga('ec:setAction', 'detail');

ga('send', 'pageview');       // Send product details view with the initial pageview.

قياس إضافة أو إزالة من سلة التسوق

يعبّر المستخدم عن رغبته في شراء السلعة عن طريق إضافتها إلى سلة التسوّق.

لقياس عمليات إضافة أو إزالة منتج من سلة التسوّق، استخدِم ec:addProduct واضبط النوع add أو remove:

// Called when a product is added to a shopping cart.
function addToCart(product) {
  ga('ec:addProduct', {
    'id': product.id,
    'name': product.name,
    'category': product.category,
    'brand': product.brand,
    'variant': product.variant,
    'price': product.price,
    'quantity': product.qty
  });
  ga('ec:setAction', 'add');
  ga('send', 'event', 'UX', 'click', 'add to cart');     // Send data using an event.
}

قياس عملية الدفع

المستخدم الآن جاهز لبدء عملية الدفع، والتي تتضمن في هذا المثال خطوتين، كل منهما على صفحات منفصلة:

  • أضِف تفاصيل الدفع (payment.html).
  • أضِف تفاصيل الشحن (shipping.html).

تأكَّد من ضبط مسار الإحالة الناجحة للدفع بشكل صحيح في "مشرف واجهة الويب" ضمن إعدادات التجارة الإلكترونية، إذا كان ذلك منطبقًا. مثال:

إعدادات التجارة الإلكترونية في قسم &quot;المشرف&quot; في واجهة &quot;إحصاءات Google&quot; على الويب. تم تفعيل التجارة الإلكترونية وإضافة تصنيفات خطوات مسار الدفع: 1. &quot;تفاصيل الدفع&quot;، 2. تفاصيل الشحن
الشكل 2: إعداد التجارة الإلكترونية - مسار الدفع

الخطوة 1: الدفع

لقياس الخطوة الأولى من عملية الدفع، استخدِم ec:addProduct لكل منتج في سلة التسوّق وec:setAction للإشارة إلى checkout. يستخدم ec:setAction الحقل actionFieldObject لوصف خطوة الدفع من خلال رقم. وتم تضمين معلومات إضافية حول طريقة الدفع التلقائية لهذا المستخدم باستخدام الحقل option:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

// In the case of checkout actions, an additional actionFieldObject can
// specify a checkout step and option.
ga('ec:setAction','checkout', {
    'step': 1,            // A value of 1 indicates this action is first checkout step.
    'option': 'Visa'      // Used to specify additional info about a checkout stage, e.g. payment method.
});
ga('send', 'pageview');   // Pageview for payment.html

الخطوة 2: الشحن

لقياس الخطوة الثانية من عملية الدفع، استخدِم ec:addProduct لكل منتج في سلة التسوّق وec:setAction للإشارة إلى عملية الدفع. في هذه الحالة، لا تتوفّر لدينا معلومات إضافية حول خيار الشحن المحدد عند إرسال المشاهدة الأولى للصفحة، لذا سيتم التعامل مع هذه المعلومات بشكل منفصل باستخدام السمة ec:setAction للإشارة إلى checkout_option.

// Measure checkout step 2:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

ga('ec:setAction','checkout', {'step': 2});
ga('send', 'pageview');     // Pageview for shipping.html


// Called when user has completed shipping options.
function onShippingComplete(stepNumber, shippingOption) {
  ga('ec:setAction', 'checkout_option', {
    'step': stepNumber,
    'option': shippingOption
  });

  ga('send', 'event', 'Checkout', 'Option', {
     hitCallback: function() {
       // Advance to next page.
     }
  });
}

يمكن بعد ذلك تنفيذ النموذج على النحو التالي:

<a href="/next-page.html"
   onclick="onShippingComplete(2, 'FedEx'); return !ga.loaded;">
  Continue
</a>

قياس المعاملة

أخيرًا، يُكمل المستخدم عملية الدفع ويرسل عملية الشراء.

لقياس معدّل بيع منتج واحد أو أكثر، استخدِم السمة ec:addProduct لإضافة كل منتج، ثم على ec:setAction لتحديد purchase. يمكن تحديد معلومات مستوى المعاملة، مثل إجمالي الأرباح والضرائب وما إلى ذلك، من خلال actionFieldObject. مثال:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '29.20',
  'quantity': 1
});

// Transaction level information is provided via an actionFieldObject.
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'affiliation': 'Google Store - Online',
  'revenue': '37.39',
  'tax': '2.85',
  'shipping': '5.34',
  'coupon': 'SUMMER2013'    // User added a coupon at checkout.
});

ga('send', 'pageview');     // Send transaction data with initial pageview.

تحديد العملات المحلية

بشكل تلقائي، يمكنك ضبط عملة مشتركة وعالمية لجميع المعاملات والعناصر من خلال واجهة الويب لإدارة "إحصاءات Google". بشكل افتراضي، يتم استخدام العملة العالمية لجميع العناصر والمعاملات. بالنسبة إلى المواقع الإلكترونية التي تُجري معاملات بعملات متعددة، يسمح لك المكوّن الإضافي للتجارة الإلكترونية بتحديد العملة المحلية للمعاملة.

يجب تحديد العملة المحلية في معيار ISO 4217. اقرأ مستند مرجع رموز العملات للحصول على قائمة كاملة بعملات التحويل المتوافقة.

يتم تحديد العملات المحلية باستخدام سمة تتبُّع currencyCode. على سبيل المثال، سيرسل برنامج التتبُّع هذا قيم العملة مثل اليورو:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('set', 'currencyCode', 'EUR'); // Set currency to Euros.

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '21.89',
  'quantity': 1
});

ga('ec:setAction', 'purchase', {
  id: 'T12345',
  affiliation: 'Google Store - Online',
  revenue: '28.03',
  tax: '2.14',
  shipping: '4.00',
  coupon: 'SUMMER2013'
});

ga('send', 'pageview');