Опубликовано: 08 окт 2019
Отчеты по контенту в Яндекс Метрике позволяют вам оценивать степень вовлеченности пользователей на страницах, где размещен текстовый контент. Естественно наибольшую пользу они могут принести в первую очередь медийным компаниям, которым нужно оперативно оценивать, как пользователи реагируют на новые публикации и в целом понимать эффективность того или иного опубликованного материала. Но и не медийным компаниям ничто не мешает использовать данный тип отчетов чтобы, например, проанализировать насколько материал о продукте или о новостях компании интересен посетителям сайта компании.
В Метрике "из коробки" отчеты по контенту не доступны , для их полноценного подключения необходимо затратить немало усилий — необходимо провести корректную разметку всего контента на вашем сайте. Однако если вы хотите быстро посмотреть на то, как работает отчет и насколько он в принципе может быть вам полезен, есть способ подключить Отчеты по контенту в течение нескольких минут, если вы используете Google Tag Manager для загрузки ваших тегов, включая тег инициализации Яндекс Метрики.
Disclaimer:
Если вы все таки хотите протестировать такое хэкинг-решение, то вот шаги по его внедрению.
Яндекс Метрика предлагает размечать контент, как непосредственно в HTML (Microdata), так и с помощью JSON-LD. Второй вариант мы как раз и будем использовать, поскольку сниппеты разметки в таком случае мы можем добавлять на страницу с помощью GTM.
Для полноценных комплексных отчетов по контенту вам понадобится целый набор различных параметров разметки, мы же будем использовать самый необходимый минимум. Часть параметров в таком случае Метрика будет подтягивать автоматически, поскольку, как сказано в документации, например, для ключа text
:
Если ключ text
не найден, в качестве текста будет взято:
url
или @id
<head>
)<body>
страницы во всех остальных случаяхЗдесь есть для нас интересный момент — в зависимости от того, указан или нет реальный url в параметрах JSON-LD метрика будет оценивать текст материала возможно немного по разному. Вместо реального url
, чтобы параметр не пустовал, можно указать, например, только значимую часть по которой можно идентифицировать url
страницы.
Если коды инициализации метрики загружаются через GTM, нам нужно добавить сниппет JSON-LD перед кодом метрики, чтобы, когда она инициализировалась, данные JSON-LD уже были доступны на странице. Естественно вы можете подключить сниппет JSON-LD только для определенных страниц. В случае моего сайта, я подключил его для всех страниц, поскольку не вижу причин почему бы этого не сделать.
Если вы подгружаете код метрики через тег Custom HTML
, то весь код (JSON-LD плюс Метрика) вашего тега может выглядеть так:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Article",
"@id": "{{pagePathName}}",
"headline": "{{pageTitle}}",
"author": [
{"@type":"Person", "name":"Yuri S"}
],
"url": "{{pagePathName}}"
}
</script>
<script type="text/javascript">
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],
k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(XXXXXX, "init", {
id:XXXXXXX,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true,
triggerEvent: true
});
window.google_tag_manager[{{Container ID}}].onHtmlSuccess({{HTML ID}});
</script>
Если же вы используете шаблон (template) из галереи шаблонов GTM, то вам нужно использовать опцию Tag Sequencing
для загрузки JSON-LD
раньше кодов Метрики.
Соответствующие переменные в GTM могут быть такими:
Код переменной {{pageTitle}}
:
function() {
return document.title.replace(/"|&/g,'');
}
Здесь я убираю из заголовка символы двойной ковычки "
и &
, поскольку иначе данные не отправлялись.
Код переменной {{pagePathName}}
, которая определяет ключ url
, как я и говорил выше может быть в двух вариантах: 1.непосредственно канонический url страницы материала и 2.некий псевдо-url, уникальная часть канонического url:
1.канонический URL старницы:
function() {
return encodeURIComponent({{Page URL}}.split('?')[0])
}
2.псевдо-url (это пример, конкретный код может варьироваться):
function() {
return document.location.pathname =='/' ? 'homepage' : document.location.pathname.match(/([A-Za-z0-9_-]+)\/?$/)[1];
}
На данном сайте я использую второй вариант.
Далее вам нужно подождать немного времени, пока статистика накопится. Согласно документации: "По размеченным материалам начнет собираться статистика. Отчеты появятся в разделе Контент через несколько часов."
Убедиться в том, что данные для отчетов по контенту отправляются в метрику можно в режиме отладки, запустив его с помощью параметра _ym_debug=1
, добавленного к вашему URL.
В консоли должны присутствовать строчки:
Publishers analytics schema "json_ld"
Publisher content info found
Если раскрыть соответствующий объект, то можно убедиться, что вложенные ключи отправляются не пустыми:
Как видно, в данном случае отправились данные об авторе, заголовок и url (псевдо значение). Данные же параметров rubric
и topics
отсутствуют и соответственно не попадут в отчет.
Возможно у вас возникнет вопрос: если Яндекс Метрика не рекомендует такую имплементацию, зачем я реализовал ее на своем сайте. На то были две основные причины. Во-первых мне было лень реализовывать правильную разметку внутри страниц моего блога, во-вторых я вижу некую условность данных отчетов в целом, и рассматриваю их, скорее как некие прокси-метрики.
Поясню на примере. Предположим, что человек открыл материал, и на его большом мониторе поместилось 2/3 текста всей статьи. Больше он ничего не делал на странице, почитал 5 минут и закрыл ее. Какие цифры пойдут в Доскролы и в Дочтения в таком случае? Проскролил 0, 2/3, или что-то еше?
Вы видите из этого простого примера, что без возможности фильтрации экранов по размеру, и не зная принцип формирования цифр, трудно оценить правильность отчетов для некоторых сценариев. Я, кстати, задавал этот вопрос на официальном канале поддержки Метрики, но не получил ответа... И да, возможности фильтрации и сегментации в отчетах по контенту пока ограничены, хотя со временем наверняка будут расширяться. Ну и если у вас SPA, то все как всегда еще более не тривиально.