19
19
import android .os .Parcelable ;
20
20
21
21
import androidx .appcompat .app .AppCompatActivity ;
22
+
22
23
import com .google .firebase .analytics .FirebaseAnalytics ;
23
24
24
25
// importing libraries to support 3rd party ad_impression snippets
@@ -32,17 +33,32 @@ public class MainActivity extends AppCompatActivity
32
33
// importing libraries to support 3rd party ad_impression snippets
33
34
implements MaxAdRevenueListener , ImpressionDataListener {
34
35
36
+ // [START declare_analytics]
37
+ private FirebaseAnalytics mFirebaseAnalytics ;
38
+ // [END declare_analytics]
39
+
35
40
@ Override
36
41
protected void onCreate (Bundle savedInstanceState ) {
37
42
super .onCreate (savedInstanceState );
38
43
setContentView (R .layout .activity_main );
39
44
45
+ // [START shared_app_measurement]
46
+ // Obtain the FirebaseAnalytics instance.
47
+ mFirebaseAnalytics = FirebaseAnalytics .getInstance (this );
48
+ // [END shared_app_measurement]
49
+
40
50
enhancedEcommerce ();
51
+
52
+ setUserFavoriteFood ("avocado" );
53
+
54
+ recordImageView ();
55
+
56
+ recordScreenView ();
57
+
58
+ logCustomEvent ();
41
59
}
42
60
43
61
public void enhancedEcommerce () {
44
- FirebaseAnalytics analytics = FirebaseAnalytics .getInstance (this );
45
-
46
62
// [START create_items]
47
63
Bundle itemJeggings = new Bundle ();
48
64
itemJeggings .putString (FirebaseAnalytics .Param .ITEM_ID , "SKU_123" );
@@ -83,27 +99,27 @@ public void enhancedEcommerce() {
83
99
viewItemListParams .putString (FirebaseAnalytics .Param .ITEM_LIST_ID , "L001" );
84
100
viewItemListParams .putString (FirebaseAnalytics .Param .ITEM_LIST_NAME , "Related products" );
85
101
viewItemListParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
86
- new Parcelable []{ itemJeggingsWithIndex , itemBootsWithIndex , itemSocksWithIndex });
87
- analytics .logEvent (FirebaseAnalytics .Event .VIEW_ITEM_LIST , viewItemListParams );
102
+ new Parcelable []{itemJeggingsWithIndex , itemBootsWithIndex , itemSocksWithIndex });
103
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .VIEW_ITEM_LIST , viewItemListParams );
88
104
// [END view_item_list]
89
105
90
106
// [START select_item]
91
107
Bundle selectItemParams = new Bundle ();
92
108
selectItemParams .putString (FirebaseAnalytics .Param .ITEM_LIST_ID , "L001" );
93
109
selectItemParams .putString (FirebaseAnalytics .Param .ITEM_LIST_NAME , "Related products" );
94
110
selectItemParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
95
- new Parcelable []{ itemJeggings });
96
- analytics .logEvent (FirebaseAnalytics .Event .SELECT_ITEM , selectItemParams );
111
+ new Parcelable []{itemJeggings });
112
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .SELECT_ITEM , selectItemParams );
97
113
// [END select_item]
98
114
99
115
// [START view_product_details]
100
116
Bundle viewItemParams = new Bundle ();
101
117
viewItemParams .putString (FirebaseAnalytics .Param .CURRENCY , "USD" );
102
118
viewItemParams .putDouble (FirebaseAnalytics .Param .VALUE , 9.99 );
103
119
viewItemParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
104
- new Parcelable [] { itemJeggings });
120
+ new Parcelable []{ itemJeggings });
105
121
106
- analytics .logEvent (FirebaseAnalytics .Event .VIEW_ITEM , viewItemParams );
122
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .VIEW_ITEM , viewItemParams );
107
123
// [END view_product_details]
108
124
109
125
// [START add_to_cart_wishlist]
@@ -114,9 +130,9 @@ public void enhancedEcommerce() {
114
130
addToWishlistParams .putString (FirebaseAnalytics .Param .CURRENCY , "USD" );
115
131
addToWishlistParams .putDouble (FirebaseAnalytics .Param .VALUE , 2 * 9.99 );
116
132
addToWishlistParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
117
- new Parcelable []{ itemJeggingsWishlist });
133
+ new Parcelable []{itemJeggingsWishlist });
118
134
119
- analytics .logEvent (FirebaseAnalytics .Event .ADD_TO_WISHLIST , addToWishlistParams );
135
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .ADD_TO_WISHLIST , addToWishlistParams );
120
136
// [END add_to_cart_wishlist]
121
137
122
138
// [START view_cart]
@@ -130,19 +146,19 @@ public void enhancedEcommerce() {
130
146
viewCartParams .putString (FirebaseAnalytics .Param .CURRENCY , "USD" );
131
147
viewCartParams .putDouble (FirebaseAnalytics .Param .VALUE , (2 * 9.99 ) + (1 * 24.99 ));
132
148
viewCartParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
133
- new Parcelable []{ itemJeggingsCart , itemBootsCart });
149
+ new Parcelable []{itemJeggingsCart , itemBootsCart });
134
150
135
- analytics .logEvent (FirebaseAnalytics .Event .VIEW_CART , viewCartParams );
151
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .VIEW_CART , viewCartParams );
136
152
// [END view_cart]
137
153
138
154
// [START remove_from_cart]
139
155
Bundle removeCartParams = new Bundle ();
140
156
removeCartParams .putString (FirebaseAnalytics .Param .CURRENCY , "USD" );
141
157
removeCartParams .putDouble (FirebaseAnalytics .Param .VALUE , (1 * 24.99 ));
142
158
removeCartParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
143
- new Parcelable []{ itemBootsCart });
159
+ new Parcelable []{itemBootsCart });
144
160
145
- analytics .logEvent (FirebaseAnalytics .Event .REMOVE_FROM_CART , removeCartParams );
161
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .REMOVE_FROM_CART , removeCartParams );
146
162
// [END remove_from_cart]
147
163
148
164
// [START start_checkout]
@@ -151,9 +167,9 @@ public void enhancedEcommerce() {
151
167
beginCheckoutParams .putDouble (FirebaseAnalytics .Param .VALUE , 14.98 );
152
168
beginCheckoutParams .putString (FirebaseAnalytics .Param .COUPON , "SUMMER_FUN" );
153
169
beginCheckoutParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
154
- new Parcelable []{ itemJeggingsCart });
170
+ new Parcelable []{itemJeggingsCart });
155
171
156
- analytics .logEvent (FirebaseAnalytics .Event .BEGIN_CHECKOUT , beginCheckoutParams );
172
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .BEGIN_CHECKOUT , beginCheckoutParams );
157
173
// [END start_checkout]
158
174
159
175
// [START add_shipping]
@@ -163,9 +179,9 @@ public void enhancedEcommerce() {
163
179
addShippingParams .putString (FirebaseAnalytics .Param .COUPON , "SUMMER_FUN" );
164
180
addShippingParams .putString (FirebaseAnalytics .Param .SHIPPING_TIER , "Ground" );
165
181
addShippingParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
166
- new Parcelable []{ itemJeggingsCart });
182
+ new Parcelable []{itemJeggingsCart });
167
183
168
- analytics .logEvent (FirebaseAnalytics .Event .ADD_SHIPPING_INFO , addShippingParams );
184
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .ADD_SHIPPING_INFO , addShippingParams );
169
185
// [END add_shipping]
170
186
171
187
// [START add_payment]
@@ -175,9 +191,9 @@ public void enhancedEcommerce() {
175
191
addPaymentParams .putString (FirebaseAnalytics .Param .COUPON , "SUMMER_FUN" );
176
192
addPaymentParams .putString (FirebaseAnalytics .Param .PAYMENT_TYPE , "Visa" );
177
193
addPaymentParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
178
- new Parcelable []{ itemJeggingsCart });
194
+ new Parcelable []{itemJeggingsCart });
179
195
180
- analytics .logEvent (FirebaseAnalytics .Event .ADD_PAYMENT_INFO , addPaymentParams );
196
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .ADD_PAYMENT_INFO , addPaymentParams );
181
197
// [END add_payment]
182
198
183
199
// [START log_purchase]
@@ -190,9 +206,9 @@ public void enhancedEcommerce() {
190
206
purchaseParams .putDouble (FirebaseAnalytics .Param .SHIPPING , 5.34 );
191
207
purchaseParams .putString (FirebaseAnalytics .Param .COUPON , "SUMMER_FUN" );
192
208
purchaseParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
193
- new Parcelable []{ itemJeggingsCart });
194
-
195
- analytics .logEvent (FirebaseAnalytics .Event .PURCHASE , purchaseParams );
209
+ new Parcelable []{itemJeggingsCart });
210
+
211
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .PURCHASE , purchaseParams );
196
212
// [END log_purchase]
197
213
198
214
// [START log_refund]
@@ -207,9 +223,9 @@ public void enhancedEcommerce() {
207
223
refundParams .putLong (FirebaseAnalytics .Param .QUANTITY , 1 );
208
224
209
225
refundParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
210
- new Parcelable []{ itemJeggings });
226
+ new Parcelable []{itemJeggings });
211
227
212
- analytics .logEvent (FirebaseAnalytics .Event .REFUND , refundParams );
228
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .REFUND , refundParams );
213
229
// [END log_refund]
214
230
215
231
// [START apply_promo]
@@ -220,51 +236,93 @@ public void enhancedEcommerce() {
220
236
promoParams .putString (FirebaseAnalytics .Param .CREATIVE_SLOT , "featured_app_1" );
221
237
promoParams .putString (FirebaseAnalytics .Param .LOCATION_ID , "HERO_BANNER" );
222
238
promoParams .putParcelableArray (FirebaseAnalytics .Param .ITEMS ,
223
- new Parcelable []{ itemJeggings });
239
+ new Parcelable []{itemJeggings });
224
240
225
241
// Promotion displayed
226
- analytics .logEvent (FirebaseAnalytics .Event .VIEW_PROMOTION , promoParams );
242
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .VIEW_PROMOTION , promoParams );
227
243
228
244
// Promotion selected
229
- analytics .logEvent (FirebaseAnalytics .Event .SELECT_PROMOTION , promoParams );
245
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .SELECT_PROMOTION , promoParams );
230
246
// [END apply_promo]
231
247
}
232
248
233
- // [START ad_impression_applovin]
234
- @ Override
235
- public void onAdRevenuePaid (MaxAd impressionData ) {
236
-
237
- double revenue = impressionData .getRevenue (); // In USD
238
-
239
- FirebaseAnalytics analytics = FirebaseAnalytics .getInstance (this );
240
- Bundle params = new Bundle ();
241
- params .putString (FirebaseAnalytics .Param .AD_PLATFORM , "appLovin" );
242
- params .putString (FirebaseAnalytics .Param .AD_SOURCE , impressionData .getNetworkName ());
243
- params .putString (FirebaseAnalytics .Param .AD_FORMAT , impressionData .getFormat ().getDisplayName ());
244
- params .putString (FirebaseAnalytics .Param .AD_UNIT_NAME , impressionData .getAdUnitId ());
245
- params .putDouble (FirebaseAnalytics .Param .VALUE , revenue );
246
- params .putString (FirebaseAnalytics .Param .CURRENCY , "USD" ); // All Applovin revenue is sent in USD
247
- analytics .logEvent (FirebaseAnalytics .Event .AD_IMPRESSION , params );
248
- }
249
- // [END ad_impression_applovin]
249
+ // [START ad_impression_applovin]
250
+ @ Override
251
+ public void onAdRevenuePaid (MaxAd impressionData ) {
252
+
253
+ double revenue = impressionData .getRevenue (); // In USD
254
+
255
+ mFirebaseAnalytics = FirebaseAnalytics .getInstance (this );
256
+ Bundle params = new Bundle ();
257
+ params .putString (FirebaseAnalytics .Param .AD_PLATFORM , "appLovin" );
258
+ params .putString (FirebaseAnalytics .Param .AD_SOURCE , impressionData .getNetworkName ());
259
+ params .putString (FirebaseAnalytics .Param .AD_FORMAT , impressionData .getFormat ().getDisplayName ());
260
+ params .putString (FirebaseAnalytics .Param .AD_UNIT_NAME , impressionData .getAdUnitId ());
261
+ params .putDouble (FirebaseAnalytics .Param .VALUE , revenue );
262
+ params .putString (FirebaseAnalytics .Param .CURRENCY , "USD" ); // All Applovin revenue is sent in USD
263
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .AD_IMPRESSION , params );
264
+ }
265
+ // [END ad_impression_applovin]
250
266
251
- // [START ad_impression_ironsource]
267
+ // [START ad_impression_ironsource]
252
268
@ Override
253
269
public void onImpressionSuccess (ImpressionData impressionData ) {
254
270
// The onImpressionSuccess will be reported when the rewarded video and interstitial ad is opened.
255
271
// For banners, the impression is reported on load success. Log.d(TAG, "onImpressionSuccess" + impressionData);
256
- FirebaseAnalytics analytics = FirebaseAnalytics .getInstance (this );
272
+ mFirebaseAnalytics = FirebaseAnalytics .getInstance (this );
257
273
if (impressionData != null ) {
258
- Bundle bundle = new Bundle ();
259
- bundle .putString (FirebaseAnalytics .Param .AD_PLATFORM , "ironSource" );
260
- bundle .putString (FirebaseAnalytics .Param .AD_SOURCE , impressionData .getAdNetwork ());
261
- bundle .putString (FirebaseAnalytics .Param .AD_FORMAT , impressionData .getAdUnit ());
262
- bundle .putString (FirebaseAnalytics .Param .AD_UNIT_NAME , impressionData .getInstanceName ());
263
- bundle .putString (FirebaseAnalytics .Param .CURRENCY , "USD" );
264
- bundle .putDouble (FirebaseAnalytics .Param .VALUE , impressionData .getRevenue ());
265
- analytics .logEvent (FirebaseAnalytics .Event .AD_IMPRESSION , bundle );
274
+ Bundle bundle = new Bundle ();
275
+ bundle .putString (FirebaseAnalytics .Param .AD_PLATFORM , "ironSource" );
276
+ bundle .putString (FirebaseAnalytics .Param .AD_SOURCE , impressionData .getAdNetwork ());
277
+ bundle .putString (FirebaseAnalytics .Param .AD_FORMAT , impressionData .getAdUnit ());
278
+ bundle .putString (FirebaseAnalytics .Param .AD_UNIT_NAME , impressionData .getInstanceName ());
279
+ bundle .putString (FirebaseAnalytics .Param .CURRENCY , "USD" );
280
+ bundle .putDouble (FirebaseAnalytics .Param .VALUE , impressionData .getRevenue ());
281
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .AD_IMPRESSION , bundle );
266
282
}
267
283
}
268
-
269
284
// [END ad_impression_ironsource]
285
+
286
+ private void setUserFavoriteFood (String food ) {
287
+ // [START user_property]
288
+ mFirebaseAnalytics .setUserProperty ("favorite_food" , food );
289
+ // [END user_property]
290
+ }
291
+
292
+ private void recordImageView () {
293
+ String id = "Image ID" ;
294
+ String name = "Image Title" ;
295
+
296
+ // [START image_view_event]
297
+ Bundle bundle = new Bundle ();
298
+ bundle .putString (FirebaseAnalytics .Param .ITEM_ID , id );
299
+ bundle .putString (FirebaseAnalytics .Param .ITEM_NAME , name );
300
+ bundle .putString (FirebaseAnalytics .Param .CONTENT_TYPE , "image" );
301
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .SELECT_CONTENT , bundle );
302
+ // [END image_view_event]
303
+ }
304
+
305
+ private void recordScreenView () {
306
+ // This string must be <= 36 characters long.
307
+ String screenName = "Home Screen" ;
308
+
309
+ // [START set_current_screen]
310
+ Bundle bundle = new Bundle ();
311
+ bundle .putString (FirebaseAnalytics .Param .SCREEN_NAME , screenName );
312
+ bundle .putString (FirebaseAnalytics .Param .SCREEN_CLASS , "MainActivity" );
313
+ mFirebaseAnalytics .logEvent (FirebaseAnalytics .Event .SCREEN_VIEW , bundle );
314
+ // [END set_current_screen]
315
+ }
316
+
317
+ private void logCustomEvent () {
318
+ String name = "image title" ;
319
+ String text = "I'd love to hear more about " + name ;
320
+
321
+ // [START custom_event]
322
+ Bundle params = new Bundle ();
323
+ params .putString ("image_name" , name );
324
+ params .putString ("full_text" , text );
325
+ mFirebaseAnalytics .logEvent ("share_image" , params );
326
+ // [END custom_event]
327
+ }
270
328
}
0 commit comments