谷歌统计接入

一、要在go-zero项目中接入谷歌统计插件(Google Analytics),你可以按照以下步骤操作:

  1. 注册Google Analytics账号并获取跟踪ID:访问 https://analytics.google.com/ 并使用你的 Google 账户登录

  2. 在你的go-zero项目中添加中间件来集成Google Analytics:
    复制代码
    package middleware
    import (
        "net/http"
        "github.com/zeromicro/go-zero/rest"
        "github.com/zeromicro/go-zero/core/logx"
        ga "github.com/jpillora/go-ogle-analytics"
    )
    func GoogleAnalyticsMiddleware(next http.HandlerFunc) http.HandlerFunc {
        return func(w http.ResponseWriter, r *http.Request) {
            client, err := ga.NewClient("UA-XXXXXXXX-X") // 替换为你的跟踪ID
            if err != nil {
                logx.Error(err)
                next(w, r)
                return
            }
            // 发送页面浏览事件
            err = client.Send(ga.NewPageview(r.URL.Path, r.URL.Host, r.URL.Path))
            if err != nil {
                logx.Error(err)
            }
            next(w, r)
        }
    }
    复制代码
  3. 在你的路由配置中使用这个中间件:
    复制代码
    import (
        "github.com/zeromicro/go-zero/rest"
        "your-project/middleware"
    )
    
    func main() {
        server := rest.MustNewServer(rest.RestConf{
            Port: 8888,
        })
        defer server.Stop()
    
        server.Use(middleware.GoogleAnalyticsMiddleware)
    
        // 添加你的路由
        // ...
    
        server.Start()
    }
    复制代码
  4. 如果你想跟踪更多的事件或自定义维度,可以在相应的处理函数中添加:
    复制代码
    func YourHandler(w http.ResponseWriter, r *http.Request) {
        client, _ := ga.NewClient("UA-XXXXXXXX-X")
        
        // 发送自定义事件
        client.Send(ga.NewEvent("Category", "Action", "Label", 1))
        
        // 发送自定义维度
        client.Send(ga.NewEvent("Category", "Action").Custom(1, "CustomDimension"))
    
        // 你的处理逻辑
        // ...
    }
    复制代码
  5. 确保你的项目依赖中包含了Google Analytics客户端库:
    go get github.com/jpillora/go-ogle-analytics

    这样,你就可以在go-zero项目中集成Google Analytics,跟踪页面访问、自定义事件等数据。记得替换跟踪ID为你自己的ID,并根据需要自定义要跟踪的事件和维度。

    注意:使用Google Analytics时,请确保遵守相关的隐私政策和数据保护法规,如GDPR等。



    二、gfast框架按照以下步骤操作:
    1.首先,确保你已经有了 Google Analytics 的跟踪 ID。
    2.在 GFast 项目中创建一个中间件来处理 Google Analytics 的集成:

    复制代码
    package middleware
    
    import (
        "github.com/gogf/gf/v2/net/ghttp"
        ga "github.com/jpillora/go-ogle-analytics"
    )
    
    func GoogleAnalyticsMiddleware(r *ghttp.Request) {
        client, err := ga.NewClient("UA-XXXXXXXX-X") // 替换为你的跟踪 ID
        if err != nil {
            r.Middleware.Next()
            return
        }
    
        // 发送页面浏览事件
        err = client.Send(ga.NewPageview(r.URL.Path, r.GetHost(), r.URL.Path))
        if err != nil {
            // 处理错误,可以选择记录日志
        }
    
        r.Middleware.Next()
    }
    复制代码
    3.在你的路由配置中使用这个中间件。通常,你可以在 router/router.go 文件中添加:
    package router
    
    import (
    	"your-project/app/middleware"
    	"github.com/gogf/gf/v2/net/ghttp"
    )
    
    func init() {
    	s := g.Server()
    
    	// 全局中间件
    	s.Use(middleware.GoogleAnalyticsMiddleware)
    
    	// 其他路由配置
    	// ...
    }
    4.如果你想在特定的控制器或方法中跟踪更多的事件或自定义维度,可以在相应的方法中添加:
    func (c *YourController) YourMethod(r *ghttp.Request) {
    	client, _ := ga.NewClient("UA-XXXXXXXX-X")
    	
    	// 发送自定义事件
    	client.Send(ga.NewEvent("Category", "Action", "Label", 1))
    	
    	// 发送自定义维度
    	client.Send(ga.NewEvent("Category", "Action").Custom(1, "CustomDimension"))
    
    	// 你的处理逻辑
    	// ...
    }
    5.确保你的项目依赖中包含了 Google Analytics 客户端库:
    go get github.com/jpillora/go-ogle-analytics
    三、如果你想在模板中添加 Google Analytics 跟踪代码,可以在你的布局模板(通常是 layout.html 或类似的文件)中的 <head> 标签内添加:
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXX-X"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', 'UA-XXXXXXXX-X');
    </script>
    

    记得将 UA-XXXXXXXX-X 替换为你的实际跟踪 ID。

    这样,你就可以在 GFast 框架中集成 Google Analytics,跟踪页面访问、自定义事件等数据。根据需要,你可以进一步自定义要跟踪的事件和维度。

    注意:使用 Google Analytics 时,请确保遵守相关的隐私政策和数据保护法规,如 GDPR 等

posted @   ParallelForEach  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示