التجارة الإلكترونية المحسَّنة في Universal Analytics لنظام التشغيل iOS

التجارة الإلكترونية المحسَّنة هي إحدى ميزات "إحصاءات Google" المتاحة في مواقع Universal Analytics التي تتيح قياس تفاعلات المستخدمين مع المنتجات على مستوى تجربة التسوّق لدى المستخدم. ويمكن أن يشمل ذلك مرات ظهور المنتج، والنقرات على المنتجات، ومرات مشاهدة تفاصيل المنتج، وإضافة عناصر إلى سلة التسوق، وبدء عمليات الدفع، والمعاملات، وعمليات رد الأموال.

تعمل أحدث الأجيال من كلٍّ من "إدارة العلامات من Google" و"إحصاءات Google" للتطبيقات المتوافقة مع الأجهزة الجوّالة بالتزامن مع Firebase، وهو النظام الأساسي للتطبيقات المتوافقة مع الأجهزة الجوّالة من Google. عند قياس التطبيقات باستخدام حزمة Firebase SDK، ستتمكّن من الوصول إلى عدد كبير من تقارير التطبيقات المتوافقة مع الأجهزة الجوّالة التي يتم إنشاؤها تلقائيًا، والتي يمكن تخصيصها وتخصيصها بشكلٍ إضافي باستخدام رمز داخل التطبيق. ستتضمن هذه التقارير تلقائيًا بيانات حول عمليات الشراء داخل التطبيق التي تمت معالجتها بواسطة App Store على iTunes وGoogle Play. يمكن إنشاء تقارير إضافية مرتبطة بالتجارة الإلكترونية من خلال تنفيذ الأحداث المقترحة لتطبيقات التجارة الإلكترونية. تتوفّر حاليًا تقارير تفصيلية حول سلوك التسوّق (أي التجارة الإلكترونية المحسّنة) في مواقع Universal Analytics فقط.

يصف هذا المستند كيفية استخدام "إدارة العلامات" لتطبيقات iOS مع حزمة Firebase SDK لإرسال بيانات التجارة الإلكترونية المحسَّنة إلى مواقع Universal Analytics. يجب استخدام بنية الحدث والمعلمة نفسها لإعداد الساحة لتقارير التجارة الإلكترونية الإضافية في المستقبل.

الخطوات الأولى

قبل البدء، عليك إعداد المتطلبات الأساسية التالية لتطبيقك:

  1. ثبِّت وركِّب Firebase و"إدارة العلامات من Google" في تطبيقك. تأكَّد من استخدام الإصدار 11 أو إصدار لاحق من حزمة Firebase SDK لنظام التشغيل iOS.
  2. اضبط متغيّرًا من تحديد المستخدم في حاوية "إدارة العلامات" المسماة "العروض الترويجية"، باستخدام الإعدادات التالية:
    • نوع الحدث: معلمة مخصصة
    • مفتاح معلّمة الحدث: العروض الترويجية
    • القيمة الافتراضية: غير محددة

التنفيذ

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

مرات ظهور المنتج

يمكنك قياس مرات ظهور المنتج من خلال تسجيل حدث باستخدام معلَمة 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
  • نوع المسار: مشاهدة الشاشة
  • الحقول المطلوب تعيينها: (اسم الحقل) اسم الشاشة (القيمة، على سبيل المثال) شاشة نتائج البحث
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث 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
  • نوع المقطع الصوتي: حدث
  • فئة الحدث، على سبيل المثال: التجارة الإلكترونية
  • إجراء الحدث، على سبيل المثال: النقر على المنتج
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث Firebase
  • التشغيل، على سبيل المثال: (مخصص > بعض الأحداث) اسم الحدث يساوي select_content &&brbrace;{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
  • نوع المسار: مشاهدة الشاشة
  • الحقول المطلوب تعيينها: (اسم الحقل) اسم الشاشة (القيمة، على سبيل المثال) شاشة تفاصيل المنتج
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث Firebase
  • التشغيل، على سبيل المثال: (مخصّص > بعض الأحداث) اسم الحدث يساوي view_item AND
  • {{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
  • نوع المقطع الصوتي: حدث
  • فئة الحدث، على سبيل المثال: التجارة الإلكترونية
  • إجراء الحدث، على سبيل المثال: إضافة إلى سلة التسوق
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث 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
  • نوع المقطع الصوتي: حدث
  • فئة الحدث، على سبيل المثال: التجارة الإلكترونية
  • إجراء الحدث، على سبيل المثال: إزالة من سلة التسوق
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث 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
  • نوع المقطع الصوتي: حدث
  • فئة الحدث، على سبيل المثال: الترويج الداخلي
  • إجراء الحدث، على سبيل المثال: الظهور
  • نتيجة بلا تفاعل: صحيح
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث Firebase
  • التشغيل، على سبيل المثال: (مخصّص > بعض الأحداث) اسم الحدث يساوي view_item AND
  • {{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
  • نوع المقطع الصوتي: حدث
  • فئة الحدث، على سبيل المثال: الترويج الداخلي
  • إجراء الحدث، على سبيل المثال: النقر
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث Firebase
  • التشغيل، على سبيل المثال: (مخصّص > بعض الأحداث) اسم الحدث يساوي select_content &&brbrace;{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
  • نوع المسار: مشاهدة الشاشة
  • الحقول المطلوب تعيينها: (اسم الحقل) اسم الشاشة (القيمة، على سبيل المثال) شاشة سلة التسوّق
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث Firebase
  • التشغيل، على سبيل المثال: (مخصّص > بعض الأحداث) اسم الحدث يساوي بدء_الدفع

خيارات إكمال الدفع

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

يمكنك قياس خيارات الدفع بعد خطوة الدفع من خلال تسجيل حدث 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 type: حدث
  • فئة ent، على سبيل المثال: التجارة الإلكترونية
  • إجراء ent، على سبيل المثال : تعيين خيار Checkout
  • قادرة على ميزات التجارة الإلكترونية المحسنة: صحيح
  • بيانات الإعلان من: حدث 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
  • نوع المسار: مشاهدة الشاشة
  • الحقول المطلوب تعيينها: (اسم الحقل) اسم الشاشة (القيمة، على سبيل المثال) شاشة "شكرًا لك"
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث 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
  • نوع المقطع الصوتي: حدث
  • فئة الحدث، على سبيل المثال: التجارة الإلكترونية
  • إجراء الحدث، على سبيل المثال: رد الأموال
  • تمكين ميزات التجارة الإلكترونية المحسَّنة: صحيح
  • قراءة البيانات من: حدث Firebase
  • التشغيل، على سبيل المثال: (مخصّص > بعض الأحداث) اسم الحدث يساوي purchase_refund