我正在使用C代码记录来自嵌入式应用程序的HTTP请求,并看到一个GA帐户出现实时事件,而另一个帐户却没有。
在这两种情况下,应用程序概述中的事件将在第二天作为注册消息出现,因此发布似乎是有效的。然而,我没有看到事件出现在实时部分。
备注:
( i)客户ID在两种情况下都是相同的GUID,cid=35009a79-1a05-49d7-b876-2b884d0f825bii)唯一的区别是跟踪代码tid=UA-XXXX YYiii),我理解参数"ev“和"el”是不必要的(插入它们没有区别),iv)插入“a”参数(例如,an=MyApp)会使事件实时显示;但删除an=MyApp会使事件不显示为实时事件(但它将第二天显示为注册事件)。
你知道这是怎么回事吗?
作为旁白(尽管这不应该引起任何不同),我已经在开发人员控制台中启用了GA,并且在这两种情况下我都使用相同的DeveloperConsole生成的客户机ID。
编辑:这里是HTTP的一个代表性片段:-
static BYTE ServerName[] = "www.google-analytics.com";
static WORD ServerPort = 80;
static BYTE GAClientID[] = "35009a79-1a05-49d7-b876-2b884d0f825b";
static BYTE GATrackingCode[] = "UA-XXXXXXX-Y";
static ROM BYTE ContentLength[4];
strcpy(pPayloadBuffer, (ROM BYTE*)"v=1");
strcat(pPayloadBuffer, (ROM BYTE*)"&tid=");
strcat(pPayloadBuffer, (ROM BYTE*)GATrackingCode);
strcat(pPayloadBuffer, (ROM BYTE*)"&cid=");
strcat(pPayloadBuffer, (ROM BYTE*)GAClientID);
strcat(pPayloadBuffer, (ROM BYTE*)"&an=MyApp2&t=pageview&dp=Test");
strcat(pPayloadBuffer, (ROM BYTE*)"&t=event&ev=55&el=label&cd2=");
// get SNTP time and convert to struct tm
dwSNTPseconds = SNTPGetUTCSeconds();
timeNow = gmtime((const time_t*)&dwSNTPseconds);
// inspect values in tm struct
sec = timeNow->tm_sec;
min = timeNow->tm_min;
hour = timeNow->tm_hour;
day = timeNow->tm_mday;
month = timeNow->tm_mon;
year = timeNow->tm_year + 1900;
// years
uitoa(year, sBuffer);
strcat(pPayloadBuffer, sBuffer);
// months
if (month<10) {
strcat(pPayloadBuffer, "0");
}
uitoa(month, sBuffer);
strcat(pPayloadBuffer, sBuffer);
// days
if (day<10) {
strcat(pPayloadBuffer, "0");
}
uitoa(day, sBuffer);
strcat(pPayloadBuffer, sBuffer);
// hours
if (hour<10) {
strcat(pPayloadBuffer, "0");
}
uitoa(hour, sBuffer);
strcat(pPayloadBuffer, sBuffer);
// minutes
if (min<10) {
strcat(pPayloadBuffer, "0");
}
uitoa(min, sBuffer);
strcat(pPayloadBuffer, sBuffer);
// seconds
if (sec<10) {
strcat(pPayloadBuffer, "0");
}
uitoa(sec, sBuffer);
strcat(pPayloadBuffer, sBuffer);
// Temperature
strcat(pPayloadBuffer, (ROM BYTE*)"&cm1=");
uitoa(gTemperature, tmpString);
strcat(pPayloadBuffer, tmpString);
lenPayload = strlen(pPayloadBuffer);
// Place the application protocol data into the transmit buffer
TCPPutROMString(MySocket, (ROM BYTE*)"POST /collect HTTP/1.1\r\n");
TCPPutROMString(MySocket, (ROM BYTE*)"Host: ");
TCPPutString(MySocket, ServerName);
TCPPutROMString(MySocket, (ROM BYTE*)"\r\n");
TCPPutROMString(MySocket, (ROM BYTE*)"Content-Type: text/xml; charset=utf-8\r\n");
TCPPutROMString(MySocket, (ROM BYTE*)"Content-Length: ");
uitoa(lenPayload, (BYTE*)ContentLength);
TCPPutString(MySocket, (BYTE*)ContentLength);
TCPPutROMString(MySocket, (ROM BYTE*)"\r\n");
TCPPutROMString(MySocket, (ROM BYTE*)"Accept-Language: en-us \r\n");
TCPPutROMString(MySocket, (ROM BYTE*)"Accept-Encoding: gzip, deflate \r\n");
TCPPutROMString(MySocket, (ROM BYTE*)"Connection: Keep-Alive \r\n\r\n");
TCPPutString(MySocket, pPayloadBuffer);
// end of line
TCPPutROMString(MySocket, (ROM BYTE*)"\r\n");
TCPPutROMString(MySocket, (ROM BYTE*)"\r\n");
// Send the packet
TCPFlush(MySocket);
发布于 2014-12-08 11:36:44
不是一个完整的答案,我只是想帮助调试:
对于应用程序帐户,它的&t=screenview
而不是&t=pageview
对于app帐户,以下是无文档要求的字段
发布于 2014-12-05 21:42:35
尝试检查,看看你是否有不同的过滤器,在GA帐户,它没有出现在。我也有同样的问题,结果是因为IP过滤器。
发布于 2019-12-03 10:03:04
我也有同样的问题:从服务器记录的事件在常规分析中是存在的,而不是实时的。并且使用命中建造者发送相同的有效负载也是有效的。
通过比较hit构建器和我的后端发送的头,我发现需要添加user-agent
头来获得实时视图中显示的事件:"user-agent": "Mozilla/5.0 (My App Server) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
。
https://stackoverflow.com/questions/27320985
复制相似问题