0

我正在尝试将服务器端(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)

这在 Analytics V3 上非常有效 - 当属性 id 为UA-XXXXXXXXX时。

现在所有 V4 属性都具有不同的 id,例如“G-9DXXXXXXXX”,并且似乎无法正常工作。

我没有找到任何关于 V4 事件的文档,任何帮助都会受到高度评价。

4

1 回答 1

0

为了向 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: {},
    }]
  })
});

我建议使用事件生成器 GA4 进行测试有点棘手,因为它仍处于 alpha 阶段。

Python

主要变化是您发布的是 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)
于 2020-12-14T10:24:12.653 回答