#javascript #google-apps-script #google-sheets #google-analytics
Вопрос:
У меня есть рабочий процесс, который добавляет новую строку в таблицу Google каждый раз, когда свойство жизненного цикла изменяется в CRM.
Выходные данные включают идентификатор Google CID, личность, идентификатор клиента Hubspot и новый жизненный цикл в лист Google.
Это выглядит так — CRM 2 Google Analytics Google Лист
Существует таблица настроек, которая управляет идентификатором отслеживания Google analytics и пользовательским индексом измерений для измерений, которые я пытаюсь отправить.
Это скрипт Google Apps, который я использую
function sendToGoogleAnalytics() {
// select the data
var spreadSheet = SpreadsheetApp.openById('16Bn6Q9C0mBNy6ic1UO-30cWX5YXTeWkpyrbIt7SO1nw');
var sheet = spreadSheet.getSheetByName('Lifecycle');
sheet.activate();
var setting = spreadSheet.getSheetByName('Settings');
// getting settings
var ua = setting.getRange(2,2).getValue();
var hidcdi = 'cd' setting.getRange(3,2).getValue();
var lifecyclecdi = 'cd' setting.getRange(4,2).getValue();
var personcdi = 'cd' setting.getRange(5,2).getValue();
//getting values of the last row
var newData = sheet.getLastRow();
var gcid = sheet.getRange(newData,1).getValue();
var persona = sheet.getRange(newData,2).getValue();
var hubid = sheet.getRange(newData,3).getValue();
var lifecyclestage = sheet.getRange(newData,4).getValue();
//cache busting
var z = Math.random()*(1000000-1000) 1000;
//preparing the api call with options and the query parameters
var event ='amp;ec=Lifecycleamp;ea=Changeamp;el=' lifecyclestage;
var parameters = 'v=1amp;tid=' ua 'amp;t=eventamp;' 'amp;cid=' gcid 'amp;' hidcdi '=' hubid 'amp;' lifecyclecdi '=' lifecyclestage 'amp;' personcdi '=' persona event 'amp;ni=1amp;aip=1' 'amp;z=' z;
var options = {
'method': 'post',
'payload': parameters
};
//
var response = UrlFetchApp.fetch('https://www.google-analytics.com/collect',options);
var responsecode = response.getResponseCode();
if (responsecode >= 200 amp;amp; responsecode < 300) {
UrlFetchApp.fetch('https://www.google-analytics.com/collect',options);
Logger.log(responsecode);
Logger.log(response);
return response;
} else {
Logger.log(responsecode);
Logger.log(response);
return response;
}
}
Как вы можете видеть, я также хочу добавить его как событие, не связанное с взаимодействием.
Это возвращает последнюю строку, присваивает значения этих значений переменным, а затем создает переменные. Он отправляет с помощью метода post, который является предпочтительным. Все это основано на справочном руководстве по параметрам протокола измерений Google Analytics и отправке результатов измерений в Google Analytics.
Код ответа, который я получаю, равен 200, а ответ-какой-то GIF89a с некоторыми полями, которые я не могу прочитать
Я проверил отладчик, и все переменные заполняются правильно. И идентификатор кода отслеживания правильный (тот, что в этом документе, является примером, но я пробую его на реальном).
Однако я не вижу, чтобы это событие появилось в самой Google Analytics.
Я пробовал это как ПОЛУЧИТЬ и как СООБЩЕНИЕ, и я получаю один и тот же ответ, но он не отображается в Google Analytics.
Что я здесь делаю не так?
Ответ №1:
В конце концов, я не смог заставить это работать напрямую. Поэтому мне пришлось добавить еще один шаг. Я полагаю, что это было как-то связано с тем, что пользовательский агент не был должным образом записан, и я не мог этого сделать. Что я сделал, так это отправил его на сервер Google Tag Manager, а затем отправил оттуда. Когда я попробовал это, это сработало.