【问题标题】:Google Analytics v4 custom events (server side)Google Analytics v4 自定义事件(服务器端)
【发布时间】:2020-12-14 09:34:18
【问题描述】:

我正在尝试将服务器端(python 请求)事件发送到 Google Analytics V4

import requests

url = 'https://www.google-analytics.com/collect?v=1&t=event&tid=UA-XXXXXXXXX'
url += '&cid={}'.format('click_id')
url += '&ec={}'.format('event_category')
url += '&ea={}'.format('event_action')
url += '&el={}'.format('event_label')
url += '&ni=1'  # 'non_interaction'

headers = {
    'User-Agent': str('user_agent')
}

requests.post(url=url, headers=headers)

这在 Google Analytics(分析)的 V3 上非常有效 - 当属性 ID 为 UA-XXXXXXXXX

现在所有 V4 属性的 id 都不同,如 "G-9DXXXXXXXX",似乎它不起作用。

我没有找到任何关于 V4 事件的文档,任何帮助都会非常感谢。

【问题讨论】:

    标签: python google-analytics python-requests measurement-protocol google-analytics-4


    【解决方案1】:

    要将数据发送到 Google Analytics 4,您需要使用 Measurement Protocol (Google Analytics 4)

    发送事件将如下所示

    const measurement_id = `G-XXXXXXXXXX`;
    const api_secret = `<secret_value>`;
    
    fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, {
      method: "POST",
      body: JSON.stringify({
        client_id: 'XXXXXXXXXX.YYYYYYYYYY',
        events: [{
          name: 'tutorial_begin',
          params: {},
        }]
      })
    });
    

    我建议使用event builder GA4 进行测试有点棘手,因为它仍处于 alpha 阶段。

    蟒蛇

    主要变化是您发布的是 Json 对象而不是查询字符串。 我不是最擅长 python,但这是一个发布 json 对象的示例,它可能会有所帮助。

    url = 'https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}'
    payload = {
        client_id: 'XXXXXXXXXX.YYYYYYYYYY',
        events: [{
          name: 'tutorial_begin',
          params: {},
        }]
      })
    }
    headers = {'content-type': 'application/json'}
    
    response = requests.post(url, data=json.dumps(payload), headers=headers)
    

    【讨论】:

    • 谢谢,您的回答确实有帮助,但我们仍在努力……
    • 您有什么问题?主要区别在于有效负载主体需要是 json 对象,而不是您现在尝试发送的查询字符串。
    • 结果状态 204 - '无内容' 我现在确实在 Analytics 上看到了一些数据,但如文档中所述,它的计数类似于页面浏览量而不是事件。
    • 您使用什么作为“client_id”?在服务器到服务器的场景中,这对我来说没有多大意义,除非您让客户端创建一个唯一 ID 并以某种方式将其路由到服务器。
    • 测量协议将数据发送到谷歌分析,您无需客户端 ID 即可将数据发送到分析。测量 ID 用于说明您尝试向哪个 Google 分析帐户发送数据。您需要一个客户端 ID 才能从 Google 分析中提取数据,而不是向它提取数据。
    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多