Universal Analytics تجارت الکترونیک را برای iOS بهبود بخشید

تجارت الکترونیک پیشرفته یک ویژگی Google Analytics است که در ویژگی های Universal Analytics موجود است که امکان اندازه گیری تعاملات کاربر با محصولات را در سراسر تجربه خرید کاربر فراهم می کند. این می تواند شامل نمایش محصول، کلیک محصول، مشاهده جزئیات محصول، افزودن موارد به سبد خرید، شروع پرداخت، تراکنش ها و بازپرداخت باشد.

آخرین نسل‌های Google Tag Manager و Google Analytics برای برنامه‌های تلفن همراه با Firebase ، پلتفرم برنامه تلفن همراه Google، کار می‌کنند. هنگام اندازه‌گیری برنامه‌ها با Firebase SDK ، به مجموعه‌ای از گزارش‌های برنامه تلفن همراه که به‌طور خودکار تولید می‌شوند، دسترسی خواهید داشت که می‌توانند بیشتر سفارشی‌سازی شوند و با کد درون‌برنامه تکمیل شوند. این گزارش‌ها به‌طور خودکار شامل داده‌های مربوط به خریدهای درون‌برنامه‌ای می‌شوند که توسط App Store در iTunes و Google Play پردازش می‌شوند. گزارش‌های مرتبط با تجارت الکترونیک اضافی را می‌توان با اجرای رویدادهای پیشنهادی برای برنامه‌های تجارت الکترونیک ایجاد کرد. گزارش‌های عمیق درباره رفتار خرید (یعنی تجارت الکترونیک پیشرفته) در حال حاضر فقط در ویژگی‌های Universal Analytics موجود است.

این سند نحوه استفاده از Tag Manager برای برنامه‌های iOS را در ارتباط با Firebase SDK برای ارسال داده‌های تجارت الکترونیک پیشرفته به ویژگی‌های Universal Analytics توضیح می‌دهد. از همان نحو رویداد و پارامتر باید برای ایجاد زمینه برای گزارش‌های تجارت الکترونیک اضافی در آینده استفاده شود.

اولین قدم ها

قبل از شروع، پیش نیازهای زیر را برای برنامه خود تنظیم کنید:

  1. Firebase و Google Tag Manager را در برنامه خود نصب و پیکربندی کنید. مطمئن شوید که از نسخه 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 و برابر تعریف نشده است

نمایش جزئیات محصول

نماهای جزئیات محصول را با ثبت یک رویداد 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 است
  • برابر با تعریف نشده است

اضافات به سبد خرید

با ثبت یک رویداد 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
  • نوع آهنگ: رویداد
  • دسته رویداد، به عنوان مثال: تبلیغات داخلی
  • اقدام رویداد، به عنوان مثال: Impression
  • آمار بدون تعامل: درست است
  • فعال کردن ویژگی های پیشرفته تجارت الکترونیک: درست است
  • خواندن داده‌ها از: رویداد Firebase
  • ماشه، به عنوان مثال: (سفارشی > برخی رویدادها) نام رویداد برابر با view_item AND است
  • تعریف نشده برابر نیست

کلیک ها/انتخاب های تبلیغاتی

با ثبت یک رویداد 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 است و مساوی با undefined نیست

فرآیند پرداخت

پرداخت را شروع کنید

با ثبت یک رویداد 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
  • ماشه، به عنوان مثال: (سفارشی > برخی رویدادها) نام رویداد برابر با begin_checkout است

گزینه های پرداخت

گزینه های تسویه حساب به شما امکان می دهد اطلاعات بیشتری در مورد وضعیت فرآیند پرداخت اندازه گیری کنید. می‌توانید گزینه‌های تسویه‌حساب را یا به‌عنوان بخشی از یک رویداد مرحله پرداخت (همانطور که در بالا نشان داده شده است) اندازه‌گیری کنید یا پس از اینکه کاربر گزینه‌ای را پس از اینکه رویداد برای یک مرحله پرداخت مشخص قبلاً ثبت شده است انتخاب کند.

با ثبت یک رویداد kFIREventCheckoutProgress با پارامترهای kFIRParameterCheckoutOption و kFIRParameterCheckoutStep مربوطه، گزینه های پرداخت را پس از یک مرحله پرداخت اندازه گیری کنید:

// 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 نوع: رویداد
  • ent دسته، به عنوان مثال: تجارت الکترونیک
  • ent Action، به عنوان مثال: گزینه 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
  • ماشه، به عنوان مثال: (سفارشی > برخی رویدادها) نام رویداد برابر با buy_refund است