Как отслеживать активность страницы на сайте Google с помощью скрипта Google Apps

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

То, что я сделал до сих пор. Я создал веб-приложение и развернул / встроил его на 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» и т. д. (все страницы на сайте имеют уникальный заголовок).

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


person Jamesdn    schedule 31.03.2020    source источник
comment
Как встроить веб-приложение в свой веб-сайт? А вы пользуетесь новыми или классическими сайтами?   -  person ziganotschka    schedule 31.03.2020
comment
Я публикую ›развернуть как веб-приложение› скопировать URL-адрес текущего веб-приложения. Затем я вставляю этот URL-адрес во встроенный элемент на сайте с помощью функции embed ‹› by URL. Пользуюсь новой версией сайтов.   -  person Jamesdn    schedule 31.03.2020
comment
Вы используете Sites или Classic Sites?   -  person ziganotschka    schedule 31.03.2020
comment
Я использую сайты   -  person Jamesdn    schedule 31.03.2020


Ответы (1)


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

  • Например. включите параметр page, который вы добавляете в конце URL-адреса веб-приложения.

  • Когда вы встраиваете URL-адрес WebApp в каждую страницу, присвойте странице уникальное значение, например https://script.google.com/a/XXX/macros/s/XXX/exec?page=1, https://script.google.com/a/XXX/macros/s/XXX/exec?page=2

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

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