如何使用Google Spreadsheets上的Googe-App-Scripts将用户活动传递给GA

时间:2015-10-30 19:08:43

标签: javascript google-apps-script google-analytics google-sheets

我偶然发现了@igrigorik(https://github.com/igrigorik/ga-beacon)的代码。

function sendGAMP(tid, url) {
  var payload = {
    'v': '1',
    'tid': tid,
    'cid': generateUUID_(),
    'z': Math.floor(Math.random()*10E7),
    't': 'pageview',
    'dl': url
  };
  var options = {
    'method': 'POST',
    'payload': payload
  };
  UrlFetchApp.fetch('https://www.google-analytics.com/collect', options);
}

从编辑器中的onOpen函数触发时,代码可以正常工作,例如:

function onOpen(){
  sendGAMP("UA-YOUCODEHERE-X", SpreadsheetApp.getActiveSpreadsheet().getName());
}

我尝试在用户打开作为网页发布的Google电子表格时捕获活动,但没有成功。

我可以使用哪种类型的功能来确保在用户打开文件时触发sendGAMP?点击文件?是否有可能由于限制从Google Spreadsheets触发JavaScript?

1 个答案:

答案 0 :(得分:0)

  

我可以使用哪种类型的功能来确保在用户打开文件时触发sendGAMP?

没有快乐 - onOpen()触发器仅链接到Sheets Web GUI,没有其他形式的“打开”电子表格会调用触发器功能。

  

...点击文件?

此处不确定“文件”的含义。如果他们可以在Google云端硬盘中看到工作表,并在网上在网上打开它,则会调用onOpen()触发器,如上所述。

可能的解决方法

编写Google Apps脚本网络应用以提供电子表格内容,例如通过Content Service作为JSON数据。然后,网络应用会负责启动sendGAMP()以启动您的分析统计信息。