如何在 flutter 小部件中跟踪 google 分析事件?

How to track google analytics event in a flutter widget?

我想跟踪 button/expansion 磁贴被点击的次数。

我尝试阅读文档,但仍然无法理解它的概念。在 flutter fire 文档中,它声明通过调用 logEvent 方法记录自定义事件 hERE.

await FirebaseAnalytics.instance
  .logEvent(
    name: 'view_product',
    parameters: {
      'product_id': 1234,
    }
  ); 

但是,如果它是一个扩展图块小部件(如下面的代码)甚至是一个按钮怎么办?每当用户在 flutter 中按下扩展图块 widget/button 时,我如何跟踪事件,并且该事件将在我的 Google 分析中跟踪? (我已经设置了 firebase 和 google 分析包,只是在代码部分苦苦挣扎)

ExpansionTile(
                title: RichText(
                  textAlign: TextAlign.justify,
                  text: TextSpan(
                    children: <TextSpan>[
                      TextSpan(
                        text: "Diploma in Business | ",
                        style: TextStyle(color: Colors.black),
                      ),
                      TextSpan(
                        text: "Taylor\u0027s",
                        style: TextStyle(
                            color: Colors.black, fontWeight: FontWeight.bold),
                      ),
                    ],
                  ),
                ),
              ),

感谢我能得到的任何帮助或指导,在此先感谢您!

首先让你的 ExpansionTile 可以点击。用 Inkwell 包装你的 ExpansionTile 及其 onTap 属性 调用 logevent 函数

Inkwell(
 onTap:(){
   sendAnalyticsEvent("User clicked expansionTile");
},
child : ExpansionTile(
 //write your expansion tile
 ),
);

这是分析自定义事件函数。

 final FirebaseAnalytics _analytics = FirebaseAnalytics();
 Future sendAnalyticsEvent(
     {String eventName, String? clickevent}) async {
      await _analytics.logEvent(
      name: '${eventName}',
      parameters: <String, dynamic>{
        'clickEvent': clickevent
     },
   );
 }

像这样调用这个函数

sendAnalyticsEvent( eventName : "expansionTile_one", clickevent : "User clicked expansionTile one")

sendAnalyticsEvent( eventName : "expansionTile_two", clickevent : "User clicked expansionTile two")

在分析调试视图中检查此点击事件。

在您的 ExpansionTile 中,您可以使用:

onExpansionChanged: (value){
    sendAnalyticsEvent("User clicked expansionTile");
}