加強型電子商務追蹤 - iOS SDK

本文件將概略介紹如何使用 iOS 專用的 Google Analytics (分析) SDK v3,評估應用程式內電子商務相關動作和曝光。

總覽

「加強型電子商務」可用於評估使用者在購物體驗中與產品的互動,包括:產品曝光、產品點擊、查看產品詳細資料、將產品加入購物車、啟動結帳程序、交易和退款。

導入作業

您必須先在應用程式中加入 加強型電子商務程式庫,才能在應用程式中導入加強型電子商務追蹤。

設定應用程式使用加強型電子商務功能後,您可以:

評估電子商務活動

採用常見加強型電子商務導入方式會評估產品曝光次數和下列任何一種動作:

  • 選取產品。
  • 查看產品詳細資料。
  • 曝光及選擇內部宣傳活動。
  • 加入 / 移除購物車中的產品。
  • 啟動產品的結帳程序。
  • 購買和退款。

評估曝光次數

如要評估產品曝光,請設定產品和曝光值,並與含有命中資料一起傳送:

id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setCustomDimension:1 value:@"Member"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Sets the product impression for the next available slot, starting with 1.
[builder addProductImpression:product
               impressionList:@"Search Results"
             impressionSource:@"From Search"];
[tracker set:kGAIScreenName value:@"My Impression Screen"];
[tracker send:[builder build]];

產品必須有名稱或 ID 值。所有其他值則為選用值,您不需要設定。

評估動作

方法的評估方法是設定產品值,然後設定產品動作值來指定執行的動作。

例如,以下程式碼會測量在搜尋結果清單中顯示的產品選取項目:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setCustomDimension:1 value:@"Member"];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPAClick];
[action setProductActionList:@"Search Results"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
[builder setProductAction:action];

// Sets the product for the next available slot, starting with 1
[builder addProduct:product];
[tracker set:kGAIScreenName value:@"My Impression Screen"];
[tracker send:[builder build]];

產品必須有名稱或 ID 值。所有其他值則為選用值,您不需要設定。

結合曝光與動作

如果同時有產品曝光和一項動作,可以在單一命中中結合並評估這一點。

以下範例說明如何評估含相關產品區段的產品詳細資料檢視畫面:

// The product from the related products section.
id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12346"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"White"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Sets the product impression for the next available slot, starting with 1.
[builder addProductImpression:product
               impressionList:@"Related Products"
             impressionSource:@"From Related"];

// The product being viewed.
product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPADetail];
[builder setProductAction:action];
// Sets the product for the next available slot, starting with 1.
[builder addProduct:product];
[tracker set:kGAIScreenName value:@"Related Products Screen"];
[tracker send:[builder build]];

評估交易

設定產品價值,然後設定產品動作價值來指定購買動作,藉此評估交易。產品動作值可以設定交易層級詳細資料,例如總收益、稅金和運費。

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setPrice:@29.20];
[product setCouponCode:@"APPARELSALE"];
[product setQuantity:@1];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Purchase"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPAPurchase];
[action setTransactionId:@"T12345"];
[action setAffiliation:@"Google Store - Online"];
[action setRevenue:@37.39];
[action setTax:@2.85];
[action setShipping:@5.34];
[action setCouponCode:@"SUMMER2013"];
[builder setProductAction:action];

// Sets the product for the next available slot, starting with 1
[builder addProduct:product];
[tracker send:[builder build]];

指定貨幣

根據預設,您可以透過 Google Analytics (分析) 管理網頁介面,為所有交易和項目設定通用的通用貨幣。

指定當地幣別時必須遵守 ISO 4217 標準。如需支援的轉換貨幣完整清單,請參閱貨幣代碼參考資料

請在追蹤程式上設定貨幣代碼值,指定當地幣別。舉例來說,這個追蹤器會傳送歐元值做為歐元:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTracker"];
[tracker set:kGAIScreenName value:@"transaction"];
[tracker set:kGAICurrencyCode value:@"EUR"]; // Set tracker currency to Euros.
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
[tracker send:[builder build]];

評估退款金額

如要退還整筆交易的款項,請將產品動作值設為指定交易 ID 和退款動作類型:

// Refund an entire transaction.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"];
[builder setProductAction:action];
[tracker send:[builder build]];

如果系統找不到相符的交易,就不會處理退款。

如要評估部分退款,請設定產品動作值以指定要退款的交易 ID、產品 ID 和產品數量:

// Refund a single product.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"]; // Product ID is required for partial refund.
[product setQuantity:@1]; // Quanity is required for partial refund.
[builder addProduct:product];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"]; // Transaction ID is required for partial refund.
[builder setProductAction:action];
[tracker send:[builder build]];

使用非互動事件退款

如果您需要使用事件傳送退款資料,且該事件不屬於一般測量的使用者行為 (也就是使用者不發起),建議您傳送非互動事件。這樣可以避免特定指標受到事件影響。例如:

// Refund an entire transaction.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];

[builder set:@"1" forKey:kGAINonInteraction];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"];

[builder setProductAction:action];
[tracker send:[builder build]];

評估結帳程序

如要評估結帳程序的每個步驟:

  1. 加入追蹤程式碼,評估結帳程序的每個步驟。
  2. 如果適用,請加入追蹤程式碼來評估結帳選項。
  3. 您可以選擇在網頁介面的「管理」部分中設定「電子商務設定」,為結帳程序報表設定容易理解的步驟名稱。

1. 評估結帳步驟

您必須為結帳程序中的每個步驟導入對應的追蹤程式碼,才能將資料傳送至 Google Analytics (分析)。

Step 欄位

您應該在評估的每個結帳步驟中加入 step 值。系統會使用這個值,將結帳動作對應至您在「電子商務設定」中為每個步驟指定的標籤。

Option 欄位

如果您在評估步驟時,有關於該結帳步驟的其他資訊,您可以使用結帳動作設定結帳選項欄位來擷取這項資訊。例如使用者的預設付款方式 (例如「Visa」)。

評估結帳步驟

如要評估結帳步驟,請設定產品價值,然後設定產品動作值來表示結帳動作。如果適用,您也可以在結帳中設定結帳步驟和結帳選項值。

以下範例說明如何使用單一產品評估結帳程序的第一個步驟,以及部分付款類型的相關資訊:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setPrice:@29.20];
[product setCouponCode:@"APPARELSALE"];
[product setQuantity:@1];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Checkout"
                                                                        label:nil
                                                                        value:nil];

// Add the step number and additional info about the checkout to the action.
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPACheckout];
[action setCheckoutStep:@1];
[action setCheckoutOption:@"Visa"];

[builder addProduct:product];
[builder setProductAction:action];
[tracker send:[builder build]];

2. 評估結帳選項

結帳選項可讓您評估有關結帳狀態的其他資訊。若您評估了結帳步驟,但系統顯示使用者選取的選項後,系統會顯示相同結帳步驟的其他資訊,此時這個做法就非常實用。例如,使用者選取運送方式。

如要評估結帳選項,請設定產品動作值來表示結帳選項,並加入步驟編號和選項說明。

當使用者執行特定動作前往結帳程序的下一個步驟後,建議您評估這項動作。例如:

// (On "Next" button click.)
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"CheckoutOption"
                                                                        label:nil
                                                                        value:nil];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPACheckoutOption];
[action setCheckoutStep:@1];
[action setCheckoutOption:@"Fedex"];

[builder setProductAction:action];
[tracker send:[builder build]];
// Advance to next page.

3. 結帳漏斗設定

您可以為結帳程序中的每個步驟指定用於報表的描述性名稱。如要設定這些名稱,請前往 Google Analytics (分析) 網頁介面的「管理」部分,選取資料檢視 (設定檔),然後按一下「電子商務設定」。請按照電子商務設定操作說明,為每個您想追蹤的結帳步驟加上標籤。

Google Analytics (分析) 網頁介面上「管理」區段中的「電子商務設定」。電子商務已啟用,並已新增 4 個結帳漏斗步驟標籤:1. 查看購物車,2. 收集付款資訊,3. 確認購買詳細資料,4. 收據
圖 1:電子商務設定 - 結帳漏斗

評估內部促銷活動

「加強型電子商務」支援評估內部宣傳活動的曝光次數和選項,例如用來宣傳促銷活動的橫幅。

促銷活動曝光次數

內部促銷活動曝光通常是透過設定促銷值,從初始畫面瀏覽或事件進行評估。例如:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
[promotion setId:@"PROMO_1234"];
[promotion setName:@"Summer Sale"];
[promotion setCreative:@"summer_banner2"];
[promotion setPosition:@"banner_slot1"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Promotion"
                                                                        label:nil
                                                                        value:nil];

[builder addPromotion:promotion];
[tracker send:[builder build]];

促銷活動點擊

您可以利用促銷活動價值,然後設定產品動作值來表示促銷活動的點擊次數,藉此評估內部促銷活動的點擊次數。例如:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
[promotion setId:@"PROMO_1234"];
[promotion setName:@"Summer Sale"];
[promotion setCreative:@"summer_banner2"];
[promotion setPosition:@"banner_slot1"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Internal Promotions"
                                                                       action:@"click"
                                                                        label:@"Summer Sale"
                                                                        value:nil];

[builder set:kGAIPromotionClick forKey:kGAIPromotionAction];
[builder addPromotion:promotion];
[tracker send:[builder build]];