2014-12-05 43 views
2

我使用C代码记录来自嵌入式应用程序的HTTP POST请求并查看一个GA帐户的实时事件,但看不到另一个GA帐户。谷歌分析测量协议/实时事件没有显示

在这两种情况下,事件都在第二天在应用程序概述中作为注册消息出现,因此发布似乎正在工作。然而,我并没有看到事件在实时部分出现。

注:

    ⅰ)客户机ID是相同的GUID在这两种情况下[CID = 35009a79-1a05-49d7-b876-2b884d0f825b]
    II)的唯一区别是跟踪代码[TID = UA-XXXX-YY]
    ⅲ)我理解的参数“EV”和“EL”是不必要的(和它们插入没有区别)
    ⅳ)插入“一个”参数(例如一个= MyApp)导致事件实时显示;但删除an = MyApp会使该事件不作为实时事件显示(但它确实在第二天显示为注册事件)


任何想法发生了什么?

[顺便(虽然这不会引起任何差异),我已启用了GA API开发者控制台,我使用相同的开发人员控制台生成的客户端ID在这两种情况下。]

EDITED : 这里是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); 
+0

你可以张贴HTTP后的一个完整的例子任何机会?这是一个网站分析帐户还是一个应用程序分析帐户? – DaImTo 2014-12-05 17:56:50

+0

Account1:Web,Account2:App,Account3:Web。只有Account1显示实时事件。在上面的文章 – quixote 2014-12-08 11:10:53

+0

中添加了HTTP POST的示例,以便应用程序帐户不会执行这个技巧!&!= screenview not&t = pageview – DaImTo 2014-12-08 11:34:17

回答

1

不是一个完整的答案,我只是想帮助调试:

对于应用约占其& T = screenview没有& T =浏览量

对于应用占以下是无证必填字段

  • an - 应用程序名称示例:an = My%20Awesom%20APP
  • aid - 应用程序ID示例:aid = com.daimto.awesom.app
  • AV - 应用程序版本例如:AV = 1.0.0
  • AIID - 应用程序安装ID例如:AIID = come.daimto.awesom.installer
+1

非常感谢。我试着给你+1,但我还没有'代表'。无论如何,感谢您的帮助..! – quixote 2014-12-08 11:56:10

+0

api的文档说,aid,av和aiid都是可选的。 https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#apptracking – astletron 2015-06-25 16:26:54

+0

@astletron我知道,但我已经完成了测试,并直接从谷歌开发人员听到这些项目是无证的必需项目所述。随时测试自己。我将再次报告该问题以更正文档。欢迎参加投票:在投票前尝试确保答案实际上是错误的。 – DaImTo 2015-06-26 08:46:54

0

尝试检查,看看是否有不同的过滤器对GA占它没有显示在了我有同样的问题,它横空出世。归因于IP过滤器。

+0

为什么IP过滤器会影响这个?我已经尝试,并没有区别... – quixote 2014-12-08 11:11:40

+0

我有一个IP过滤器阻止我的办公室从我测试的交通。但实时报告过程与常规GA报告有​​点不同,因为可能发生的处理较少。如果您有任何过滤器,则可能值得尝试,但没有任何过滤器可以查看是否发生过滤。 – MarkeD 2014-12-08 11:28:19

+0

现在我明白你的意思了。我认为你指的是可以在GA中创建的小鸡。我试图修改后者,没有区别。 Account1仍显示实时事件,而Account2和3不显示 – quixote 2014-12-08 11:32:36