Рецепт аналитики для Twine 2

Материал из IFВики
Версия от 09:42, 29 июля 2020; Oreolek (обсуждение | вклад) (Новая страница: «'''Задача:''' смотреть, какие пассажи посетил игрок (из этого, например, можно вывести, скол…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Задача: смотреть, какие пассажи посетил игрок (из этого, например, можно вывести, сколько процентов игроков дошло до финала)

Для начала - выбираем систему аналитики. Если не вдаваться в подробности и различия, есть три популярных варианта:

Выбираете систему, она даёт вам кусок кода Javascript и ID. Здесь будут готовые куски кода (не забудьте заменить переменные!)

Затем открываете игру в редакторе Twine, нажимаете на название игры (слева внизу), выбираете «Редактировать Javascript». Туда вставлять код JS.

Google Analytics

Понадобится также настроить googletagmanager. Рецепт подходит для SugarCube, для других форматов попробуйте убрать строки с LoadScreen.

var lockID = LoadScreen.lock();
importScripts('https://www.googletagmanager.com/gtag/js?id=XXX').then(function () {
  window.dataLayer = window.dataLayer || [];
  window.gtag = function () {
    dataLayer.push(arguments);
  };
  gtag('js', new Date());
  gtag('config', 'ВАШ_ID');
  
  $(document).on('click', 'a[data-passage]', function () {
    gtag('event', 'Navigation', {
      event_label : $(this).attr('data-passage'),
      event_category : 'GuestClick'
    });
  });
  if (State.size > 0) { Engine.show(); }
  LoadScreen.unlock(lockID);
}).catch(function (error) {
  console.warn('Не смог загрузить библиотеку "gtag".');
  LoadScreen.unlock(lockID);
}); 

Matomo

 var _paq = window._paq = window._paq || [];
 _paq.push(['trackPageView']);
 _paq.push(['enableLinkTracking']);
 (function() {
   var u="АДРЕС_СЕРВЕРА_MATOMO";
   _paq.push(['setTrackerUrl', u+'matomo.php']);
   _paq.push(['setSiteId', 'ID_САЙТА']);
   var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
   g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
 })();
 $(document).on('click', 'a[data-passage]', function (ev) {
   var passage = $(this).attr('data-passage');
   if ( passage && _paq ) { 
      _paq.push(['trackPageView', passage])
   }
 });