Установка счетчика в Facebook Instant Article

Счетчик Яндекс.Метрики может быть установлен в моментальные статьи Facebook (Facebook Instant Article). Моментальные статьи Facebook позволяют встраивать системы аналитики с помощью специальных HTML-элементов.

Из-за особенностей реализации моментальных статей, JavaScript-код счетчика изолирован от других HTML-элементов статьи. Поэтому счетчик Яндекс.Метрики не может записывать действия читателя на странице статьи.

Следующие возможности Яндекс.Метрики не поддерживаются из-за особенностей реализации моментальных статей:

  • Вебвизор;
  • Карты кликов, ссылок и скроллинга;
  • Аналитика форм;
  • передача данных из контейнеров данных;
  • передача параметров посетителей.

Установка счетчика

Для установки счетчика:

  1. Добавьте следующий код в элемент body моментальной статьи:
    ...
    <figure class="op-tracker">
      <iframe>
        <!-- Добавьте сюда код счетчика -->
      </iframe>
    </figure>
    ...
              

Счетчик будет учитывать посещения для страницы, которая указана в элементе head как каноническая:

...
<head>
  <meta charset="utf-8">
  <link rel="canonical" href="your_link_here">
  <meta property="op:markup_version" content="v1.0">
</head>
...
      

Для проверки работоспособности счетчика воспользуйтесь эндпоинтом от Facebook.

Отправка параметров визитов

Для передачи параметров визита:

  1. Создайте JavaScript-объект yaParams:
    ...
    var yaParams = {
      title: "Article title",
      referrer: "Article referrer"
    }
    ...
              
  2. Передайте параметры при инициализации счетчика:
    ...
    var yaCounterXXXXXX = new Ya.Metrika({id: XXXXXX, params: window.yaParams||{}});
    ...
              

Facebook предоставляет определенный набор данных о моментальных статьях, которые можно использовать в качестве параметров визитов. Данные можно взять из JavaScript-объекта ia_document.

Пример интеграции счетчика

<body>
  ...
  <figure class="op-tracker">
    <iframe>
      <script type="text/javascript">
        // Получаем заголовок статьи
        // и сохраняем его в переменную для параметров визитов
        var articleTitle = ia_document.title;
        var yaParams = {
          title: "null",
        };
        if(articleTitle)
        {
          yaParams.title = articleTitle;
        }
        
        (function (d, w, c) {
          (w[c] = w[c] || []).push(function() {
            try {
            w.yaCounterXXXXXX = new Ya.Metrika({
                id:XXXXXX,
                trackLinks:true,
                accurateTrackBounce:true,
                params: window.yaParams||{title: "no title"}
              });
            } catch(e) { }
          });
          
          var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
          s.type = "text/javascript";
          s.async = true;
          s.src = "https://mc.yandex.ru/metrika/watch.js";
      
          if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
          } else { f(); }
        })(document, window, "yandex_metrika_callbacks");
      </script>
      <noscript><div><img src="https://mc.yandex.ru/watch/XXXXXX" style="position:absolute; left:-9999px;" alt=""/></div></noscript>
    </iframe>
  </figure>
  ...
</body>

XXXXXX — номер вашего счетчика.