Как отслеживать активность страницы на сайте Google с помощью Google Apps Script - PullRequest
2 голосов
/ 31 марта 2020

Проблема Я хочу иметь возможность отслеживать активность пользователей на моем сайте Google с помощью Apps Script, в частности, какие страницы посещают пользователи. Я не могу использовать Google Analytics (это не входит в мой контракт с Google). До сих пор Apps Script мог возвращать идентификатор пользователя (адрес электронной почты) пользователя при доступе к странице, однако я не могу понять, как вернуть, какие страницы активированы этим пользователем.

Что я сделал до сих пор Я создал веб-приложение и развернул / внедрил его на 2 страницах в тестовом сайте Google. Возвращает значения в таблицу в связанном файле листов Google. Вот сценарий:

function doGet(event) {
  return HtmlService.createHtmlOutputFromFile('UserLog.html');
}

function getPage(pageTitle) {
  var user = Session.getActiveUser();
  var ss = SpreadsheetApp.getActive();
  var db = "Webapp Log";
  var db_ss = ss.getSheetByName(db);
  var now = new Date();
  var page = pageTitle;
  var values = [now,user,page,"User activated webapp",Session.getTemporaryActiveUserKey()];
  db_ss.getRange(db_ss.getLastRow()+1, 1, 1, 5).setValues([values]);
};

Код "UserLog. html" такой:

<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <script>
       var page = [Solution]
       google.script.run.getPage(page);
    </script>
  </body>
  </html>

И пока возвращаемые значения выглядят так (с анонимными адресами): Значения таблицы

Как видите, поле 'Страница' пусто.

Что мне нужно Используйте встроенное веб-приложение для возврата URL активированной страницы ИЛИ для возврата другого уникального аспекта активированной страницы, например, заголовка страницы или «страница 1», «страница 2» и т. д. c. (все страницы сайта имеют уникальное название).

Как это можно сделать? Это вообще возможно?

1 Ответ

2 голосов
/ 31 марта 2020

Вы можете сделать это с помощью e.parameters

Теперь в приложениях Сценарий, вам просто нужно немного изменить функцию doGet(), чтобы получить страницу:

function doGet(event) {
  var page = event.parameter.page;
  return HtmlService.createHtmlOutputFromFile('UserLog.html');
}
  • Остальное зависит от ваших предпочтений. Проще всего было бы напрямую вставить значение page в электронную таблицу из функции doGet() - это позволит избежать передачи параметра в файл html, а затем с помощью google.script.run вернуться в функцию .gs.
...