首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哪个实用程序或UNIX命令可以帮助将大量事件数据提交给?

哪个实用程序或UNIX命令可以帮助将大量事件数据提交给?
EN

Stack Overflow用户
提问于 2014-10-26 13:58:58
回答 1查看 205关注 0票数 0

https://developers.google.com/analytics/devguides/collection/protocol/v1/reference

在上面的链接中,详细阐述了测量协议。假设我有一个CSV文件,列有EventName、ClientID等,我想将它提交给系统。是否有UNIX命令、实用程序或第三方软件允许我从命令行或任何更友好的UI提交数据?

EN

Stack Overflow用户

回答已采纳

发布于 2014-10-28 11:11:57

我自己也不是bash向导,所以会有任何方法来改进这个(我调整了一个我在网上找到的例子),但是下面是barebone的例子。

要将点击分组到会话(如果适用的话),您需要一个客户端id。Client id是一个强制参数,但是如果您希望将文件中的每一行记录为新会话,则可以使用一个随机数作为cid参数。

但是,该示例假设csv文件中的第一列包含一个参数,该参数可以用作cid。请注意,会话有最大500次的点击量(因此在此之后,您需要切换cid),并且每个会话的点击次数限制在每秒2次,因此您可能希望在脚本中添加延迟。

该示例假设csv文件以分号作为分隔符(可以在IFS变量中进行调整)。它还假设有三列,一列用于cid,一列用于页路径,一列用于文档标题。如果有三个以上的列,则最后一个值(pagetitle)将消耗所有剩余的列(因此,如果有三个以上的列,则在以“while”开头的行中追加列名)。

然后,脚本只构建一个url (以"while“开头的变量由名称前面的美元符号整数),并使用wget调用Google跟踪服务器(服务器返回wget将存储的gif图像--我确信有一个选项告诉wget从请求中删除内容)。

代码语言:javascript
运行
复制
#!/bin/bash
UAID="UA-XXXXX-XX" // Google Analytics Account ID
INPUT=data.cvs // Input file name
OLDIFS=$IFS // store default csv delimiter
IFS=; // set csv delimiter
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } // nice error message if input file is missing
while cid page pagetitle // while there are rows in the csv read fields
do
    wget "www.google-analytics.com/collect?v=1&tid=$UAID&cid=$cid&t=pageview&dp=$page&dt=$pagetitle" // call Google Tracking server 
done < $INPUT // no more rows
IFS=$OLDIFS // restore default csv delimiter

显然,您必须使这个脚本可执行。我测试了这个(最近的Debian/bash),所以我相当肯定这会成功。不过,这可能不是很有效。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26573757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档