怎么注册百度账号,网站搜索优化排名,深圳地铁优化,wordpress调整字体google analytics开发参考地址#xff1a;https://developers.google.cn/analytics google analytics登录地址#xff1a;https://analytics.google.com
前言
google analytics一般都是针对网站#xff0c;web应用和移动应用平台#xff0c;当我们的客户端是cs架构的时候…google analytics开发参考地址https://developers.google.cn/analytics google analytics登录地址https://analytics.google.com
前言
google analytics一般都是针对网站web应用和移动应用平台当我们的客户端是cs架构的时候该怎么做呢看图 当然是选择Measurement Protocol了
Measurement Protocol
Google Analytics Measurement Protocol 可让开发者通过 HTTP 请求直接向 Google Analytics 服务器发送原始用户互动数据。这样开发者就可以衡量在各种环境中用户互动的情况。 既然是http那就包含报文头和content比如我们要上传一个用户的点击播放按鈕的事件content格式形如
v1tidUA-XXXXX-Ycid555teventecplayeapaly当然我们也可以批量上传最多不超过20个匹配
v1tidUA-XXXXX-Ycid555teventecplayeapaly
v1tidUA-XXXXX-Ycid555teventecplayeastop
v1tidUA-XXXXX-Ycid555teventecplayeatest批量限制
可对每个请求指定最多 20 个匹配所有匹配负载的总大小不能超过 16K 字节单个匹配负载不能超过 8K 字节
t表示匹配类型这里我选择发送的匹配类型是事件跟踪类型eventec表示事件类别ea表示事件操作其它更多参数请参考开发文档介绍的很详细。
操作步骤
现在开始讲具体步骤流程。
拥有一个google账号注册的话最好是用Google Chrome浏览器进行注册用该账号登录google analytics登录进去后点击创建媒体资源 这里我们选择网站因为我们需要创建之后的媒体资源ID格式形如UA-XXXXX-X,然后点击继续 网站名称我们可以填写自己软件的名称这个任意其实就是依托这个网站来统计我们的数据我填写的是我公司官网地址。行业类别选择计算机与电子产品然后点击创建。 创建成功之后会生成一个跟踪ID记住这个ID这个ID就是每次上传匹配的tid值。 接下来就是我们使用c代码上传数据下面是上传示例
int main()
{WSADATA wData;::WSAStartup(MAKEWORD(2, 2), wData);SOCKET clientSocket socket(AF_INET, 1, 0);struct sockaddr_in ServerAddr { 0 };int Ret 0;int AddrLen 0;HANDLE hThread 0;/*这里假设我要上传用户点击了某个按钮v:1t:匹配类型是事件eventec:事件类别是videoea:事件操作是点击停止按钮stoptid:就是我们创建媒体资源成功后的媒体资源IDcid:用户标识可以用电脑mac进行标识*/string strBody v1tidUA-xxxxxx-2cid6058teventecvideoeastop;int body_len strBody.length();char bufSend[1024] {0};sprintf(bufSend, POST /collect HTTP/1.1\r\n);sprintf(bufSend, %sHost:%s\r\n, bufSend, www.google-analytics.com);sprintf(bufSend, %sContent-Length: %d\r\n, bufSend, body_len);sprintf(bufSend, %s\r\n%s, bufSend, strBody.c_str());char addIp[256] { 0 };char* url (char*)www.google-analytics.com;HOSTENT* pHostEnt;int nAdapter 0;struct sockaddr_in sAddr;pHostEnt gethostbyname(url);if (pHostEnt){if (pHostEnt-h_addr_list[nAdapter]){memcpy(sAddr.sin_addr.s_addr, pHostEnt-h_addr_list[nAdapter], pHostEnt-h_length);}}else{cout gethostbyname error endl;return 0;}ServerAddr.sin_addr.s_addr inet_addr(inet_ntoa(sAddr.sin_addr));ServerAddr.sin_port htons(80);;ServerAddr.sin_family AF_INET;char bufRecv[3069] { 0 };int errNo 0;errNo connect(clientSocket, (sockaddr*)ServerAddr, sizeof(ServerAddr));if (errNo 0){//如果发送成功则返回发送成功的字节数;if (send(clientSocket, bufSend, strlen(bufSend), 0) 0){cout 发送成功\n;//如果接受成功则返回接受的字节数;if (recv(clientSocket, bufRecv, 3069, 0) 0){cout 接受的数据: bufRecv endl;}}}else{errNo WSAGetLastError();cout connect error endl;}::WSACleanup();cout end endl;return 0;
}//QT项目上传数据代码示例
QString strContent v1tidUA-xxxxxx-2cid6058teventecvideoeastop;
auto body strContent.toLatin1();int body_len strContent.length();QNetworkRequest request;request.setUrl(QUrl(https://www.google-analytics.com/collect));request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant(text/plain));request.setRawHeader(POST,/collect HTTP/1.1);request.setRawHeader(Host,www.google-analytics.com);request.setRawHeader(Content-Length,QString::number(body_len).toStdString().c_str());QEventLoop eventLoop;QNetworkAccessManager *manager new QNetworkAccessManager();QNetworkReply *reply manager-post(request, body);QObject::connect(reply, SIGNAL(finished()), eventLoop, SLOT(quit()));eventLoop.exec();if (reply-error() QNetworkReply::NoError)return true;elsereturn false;最后
如果上传后返回200就表示上传成功了上传成功后如果我们想在google analytics平台通过报告的形式看我们上传的数据就需要自己去定义报告的形式了。