我正在谷歌电子表格中的项目工作,并正在使用一个脚本,将触发表单上的活动,如编辑/删除/ NewLine等..和这些活动会通过测量协议发送到Google Analytics(分析)。内部调用函数If..If Else..Else内谷歌应用程序脚本
现在我有一个If ... Else if ... Else它确定这是一个编辑,newLine或已删除的现有值。
这是我的代码:
//在回答后更新了代码,但仍无法正常工作。
var GoogleAnalyticsEDIT;
var GoogleAnalyticsSLETT;
var GoogleAnalyticsREDIGER;
// MP
// EDIT SEND
GoogleAnalyticsEDIT = function GoogleAnalyticsEDIT(tid){
var data = { 'v': '1',
't' : 'event',
'tid': tid, // TrackingID Google Analytics
'cid': Session.getTemporaryActiveUserKey(),
'ec': 'SpreadSheet', // Event Kategori.
'ea': 'nyVerdi-'+noLetter, // Event Hendelse(action)
'el': SpreadsheetApp.getActiveSpreadsheet().getName(),
'ev': '300' }; // test og fjern <----- TEST OG FJERN
var payload = Object.keys(data).map(function(key) {
return encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
}).join('&');
var options = {'method' : 'POST',
'payload' : payload };
UrlFetchApp.fetch('http://www.google-analytics.com/collect', options);
}
//MP
// SLETT SEND
GoogleAnalyticsSLETT = function GoogleAnalyticsSLETT(tid){
var data = { 'v': '1',
't' : 'event',
'tid': tid, // TrackingID Google Analytics
'cid': Session.getTemporaryActiveUserKey(),
'ec': 'SpreadSheet', // Event Kategori.
'ea': 'slettVerdi-'+noLetter, // Event Hendelse(action)
'el': SpreadsheetApp.getActiveSpreadsheet().getName(),
'ev': '300' }; // test og fjern <----- TEST OG FJERN
var payload = Object.keys(data).map(function(key) {
return encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
}).join('&');
var options = {'method' : 'POST',
'payload' : payload };
UrlFetchApp.fetch('http://www.google-analytics.com/collect', options);
}
// MP
// REDIGER SEND
GoogleAnalyticsREDIGER = function GoogleAnalyticsREDIGER(tid){
var data = { 'v': '1',
't' : 'event',
'tid': tid, // TrackingID Google Analytics
'cid': Session.getTemporaryActiveUserKey(),
'ec': 'SpreadSheet', // Event Kategori.
'ea': 'redigerVerdi-'+noLetter, // Event Hendelse(action)
'el': SpreadsheetApp.getActiveSpreadsheet().getName(),
}; // test og fjern <----- TEST OG FJERN
var payload = Object.keys(data).map(function(key) {
return encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
}).join('&');
var options = {'method' : 'POST',
'payload' : payload };
UrlFetchApp.fetch('http://www.google-analytics.com/collect', options);
}
//FUNKSJON ---- DEBUG
var newValue = (typeof e.value == "object" ? e.range.getValue() : e.value);
var oldValue = (typeof e.oldValue == "object" ? e.range.getValue() : e.oldValue);
if (!e.oldValue) {
Browser.msgBox("GA: newValue (NY LINJE)");
GoogleAnalyticsEDIT("UA-101502909-2");
}
else if (e.value.hasOwnProperty("oldValue")) {
GoogleAnalyticsSLETT("UA-101502909-2");
}
else {
Browser.msgBox("GA: ChangeValue (REDIGERT VERDI)");
GoogleAnalyticsREDIGER("UA-101502909-2")
}
} //slutt: MyOnEditNeW();
问题:第一IF(..)语句的工作,我得到的MSGBOX警报和数据被发送到谷歌Analytics(分析),但不是第二次打击的if else(...)块。 msgbox警报有效,但不会触发GoogleAnalyticsSLETT();
函数。这是一个可安装的触发器
任何人都知道,也许它不允许在If If语句中调用函数,或者是我的代码错误?
你不应该使用'Browser.msgBox()'进行调试。使用Logger.log('variableName:'+ variableName)'运行代码然后查看LOGS。另外,执行抄本是什么状态?哪行代码失败。我们不想知道行号。我们不知道你的代码的行号。 –