https://developers.google.com/analytics/devguides/collection/protocol/v1/reference
在上面的链接中,详细阐述了测量协议。假设我有一个CSV文件,列有EventName、ClientID等,我想将它提交给系统。是否有UNIX命令、实用程序或第三方软件允许我从命令行或任何更友好的UI提交数据?
发布于 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从请求中删除内容)。
#!/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),所以我相当肯定这会成功。不过,这可能不是很有效。
https://stackoverflow.com/questions/26573757
复制相似问题