Skip to content

Commit 586e7be

Browse files
authored
Enhanced Ecommerce Snippets (#184)
1 parent b1b8e72 commit 586e7be

File tree

2 files changed

+399
-0
lines changed

2 files changed

+399
-0
lines changed

analytics/app/src/main/java/com/google/firebase/example/analytics/MainActivity.java

+195
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,209 @@
1616
package com.google.firebase.example.analytics;
1717

1818
import android.os.Bundle;
19+
import android.os.Parcelable;
1920

2021
import androidx.appcompat.app.AppCompatActivity;
2122

23+
import com.google.firebase.analytics.FirebaseAnalytics;
24+
2225
public class MainActivity extends AppCompatActivity {
2326

2427
@Override
2528
protected void onCreate(Bundle savedInstanceState) {
2629
super.onCreate(savedInstanceState);
2730
setContentView(R.layout.activity_main);
31+
32+
enhancedEcommerce();
33+
}
34+
35+
public void enhancedEcommerce() {
36+
FirebaseAnalytics analytics = FirebaseAnalytics.getInstance(this);
37+
38+
// [START create_items]
39+
Bundle itemJeggings = new Bundle();
40+
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_123");
41+
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_NAME, "jeggings");
42+
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "pants");
43+
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_VARIANT, "black");
44+
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google");
45+
itemJeggings.putDouble(FirebaseAnalytics.Param.PRICE, 9.99);
46+
47+
Bundle itemBoots = new Bundle();
48+
itemBoots.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_456");
49+
itemBoots.putString(FirebaseAnalytics.Param.ITEM_NAME, "boots");
50+
itemBoots.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "shoes");
51+
itemBoots.putString(FirebaseAnalytics.Param.ITEM_VARIANT, "brown");
52+
itemBoots.putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google");
53+
itemBoots.putDouble(FirebaseAnalytics.Param.PRICE, 24.99);
54+
55+
Bundle itemSocks = new Bundle();
56+
itemSocks.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_789");
57+
itemSocks.putString(FirebaseAnalytics.Param.ITEM_NAME, "ankle_socks");
58+
itemSocks.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "socks");
59+
itemSocks.putString(FirebaseAnalytics.Param.ITEM_VARIANT, "red");
60+
itemSocks.putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google");
61+
itemSocks.putDouble(FirebaseAnalytics.Param.PRICE, 5.99);
62+
// [END create_items]
63+
64+
// [START view_item_list]
65+
Bundle itemJeggingsWithIndex = new Bundle(itemJeggings);
66+
itemJeggingsWithIndex.putLong(FirebaseAnalytics.Param.INDEX, 1);
67+
68+
Bundle itemBootsWithIndex = new Bundle(itemBoots);
69+
itemBootsWithIndex.putLong(FirebaseAnalytics.Param.INDEX, 2);
70+
71+
Bundle itemSocksWithIndex = new Bundle(itemSocks);
72+
itemSocksWithIndex.putLong(FirebaseAnalytics.Param.INDEX, 3);
73+
74+
Bundle viewItemListParams = new Bundle();
75+
viewItemListParams.putString(FirebaseAnalytics.Param.ITEM_LIST_ID, "L001");
76+
viewItemListParams.putString(FirebaseAnalytics.Param.ITEM_LIST_NAME, "Related products");
77+
viewItemListParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
78+
new Parcelable[]{ itemJeggingsWithIndex, itemBootsWithIndex, itemSocksWithIndex });
79+
analytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM_LIST, viewItemListParams);
80+
// [END view_item_list]
81+
82+
// [START select_item]
83+
Bundle selectItemParams = new Bundle();
84+
selectItemParams.putString(FirebaseAnalytics.Param.ITEM_LIST_ID, "L001");
85+
selectItemParams.putString(FirebaseAnalytics.Param.ITEM_LIST_NAME, "Related products");
86+
selectItemParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
87+
new Parcelable[]{ itemJeggings });
88+
analytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, selectItemParams);
89+
// [END select_item]
90+
91+
// [START view_product_details]
92+
Bundle viewItemParams = new Bundle();
93+
viewItemParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
94+
viewItemParams.putDouble(FirebaseAnalytics.Param.VALUE, 9.99);
95+
viewItemParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
96+
new Parcelable[] { itemJeggings });
97+
98+
analytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM, viewItemParams);
99+
// [END view_product_details]
100+
101+
// [START add_to_cart_wishlist]
102+
Bundle itemJeggingsWishlist = new Bundle(itemJeggings);
103+
itemJeggingsWishlist.putLong(FirebaseAnalytics.Param.QUANTITY, 2);
104+
105+
Bundle addToWishlistParams = new Bundle();
106+
addToWishlistParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
107+
addToWishlistParams.putDouble(FirebaseAnalytics.Param.VALUE, 2 * 9.99);
108+
addToWishlistParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
109+
new Parcelable[]{ itemJeggingsWishlist });
110+
111+
analytics.logEvent(FirebaseAnalytics.Event.ADD_TO_WISHLIST, addToWishlistParams);
112+
// [END add_to_cart_wishlist]
113+
114+
// [START view_cart]
115+
Bundle itemJeggingsCart = new Bundle(itemJeggings);
116+
itemJeggingsCart.putLong(FirebaseAnalytics.Param.QUANTITY, 2);
117+
118+
Bundle itemBootsCart = new Bundle(itemBoots);
119+
itemBootsCart.putLong(FirebaseAnalytics.Param.QUANTITY, 1);
120+
121+
Bundle viewCartParams = new Bundle();
122+
viewCartParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
123+
viewCartParams.putDouble(FirebaseAnalytics.Param.VALUE, (2 * 9.99) + (1 * 24.99));
124+
viewCartParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
125+
new Parcelable[]{ itemJeggingsCart, itemBootsCart });
126+
127+
analytics.logEvent(FirebaseAnalytics.Event.VIEW_CART, viewCartParams);
128+
// [END view_cart]
129+
130+
// [START remove_from_cart]
131+
Bundle removeCartParams = new Bundle();
132+
removeCartParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
133+
removeCartParams.putDouble(FirebaseAnalytics.Param.VALUE, (1 * 24.99));
134+
removeCartParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
135+
new Parcelable[]{ itemBootsCart });
136+
137+
analytics.logEvent(FirebaseAnalytics.Event.REMOVE_FROM_CART, removeCartParams);
138+
// [END remove_from_cart]
139+
140+
// [START start_checkout]
141+
Bundle beginCheckoutParams = new Bundle();
142+
beginCheckoutParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
143+
beginCheckoutParams.putDouble(FirebaseAnalytics.Param.VALUE, 14.98);
144+
beginCheckoutParams.putString(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN");
145+
beginCheckoutParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
146+
new Parcelable[]{ itemJeggingsCart });
147+
148+
analytics.logEvent(FirebaseAnalytics.Event.BEGIN_CHECKOUT, beginCheckoutParams);
149+
// [END start_checkout]
150+
151+
// [START add_shipping]
152+
Bundle addShippingParams = new Bundle();
153+
addShippingParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
154+
addShippingParams.putDouble(FirebaseAnalytics.Param.VALUE, 14.98);
155+
addShippingParams.putString(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN");
156+
addShippingParams.putString(FirebaseAnalytics.Param.SHIPPING_TIER, "Ground");
157+
addShippingParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
158+
new Parcelable[]{ itemJeggingsCart });
159+
160+
analytics.logEvent(FirebaseAnalytics.Event.ADD_SHIPPING_INFO, addShippingParams);
161+
// [END add_shipping]
162+
163+
// [START add_payment]
164+
Bundle addPaymentParams = new Bundle();
165+
addPaymentParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
166+
addPaymentParams.putDouble(FirebaseAnalytics.Param.VALUE, 14.98);
167+
addPaymentParams.putString(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN");
168+
addPaymentParams.putString(FirebaseAnalytics.Param.PAYMENT_TYPE, "Visa");
169+
addPaymentParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
170+
new Parcelable[]{ itemJeggingsCart });
171+
172+
analytics.logEvent(FirebaseAnalytics.Event.ADD_PAYMENT_INFO, addPaymentParams);
173+
// [END add_payment]
174+
175+
// [START log_purchase]
176+
Bundle purchaseParams = new Bundle();
177+
purchaseParams.putString(FirebaseAnalytics.Param.TRANSACTION_ID, "T12345");
178+
purchaseParams.putString(FirebaseAnalytics.Param.AFFILIATION, "Google Store");
179+
purchaseParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
180+
purchaseParams.putDouble(FirebaseAnalytics.Param.VALUE, 14.98);
181+
purchaseParams.putDouble(FirebaseAnalytics.Param.TAX, 2.58);
182+
purchaseParams.putDouble(FirebaseAnalytics.Param.SHIPPING, 5.34);
183+
purchaseParams.putString(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN");
184+
purchaseParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
185+
new Parcelable[]{ itemJeggingsCart });
186+
187+
analytics.logEvent(FirebaseAnalytics.Event.PURCHASE, purchaseParams);
188+
// [END log_purchase]
189+
190+
// [START log_refund]
191+
Bundle refundParams = new Bundle();
192+
refundParams.putString(FirebaseAnalytics.Param.TRANSACTION_ID, "T12345");
193+
refundParams.putString(FirebaseAnalytics.Param.AFFILIATION, "Google Store");
194+
refundParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
195+
refundParams.putDouble(FirebaseAnalytics.Param.VALUE, 9.99);
196+
197+
// (Optional) for partial refunds, define the item ID and quantity of refunded items
198+
refundParams.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_123");
199+
refundParams.putLong(FirebaseAnalytics.Param.QUANTITY, 1);
200+
201+
refundParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
202+
new Parcelable[]{ itemJeggings });
203+
204+
analytics.logEvent(FirebaseAnalytics.Event.REFUND, refundParams);
205+
// [END log_refund]
206+
207+
// [START apply_promo]
208+
Bundle promoParams = new Bundle();
209+
promoParams.putString(FirebaseAnalytics.Param.PROMOTION_ID, "SUMMER_FUN");
210+
promoParams.putString(FirebaseAnalytics.Param.PROMOTION_NAME, "Summer Sale");
211+
promoParams.putString(FirebaseAnalytics.Param.CREATIVE_NAME, "summer2020_promo.jpg");
212+
promoParams.putString(FirebaseAnalytics.Param.CREATIVE_SLOT, "featured_app_1");
213+
promoParams.putString(FirebaseAnalytics.Param.LOCATION_ID, "HERO_BANNER");
214+
promoParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS,
215+
new Parcelable[]{ itemJeggings });
216+
217+
// Promotion displayed
218+
analytics.logEvent(FirebaseAnalytics.Event.VIEW_PROMOTION, promoParams);
219+
220+
// Promotion selected
221+
analytics.logEvent(FirebaseAnalytics.Event.SELECT_PROMOTION, promoParams);
222+
// [END apply_promo]
28223
}
29224
}

0 commit comments

Comments
 (0)