使用测量协议和非交互式时缺少大量事务
Missing significant number of transactions when using measurement protocol and non-interactive
使用 google 分析及其测量协议,我正在尝试根据我的客户(他们不是最终消费者意味着不稀疏的唯一用户 ID、位置等...)跟踪电子商务交易有收入“销售”的语义概念。
问题是,在查看转化 -> 电子商务 -> 交易时,并非我记录的所有对 ga mp API 的请求都会导致交易“行”。此外,报告的收入也分别丢失了。差异的一个例子是列出我所有的非零交易收入 API 电话,我应该在分析仪表板中看到 321 笔交易。但是,我只看到 106... 30%!!!这几乎每天都一样,甚至调整一些我认为会强制会话或事务的唯一性的属性。
语义上的差异是唯一消费者(cid 或 uid)可以发送具有唯一“ti”(交易 id)的“t=transaction”,它们重叠且不是连续的。我这样说是为了表明 可能 发生了一些与会话相关的重复数据删除,即使我的“ti”属性在我的“事务”概念中绝对是独一无二的。换句话说,一个特定的 cid/uid 可能在同一分钟内有许多不同的 ti。
我没有使用 google 分析 javascript 或客户端组件,它们根本不适用于我需要如何使用 google 分析,这让我开始使用测量协议。
使用 hit-builder /debug/collect 并记录任何 http 非 200 响应,我完全没有看到 all 我的 "t=transaction " 消息将不会被接收和处理。我认为一些典型的调试点已经被我尝试过的列表所消除
- 已通过 /collect 发送消息
- 通过 /batch 发送了多条消息(t=transaction and t=item)
- 将我的消费者 UUID 作为 cid=、uid= 和两者发送
- 尝试使用和不使用“sc=start”以确保没有事务的会话重复数据删除
- 尝试使用和不使用 ua(用户代理)和 uip(ip 覆盖),因为它是服务器端,但来自消费者的点击有时确实来自不同的来源
- 考虑了我的时区 (UTC-8) 以及我的服务器如何记录这些请求 (UTC)
- 等待 24 到 48 小时以确保数据
- 我的观点已开启电子商务
- 每天对测量协议的调用量 < 10000,所以我认为我没有达到任何限制
我也有 t=event 消息,尽管我暂时不使用它们,直到我看到数据至少表示了 90%+。
这里是一个 t=transaction 调用的例子。
curl \
--verbose \
--request POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'ta=customer1&t=transaction&sc=start&v=1&cid=4b014cff-ccce-44c2-bfb8-e0f05fc7827c&tr=0.0&uid=4b014cff-ccce-44c2-bfb8-e0f05fc7827c&tid=UA-xxxxxxxxx-1&ti=5ef618370b01009807f780c5' \
'https://www.google-analytics.com/collect'
您的调试工作做得很好,很遗憾,没有太多事情要做,还有一些事情需要检查:
- View bot/spider filter: 禁用此选项以确保安全
500 hits / session: if you're sending lots of hits for the same cid/uid
within 30 minutes
(whatever your session-timeout 是),那么这些将按照同一会话记录,因此您可能会达到配额限制。
10M hits / property / month:你没有提到整体音量所以我提到这个以防万一
Paylod limit of 1KB = 8192 bytes:我看到人们 运行 在跟踪附加了疯狂数量产品的交易时遇到了这个问题它
其他视图过滤器:同样的事情,你没有提到所以我提到以防万一
进一步调试可能包括:
- 使用事件而不是事务:事务的问题是它们是一个黑盒子,如果它们不显示,您就没有任何调试。我个人总是通过事件跟踪我的交易,并将电子商务有效负载的副本设置为事件标签(
JSON
字符串)以进行调试,因此如果事件存在,我知道这不是数据摄取问题,但很可能是我的电子商务格式错误的有效载荷(我有事件标签来调试它),如果事件丢失,那么这是一个数据摄取问题。 看下面的例子,把UA-XXXXXXX-1
换成你自己的:
v=1&t=event&tid=UA-XXXXXXX-1&cid=1373730658.1593409595&ec=Ecommerce&ea=Purchase&ti=T12345&ta=Online%20Store&tr=15.25&tt=0.00&ts=0.00&tcc=SUMMER_SALE&pa=purchase&pr1nm=Triblend%20Android%20T-Shirt&pr1id=12345&pr1pr=15.25&pr1br=Google&pr1ca=Apparel&pr1va=Gray&pr1qt=1&pr1cc=&el=%7B%22purchase%22%3A%7B%22actionField%22%3A%7B%22id%22%3A%22T12345%22%2C%22affiliation%22%3A%22Online%20Store%22%2C%22revenue%22%3A%2215.25%22%2C%22tax%22%3A%220.00%22%2C%22shipping%22%3A%220.00%22%2C%22coupon%22%3A%22SUMMER_SALE%22%7D%2C%22products%22%3A%5B%7B%22name%22%3A%22Triblend%20Android%20T-Shirt%22%2C%22id%22%3A%2212345%22%2C%22price%22%3A%2215.25%22%2C%22brand%22%3A%22Google%22%2C%22category%22%3A%22Apparel%22%2C%22variant%22%3A%22Gray%22%2C%22quantity%22%3A1%2C%22coupon%22%3A%22%22%7D%5D%7D%7D
- 使用像 Segment 这样的数据收集平台:这将通过他们的调试器为您提供额外级别的调试(尽管他们的有效负载语法是 != 而不是 GA,所以这引入了另一个层次的复杂性,尽管我熟悉它的语法,但它确实不时帮助我发现底层数据的问题。
使用 google 分析及其测量协议,我正在尝试根据我的客户(他们不是最终消费者意味着不稀疏的唯一用户 ID、位置等...)跟踪电子商务交易有收入“销售”的语义概念。
问题是,在查看转化 -> 电子商务 -> 交易时,并非我记录的所有对 ga mp API 的请求都会导致交易“行”。此外,报告的收入也分别丢失了。差异的一个例子是列出我所有的非零交易收入 API 电话,我应该在分析仪表板中看到 321 笔交易。但是,我只看到 106... 30%!!!这几乎每天都一样,甚至调整一些我认为会强制会话或事务的唯一性的属性。
语义上的差异是唯一消费者(cid 或 uid)可以发送具有唯一“ti”(交易 id)的“t=transaction”,它们重叠且不是连续的。我这样说是为了表明 可能 发生了一些与会话相关的重复数据删除,即使我的“ti”属性在我的“事务”概念中绝对是独一无二的。换句话说,一个特定的 cid/uid 可能在同一分钟内有许多不同的 ti。
我没有使用 google 分析 javascript 或客户端组件,它们根本不适用于我需要如何使用 google 分析,这让我开始使用测量协议。
使用 hit-builder /debug/collect 并记录任何 http 非 200 响应,我完全没有看到 all 我的 "t=transaction " 消息将不会被接收和处理。我认为一些典型的调试点已经被我尝试过的列表所消除
- 已通过 /collect 发送消息
- 通过 /batch 发送了多条消息(t=transaction and t=item)
- 将我的消费者 UUID 作为 cid=、uid= 和两者发送
- 尝试使用和不使用“sc=start”以确保没有事务的会话重复数据删除
- 尝试使用和不使用 ua(用户代理)和 uip(ip 覆盖),因为它是服务器端,但来自消费者的点击有时确实来自不同的来源
- 考虑了我的时区 (UTC-8) 以及我的服务器如何记录这些请求 (UTC)
- 等待 24 到 48 小时以确保数据
- 我的观点已开启电子商务
- 每天对测量协议的调用量 < 10000,所以我认为我没有达到任何限制
我也有 t=event 消息,尽管我暂时不使用它们,直到我看到数据至少表示了 90%+。
这里是一个 t=transaction 调用的例子。
curl \
--verbose \
--request POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'ta=customer1&t=transaction&sc=start&v=1&cid=4b014cff-ccce-44c2-bfb8-e0f05fc7827c&tr=0.0&uid=4b014cff-ccce-44c2-bfb8-e0f05fc7827c&tid=UA-xxxxxxxxx-1&ti=5ef618370b01009807f780c5' \
'https://www.google-analytics.com/collect'
您的调试工作做得很好,很遗憾,没有太多事情要做,还有一些事情需要检查:
- View bot/spider filter: 禁用此选项以确保安全
500 hits / session: if you're sending lots of hits for the same
cid/uid
within30 minutes
(whatever your session-timeout 是),那么这些将按照同一会话记录,因此您可能会达到配额限制。10M hits / property / month:你没有提到整体音量所以我提到这个以防万一
Paylod limit of 1KB = 8192 bytes:我看到人们 运行 在跟踪附加了疯狂数量产品的交易时遇到了这个问题它
其他视图过滤器:同样的事情,你没有提到所以我提到以防万一
进一步调试可能包括:
- 使用事件而不是事务:事务的问题是它们是一个黑盒子,如果它们不显示,您就没有任何调试。我个人总是通过事件跟踪我的交易,并将电子商务有效负载的副本设置为事件标签(
JSON
字符串)以进行调试,因此如果事件存在,我知道这不是数据摄取问题,但很可能是我的电子商务格式错误的有效载荷(我有事件标签来调试它),如果事件丢失,那么这是一个数据摄取问题。 看下面的例子,把UA-XXXXXXX-1
换成你自己的:
v=1&t=event&tid=UA-XXXXXXX-1&cid=1373730658.1593409595&ec=Ecommerce&ea=Purchase&ti=T12345&ta=Online%20Store&tr=15.25&tt=0.00&ts=0.00&tcc=SUMMER_SALE&pa=purchase&pr1nm=Triblend%20Android%20T-Shirt&pr1id=12345&pr1pr=15.25&pr1br=Google&pr1ca=Apparel&pr1va=Gray&pr1qt=1&pr1cc=&el=%7B%22purchase%22%3A%7B%22actionField%22%3A%7B%22id%22%3A%22T12345%22%2C%22affiliation%22%3A%22Online%20Store%22%2C%22revenue%22%3A%2215.25%22%2C%22tax%22%3A%220.00%22%2C%22shipping%22%3A%220.00%22%2C%22coupon%22%3A%22SUMMER_SALE%22%7D%2C%22products%22%3A%5B%7B%22name%22%3A%22Triblend%20Android%20T-Shirt%22%2C%22id%22%3A%2212345%22%2C%22price%22%3A%2215.25%22%2C%22brand%22%3A%22Google%22%2C%22category%22%3A%22Apparel%22%2C%22variant%22%3A%22Gray%22%2C%22quantity%22%3A1%2C%22coupon%22%3A%22%22%7D%5D%7D%7D
- 使用像 Segment 这样的数据收集平台:这将通过他们的调试器为您提供额外级别的调试(尽管他们的有效负载语法是 != 而不是 GA,所以这引入了另一个层次的复杂性,尽管我熟悉它的语法,但它确实不时帮助我发现底层数据的问题。