如何通过gtag脚本传递GCLID向Google Ads提交离线转化?
自制CRM离线转化数据传递至Google Ads的解决方案
你的GTAG脚本问题分析与修正
你用的GTAG格式方向是对的,但存在几个关键缺失,导致数据无法被Google Ads正确识别:
1. 补充必填参数与修正代码结构
Google Ads要求转化事件必须包含currency参数,且代码需闭合完整。正确的脚本格式如下:
gtag('event', 'test_conversion', { 'send_to': 'AW-XXXXXX/YYYYYYYY', // 替换为你的转化ID和标签 'value': 1.0, 'currency': 'USD', // 替换为对应货币代码(如CNY) 'gclid': '从数据库取出的实际GCLID值' });
2. 排查204 OK但无数据的原因
- GCLID有效性:GCLID仅在生成后90天内有效,且不能重复用于转化归因,需确保传入的GCLID符合要求
- 转化设置匹配:检查Google Ads中
test_conversion的设置:- 确认归因窗口覆盖你的转化周期(比如设置为90天)
- 没有设置域名过滤或其他限制规则
- GTAG初始化检查:发送事件前必须先完成Google Ads的GTAG初始化,页面头部需包含:
window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-XXXXXX'); // 替换为你的Google Ads客户ID - 数据延迟:Google Ads转化数据通常有1-4小时的延迟,不要立即查看结果
其他GTAG相关的离线转化传递方式
1. 添加回调验证发送状态
可以通过event_callback确认事件是否成功触发,便于调试:
gtag('event', 'test_conversion', { 'send_to': 'AW-XXXXXX/YYYYYYYY', 'value': 1.0, 'currency': 'USD', 'gclid': '实际GCLID值', 'event_callback': function() { console.log('转化事件已成功提交'); }, 'event_timeout': 10000 // 10秒超时,避免无限等待 });
2. 服务器端发送(推荐离线场景)
对于销售经理确认交易的离线场景,服务器端调用Google Ads转化API更可靠,避免前端广告拦截、页面跳转等问题。核心逻辑是从后端发起POST请求:
POST https://www.google-analytics.com/mp/collect?measurement_id=G-XXXXXX&api_secret=YYYYYYYY Content-Type: application/json { "client_id": "用户的Client ID(可选,若有存储)", "events": [ { "name": "test_conversion", "params": { "value": 1.0, "currency": "USD", "gclid": "存储的GCLID值" } } ] }
内容的提问来源于stack exchange,提问作者Oleg
相关产品推荐
相关产品推荐

