firebase / flutterfire

πŸ”₯ A collection of Firebase plugins for Flutter apps.
https://firebase.google.com/docs/flutter/setup
BSD 3-Clause "New" or "Revised" License
8.62k stars 3.95k forks source link

πŸ› [firebase_analytics] Add To Cart Event sends no event data #6760

Closed ocastx closed 3 years ago

ocastx commented 3 years ago

Bug report

Describe the bug Firebase Analytics Event add_to_cart gets tracked but does not send any event data.

CleanShot 2021-08-04 at 09 25 09

Steps to reproduce

Steps to reproduce the behavior:

  1. Install firebase_analytics SDK
  2. Log add_to_cart event with value and currency
  3. Look into Firebase or GA 4 console

Expected behavior

add_to_cart event should log the value and currency to GA4 as the ecommerce_purchase event does.


Flutter doctor

Run flutter doctor and paste the output below:

Click To Expand ``` [βœ“] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-arm, locale de-DE) [!] Android toolchain - develop for Android devices (Android SDK version 30.0.3) βœ— Android license status unknown. Run `flutter doctor --android-licenses` to accept the SDK licenses. See https://flutter.dev/docs/get-started/install/macos#android-setup for more details. [βœ“] Xcode - develop for iOS and macOS [βœ“] Chrome - develop for the web [βœ“] Android Studio (version 4.2) [βœ“] Connected device (3 available) ! Doctor found issues in 1 category. ```

Flutter dependencies

Run flutter pub deps -- --style=compact and paste the output below:

Click To Expand ``` Dart SDK 2.13.4 Flutter SDK 2.2.3 redacted dependencies: - after_layout 1.1.0 [flutter] - app_review 2.1.1+1 [http package_info url_launcher flutter] - app_settings 4.1.0 [flutter] - cached_network_image 3.0.0 [flutter flutter_cache_manager octo_image] - carousel_slider 4.0.0 [flutter] - collection 1.15.0 - connectivity 3.0.6 [flutter meta connectivity_platform_interface connectivity_macos connectivity_for_web] - country_code_picker 2.0.1 [flutter modal_bottom_sheet collection universal_platform] - cupertino_icons 1.0.3 - dartz 0.10.0-nullsafety.2 - dio 4.0.0 [http_parser path] - dio_cache_interceptor 3.0.1 [dio path uuid] - encrypt 5.0.0 [args asn1lib clock collection crypto pointycastle] - equatable 2.0.3 [collection meta] - firebase_analytics 8.1.2 [firebase_analytics_platform_interface firebase_analytics_web firebase_core flutter meta] - firebase_auth 1.4.1 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta] - firebase_core 1.3.0 [firebase_core_platform_interface firebase_core_web flutter meta] - firebase_crashlytics 2.0.6 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace] - firebase_messaging 10.0.2 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta] - firebase_remote_config 0.10.0+2 [firebase_core firebase_core_platform_interface firebase_remote_config_platform_interface flutter] - flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine] - flutter_html 2.1.0 [html csslib flutter_layout_grid video_player chewie webview_flutter chewie_audio flutter_svg flutter_math_fork collection numerus flutter] - flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math] - flutter_mobx 2.0.0 [flutter mobx] - flutter_signin_button 2.0.0 [flutter font_awesome_flutter] - flutter_svg 0.22.0 [flutter meta path_drawing vector_math xml] - flutter_swiper 1.1.6 [flutter transformer_page_view flutter_page_indicator] - flutter_xlider 3.4.0 [flutter] - geolocator 7.1.0 [flutter geolocator_platform_interface geolocator_web] - get_it 7.1.3 [async collection] - google_sign_in 5.0.4 [google_sign_in_platform_interface google_sign_in_web flutter meta] - graphql_flutter 5.0.0 [graphql gql_exec flutter meta path_provider path connectivity_plus hive plugin_platform_interface] - http 0.13.3 [async http_parser meta path pedantic] - intl 0.17.0 [clock path] - lottie 1.0.1 [archive characters charcode collection flutter logging meta path vector_math] - map_launcher 2.0.0 [flutter] - mobx 2.0.1 [meta] - modal_bottom_sheet 2.0.0 [flutter] - package_info 2.0.2 [flutter] - photo_view 0.11.1 [flutter] - pinput 1.2.0 [flutter] - pull_to_refresh 2.0.0 [flutter] - shared_preferences 2.0.6 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web shared_preferences_windows] - sign_in_with_apple 3.0.0 [flutter meta] - sliding_up_panel 2.0.0+1 [flutter] - smooth_page_indicator 0.3.0-nullsafety.0 [flutter] - stripe_sdk 5.0.0-nullsafety.0 [flutter http url_launcher mask_text_input_formatter flutter_slidable simple_animations supercharged awesome_card uni_links2 credit_card_validator collection] - uni_links2 0.6.0+2 [uni_links2_platform_interface uni_links_web2 flutter] - url_launcher 6.0.6 [flutter meta url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows] - uuid 3.0.4 [crypto] - webview_flutter 2.0.8 [flutter] - zendesk 2.0.0 [flutter] dev dependencies: - flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data] - lint 1.5.3 transitive dependencies: - archive 3.1.2 [crypto path] - args 2.1.1 - asn1lib 1.0.2 - async 2.6.1 [meta collection] - awesome_card 1.1.5 [flutter] - boolean_selector 2.1.0 [source_span string_scanner] - characters 1.1.0 - charcode 1.2.0 - chewie 1.2.2 [cupertino_icons flutter provider video_player wakelock] - chewie_audio 1.2.0 [cupertino_icons flutter video_player] - clock 1.1.0 - connectivity_for_web 0.4.0 [connectivity_platform_interface flutter_web_plugins flutter] - connectivity_macos 0.2.0 [flutter] - connectivity_platform_interface 2.0.1 [flutter meta plugin_platform_interface] - connectivity_plus 1.0.2 [flutter meta connectivity_plus_platform_interface connectivity_plus_linux connectivity_plus_macos connectivity_plus_web connectivity_plus_windows] - connectivity_plus_linux 1.0.3 [flutter connectivity_plus_platform_interface dbus meta] - connectivity_plus_macos 1.0.2 [connectivity_plus_platform_interface flutter] - connectivity_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface] - connectivity_plus_web 1.0.2 [connectivity_plus_platform_interface flutter_web_plugins flutter] - connectivity_plus_windows 1.0.2 [connectivity_plus_platform_interface flutter] - convert 3.0.0 [typed_data] - credit_card_type_detector 2.0.0-nullsafety.0 - credit_card_validator 2.0.0-nullsafety.0 [credit_card_type_detector] - crypto 3.0.1 [collection typed_data] - csslib 0.17.0 [source_span] - dbus 0.5.2 [args meta pedantic xml] - fake_async 1.2.0 [clock collection] - ffi 1.1.2 - file 6.1.1 [meta path] - firebase 9.0.1 [http http_parser js] - firebase_analytics_platform_interface 2.0.1 [flutter meta] - firebase_analytics_web 0.3.0+1 [firebase firebase_analytics_platform_interface flutter flutter_web_plugins meta] - firebase_auth_platform_interface 4.3.1 [firebase_core flutter meta plugin_platform_interface] - firebase_auth_web 1.3.1 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta] - firebase_core_platform_interface 4.0.1 [collection flutter meta plugin_platform_interface] - firebase_core_web 1.1.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta] - firebase_crashlytics_platform_interface 3.0.6 [collection firebase_core flutter meta plugin_platform_interface] - firebase_messaging_platform_interface 3.0.2 [firebase_core flutter meta plugin_platform_interface] - firebase_messaging_web 2.0.2 [firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta] - firebase_remote_config_platform_interface 0.3.0+2 [firebase_core flutter meta plugin_platform_interface] - flutter_blurhash 0.6.0 [flutter meta pedantic] - flutter_cache_manager 3.1.1 [clock collection file flutter http image path path_provider pedantic rxdart sqflite uuid] - flutter_layout_grid 1.0.1 [flutter collection meta quiver] - flutter_math_fork 0.3.3 [flutter flutter_svg provider meta collection tuple] - flutter_page_indicator 0.0.3 [flutter] - flutter_slidable 0.6.0 [flutter] - flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math] - font_awesome_flutter 9.1.0 [flutter] - geolocator_platform_interface 2.1.1 [flutter plugin_platform_interface vector_math meta] - geolocator_web 2.0.3 [flutter flutter_web_plugins geolocator_platform_interface] - google_sign_in_platform_interface 2.0.1 [flutter meta quiver] - google_sign_in_web 0.10.0 [google_sign_in_platform_interface flutter flutter_web_plugins meta js] - gql 0.13.0 [collection meta source_span] - gql_dedupe_link 2.0.0 [meta gql_exec gql_link async] - gql_error_link 0.2.0 [async gql_exec gql_link meta] - gql_exec 0.3.0 [collection meta gql] - gql_http_link 0.4.0 [meta gql gql_exec gql_link http http_parser] - gql_link 0.4.0 [meta gql gql_exec] - gql_transform_link 0.2.0 [gql_exec gql_link] - graphql 5.0.0 [meta path gql gql_exec gql_link gql_http_link gql_transform_link gql_error_link gql_dedupe_link hive normalize http collection web_socket_channel stream_channel rxdart uuid] - hive 2.0.4 [meta crypto] - html 0.15.0 [csslib source_span] - http_parser 4.0.0 [charcode collection source_span string_scanner typed_data] - image 3.0.2 [archive meta xml] - js 0.6.3 - logging 1.0.1 - mask_text_input_formatter 2.0.0 [flutter] - matcher 0.12.10 [stack_trace] - meta 1.3.0 - nested 1.0.0 [flutter] - normalize 0.5.4 [gql collection] - numerus 1.1.1 - octo_image 1.0.0+1 [flutter flutter_blurhash] - path 1.8.0 - path_drawing 0.5.1 [vector_math meta path_parsing flutter] - path_parsing 0.2.1 [vector_math meta] - path_provider 2.0.2 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows] - path_provider_linux 2.0.0 [path xdg_directories path_provider_platform_interface flutter] - path_provider_macos 2.0.0 [flutter] - path_provider_platform_interface 2.0.1 [flutter meta platform plugin_platform_interface] - path_provider_windows 2.0.1 [path_provider_platform_interface meta path flutter ffi win32] - pedantic 1.11.0 - petitparser 4.1.0 [meta] - platform 3.0.0 - plugin_platform_interface 2.0.0 [meta] - pointycastle 3.1.1 [collection convert] - process 4.2.1 [file path platform] - provider 5.0.0 [collection flutter nested] - quiver 3.0.1 [matcher] - rxdart 0.26.0 - shared_preferences_linux 2.0.0 [flutter file meta path path_provider_linux shared_preferences_platform_interface] - shared_preferences_macos 2.0.0 [shared_preferences_platform_interface flutter] - shared_preferences_platform_interface 2.0.0 [flutter] - shared_preferences_web 2.0.0 [shared_preferences_platform_interface flutter flutter_web_plugins meta] - shared_preferences_windows 2.0.0 [shared_preferences_platform_interface flutter file meta path path_provider_platform_interface path_provider_windows] - simple_animations 3.1.1 [flutter supercharged pedantic] - sky_engine 0.0.99 - source_span 1.8.1 [collection path term_glyph] - sqflite 2.0.0+3 [flutter sqflite_common path] - sqflite_common 2.0.0+2 [synchronized path meta] - stack_trace 1.10.0 [path] - stream_channel 2.1.0 [async] - string_scanner 1.1.0 [charcode source_span] - supercharged 2.0.0 [supercharged_dart flutter] - supercharged_dart 2.0.0 - synchronized 3.0.0 - term_glyph 1.2.0 - test_api 0.3.0 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher] - transformer_page_view 0.1.6 [flutter] - tuple 2.0.0 [quiver] - typed_data 1.3.0 [collection] - uni_links2_platform_interface 1.0.0+2 [plugin_platform_interface flutter] - uni_links_web2 0.1.0+2 [uni_links2_platform_interface flutter flutter_web_plugins] - universal_platform 1.0.0-nullsafety - url_launcher_linux 2.0.0 [flutter] - url_launcher_macos 2.0.0 [flutter] - url_launcher_platform_interface 2.0.3 [flutter plugin_platform_interface] - url_launcher_web 2.0.1 [flutter flutter_web_plugins meta url_launcher_platform_interface] - url_launcher_windows 2.0.0 [flutter] - vector_math 2.1.0 - video_player 2.1.6 [flutter flutter_test meta video_player_platform_interface video_player_web] - video_player_platform_interface 4.1.0 [flutter meta flutter_test] - video_player_web 2.0.1 [flutter flutter_web_plugins meta video_player_platform_interface] - wakelock 0.5.2 [flutter meta wakelock_macos wakelock_platform_interface wakelock_web wakelock_windows] - wakelock_macos 0.1.0+1 [flutter flutter_web_plugins wakelock_platform_interface] - wakelock_platform_interface 0.2.1+1 [flutter meta] - wakelock_web 0.2.0+1 [flutter flutter_web_plugins js wakelock_platform_interface] - wakelock_windows 0.1.0 [flutter wakelock_platform_interface win32] - web_socket_channel 2.1.0 [async crypto stream_channel] - win32 2.1.5 [ffi] - xdg_directories 0.2.0 [meta path process] - xml 5.1.2 [collection meta petitparser] ```

ocastx commented 3 years ago

Solved. I was sending the following params:

_analytics.logAddToCart(
      itemId: id ?? product.id,
      itemName: product.title,
      itemCategory: collectionName ?? '',
      quantity: 1,
      price: variant.priceV2.amount,
      currency: variant.priceV2.currencyCode,
);

note the price attribute instead of value. Adding value as well seems to solve it.

_analytics.logAddToCart(
      itemId: id ?? product.id,
      itemName: product.title,
      itemCategory: collectionName ?? '',
      quantity: 1,
      price: variant.priceV2.amount,
      value: variant.priceV2.amount,
      currency: variant.priceV2.currencyCode,
);