Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪个实用程序或UNIX命令有助于向Google Universal Analytics提交大量事件数据?_Unix_Google Analytics_Universal Analytics - Fatal编程技术网

哪个实用程序或UNIX命令有助于向Google Universal Analytics提交大量事件数据?

哪个实用程序或UNIX命令有助于向Google Universal Analytics提交大量事件数据?,unix,google-analytics,universal-analytics,Unix,Google Analytics,Universal Analytics,在上面的链接中,详细阐述了测量协议。假设我有一个CSV文件,其中包含EventName、ClientID等列,我想将其提交到Universal Analytics系统。是否有UNIX命令、实用程序或第三方软件允许我从命令行或任何更友好的UI提交数据?我自己不是bash向导,因此有任何方法可以改进这一点(我改编了一个),但下面是一个简单的示例 要将点击分组到会话中(如果适用),您需要一个客户端id。客户端id是一个强制参数,但如果您希望将文件中的每一行记录为一个新会话,则可以使用随机数作为cid参


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

我自己不是bash向导,因此有任何方法可以改进这一点(我改编了一个),但下面是一个简单的示例

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

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

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

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

#/bin/bash
UAID=“UA-XXXXX-XX”//Google分析账户ID
INPUT=data.cvs//输入文件名
OLDIFS=$IFS//存储默认csv分隔符
如果s=;//设置csv分隔符
[!-f$INPUT]&&&{echo“$INPUT file not found”退出99;}//如果输入文件丢失,则显示一条很好的错误消息
当cid页面pagetitle//当csv读取字段中有行时
做
wget“www.google-analytics.com/collect?v=1&tid=$UAID&cid=$cid&t=pageview&dp=$page&dt=$pagetitle”//呼叫谷歌跟踪服务器
已完成<$INPUT//没有更多行
IFS=$OLDIFS//恢复默认csv分隔符

显然,您必须使此脚本可执行。我测试了这个(最近的Debian/bash),所以我很确定它会起作用。这可能不是很有效。

这只是http请求,因此您可以在shell脚本中解析csv,并通过wget或curl发送请求,或者运行cli php脚本(可能使用curl或fopen或…)。您根据链接中的引用形成url(人们似乎认为有一些隐藏的魔力,但它实际上和看起来一样简单)并发送它。唯一的问题是,您应该在调用url后包含一个延迟,因为一次发送的请求数量是有限制的(20次点击,以每秒2次点击的速度补充)。任何shell脚本或smth都可以从开始,而且一些身份验证方面仍然不明确GA数据收集中没有身份验证。任何人都可以在知道你的帐户id后将数据发送到你的帐户。因此,你是否有可能只提供一个非常简单的脚本,并将其添加为我将批准的答案?还发现了此页面,该页面解释了如何通过GA UI上传文件:上传仅用于修改现有点击数据-你无法从头上传页面浏览量。因此,我无法上载新事件?是这样吗?您可以上载活动数据、产品属性、自定义维度或交易退款数据,但不能上载页面浏览、事件或交易等交互。是否有任何第三方软件执行此操作?有一个API很奇怪,但是没有人可以从报告上传数据(比如Bing转换)。
#!/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