求助:Google Analytics Measurement Protocol请求Hit异常排查
排查Google Analytics Measurement Protocol Hit 载荷问题
咱先把你的Hit载荷做URL解码,方便看清楚每个参数:
&dp=scenes.studio.Scene &geoid=TESTING &z=818790 &sr=480x270 &ul=en &sc=start &ds=simulator &dl=scenes.studio.Scene &dr=iOS &tid=UA-xxxxxxx-1 &ti=TESTING &cid=TESTING &aip=1 &an=FE &cd=scenes.studio.Scene &aid=xxx.yyyy.zzz. &v=1 &av=16.5.2
下面是几个关键的问题点,按优先级排序:
1. 缺少必填的Hit类型参数(t)
这是最致命的问题——Google Analytics Measurement Protocol要求每个Hit必须明确指定Hit类型(用参数t),比如screenview(屏幕浏览,对应APP场景)、pageview(页面浏览,对应web)、event(事件)等。你的载荷里完全没这个参数,GA根本不知道你要发送什么类型的数据,直接会拒绝这个请求。
从你带的cd(屏幕名称)和aid(应用ID)来看,你应该是要发送屏幕浏览Hit,所以必须加上&t=screenview这个参数。
2. aid参数格式有问题
你的aid值是xxx.yyyy.zzz.,末尾多了个多余的点号。GA的应用ID(aid)需要是有效的应用包名格式(比如com.yourcompany.yourapp),末尾的点会导致参数解析异常,建议去掉改成xxx.yyyy.zzz。
3. ti参数用错地方了
ti是交易ID参数,只有在发送transaction类型的Hit时才需要用。你这里是APP的屏幕浏览,这个参数完全没必要,留着只会增加冗余,还可能混淆数据,建议删掉。
4. dp和dl参数的冗余与格式问题
dp(页面路径)和dl(页面URL)都是针对web场景的参数,APP的屏幕浏览Hit其实不需要这俩——用cd(屏幕名称)和aid就足够标识内容了。保留它们虽然不会直接报错,但会让Payload变复杂,还可能导致GA的数据归类混乱。- 另外你这俩参数的值都是
scenes.studio.Scene,这不符合URL/路径的常规格式(比如应该是/scenes/studio/Scene或者完整的URL),如果一定要留着,建议调整成合理的格式。
5. 可选参数的合理性优化
geoid=TESTING:geoid应该是有效的地理位置代码(比如国家代码US、CN),TESTING是自定义值,GA识别不了,会直接忽略这个参数。如果是测试的话,要么用真实的地理代码,要么干脆去掉这个参数。cid=TESTING:测试时用固定CID没问题,但正式上线后建议生成唯一的用户ID(比如UUID),不然会把所有用户的数据混在一起,没法做用户维度的分析。
修正后的示例Payload
给你调整好了一个可用的screenview Hit载荷,你可以参考着改:
v=1 &tid=UA-xxxxxxx-1 &cid=TESTING &t=screenview &an=FE &av=16.5.2 &aid=xxx.yyyy.zzz &cd=scenes.studio.Scene &sc=start &ds=simulator &ul=en &sr=480x270 &z=818790 &aip=1 &dr=iOS
测试的时候,你可以用Google Analytics官方的Hit Builder工具验证参数有效性,或者发送请求后去GA的实时报告里看看数据有没有正常接收。
内容的提问来源于stack exchange,提问作者Catlard
相关产品推荐
相关产品推荐

