Сбор статистики вечных размещений для ОРД

Привет, дорогой читатель! Если ты не понаслышке знаком с такими аббревиатурами, как ОРД, ЕРИР, ERID и связан с рынком интернет-рекламы, то, возможно, эта статья будет тебе полезна.

Сбор статистики вечных размещений для ОРД

Нашумевшие поправки к ФЗ «О рекламе» о регистрации, маркировке и учете интернет-рекламы, за прошедший год заставили всех причастных пересмотреть свои существующие процессы и вообще жизненный цикл рекламных публикаций. Одна из немалых проблем, которая теперь сидит в головах маркетологов, паблишеров и владельцев цифровых ресурсов – ежемесячный сбор статистики за "вечные" публикации. То есть те публикации, у которых нет как такового плана снятия с публикации, а значит по ним необходимо передавать статистику все время, что они находятся в общем доступе и получают больше нуля просмотров. По крайней мере до внесения поправок к ФЗ, регулирующих предельный период подачи отчетов.

Разумеется, с небольшими объемами, которые можно пересчитать на пальцах рук, вполне можно позволить себе полчаса в месяц на ручной сбор данных из Яндекс Метрики или Google Analytics. Тем, у кого такой контент выходит ежедневно и по-нарастающей увеличивает объемы рекламы, подлежащей отчетности, это потребует заметно больших усилий, а также увеличит вероятность допущения ошибок.

Ниже распишу один из способов, как можно организовать у себя на сайте удобный сбор статистики и иметь возможность формировать отчет по токенам (идентификаторам) интернет-рекламы.

К делу

За сбор данных будет отвечать Яндекс Метрика, которая скорее всего у вас уже стоит на сайте. Сами данные будут собираться в контейнер для ecommerce. Для реализации данного метода понадобятся базовые знания разработки сайтов.

Шаг 1. Подключите электронную коммерцию в Яндекс Метрике (если она не включена). Инструкция по подключению тут. Ниже в коде будет использоваться название контейнера dataLayer, как в примерах от Яндекса.

На сайте можно настроить сбор показов токенов 2-мя способами - быстро и не супер надежно, либо долго и качественнее:

Быстро и не супер надежно

Код ниже при каждом открытии страниц вашего сайта будет искать в тексте или ссылках несколько вариантов вхождения токена. Затем все найденные токены скрипт передает в контейнер Яндекс Метрики, говоря о том, что для этих элементов был зафиксирован показ.

Добавьте скрипт на все страницы сайта.

Код ниже писал непрофессиональный кодер любитель. Если видите способы его оптимизировать - велкам.

<script type="text/javascript"> document.addEventListener("DOMContentLoaded", function() { var pageContent = document.documentElement.outerHTML; var regex = /(?:erid|ерид|erid=|erid:|ерид:|erid: |ерид: )([a-zA-Z0-9]+)/g; var match; var matchIterator = pageContent.matchAll(regex); var adArr = []; for (var match of matchIterator) { var obj = {}; obj['id'] = match[1]; obj['name'] = match[1]; adArr.push(obj); } if (adArr.length > 0) { window.dataLayer.push({ "ecommerce": { "promoView": { "promotions": adArr } } }); } }); </script>

Скрипт ищет на странице все ключевые слова "ерид", "erid" с разными знаками и сохраняет число-буквенный токен, который идет после ключевого слова, в массив. Затем этот массив добавляет в контейнер Яндекс Метрики.

+ быстро

+ фиксация даже тех токенов, про которые забыли

– медиа-контент с токенами, нанесенными на сам объект, не считать

– токены, размещенные не по правилам поиска в коде не будут учтены

Долго и качественно

Необходимо реализовать передачу токена для каждого контейнера, где размещается реклама. Например в атрибут data-erid.

Юзер-кейс: через админку добавляется рекламная публикация, для которой в отдельном поле заполняется полученный токен. Реклама публикуется в контейнер у которого в атрибут data-erid добавляется токен. Например:

<div data-erid="xxxxxx"> <a href="https://site.ru/?erid=xxxxxx"><img src="banner1.png"></a> </div>

Скрипт ниже ищет все элементы с атрибутом data-erid, забирает их значения и передает также в контейнер Яндекс, как и в первом варианте.

<script type="text/javascript"> document.addEventListener("DOMContentLoaded", function() { let adElements = document.querySelectorAll('.ad'); if (adElements.length > 0) { var adArr = []; adElements.forEach(function(adElement) { let erid = adElement.getAttribute('data-erid'); if (erid !== '') { var obj = {}; obj['id'] = erid; obj['name'] = erid; adArr.push(obj); } }); if (adArr.length > 0) { window.dataLayer.push({ "ecommerce": { "promoView": { "promotions": adArr } } }); } } }); </script>

Скрипт ищет на странице все элементы с атрибутом data-erid и сохраняет его значение в массив. Затем этот массив добавляет в контейнер Яндекс Метрики.

+ реализация оптимального по соотношению качество/трудозатраты способа съема статистики

+ фиксация всех публикаций, для которых в админке указали токен

– сложнее изменения на сайте

– если в админке в специальном поле не укажут токен (а в публикации укажут) , то он не будет зафиксирован

Отчет

Спустя пару часов после начала сбора в Яндекс Метрика у вас появится отчет по промокампаниям - Отчеты -> Электронная коммерция -> Промокампании. В нем вы можете за выбранный период просмотреть статистику по всем токенам, которые получили показы.

Отчет по промокампаниям в Яндекс Метрике.
Отчет по промокампаниям в Яндекс Метрике.

Затем данные этого отчета без проблем можно привести к виду, требуемому ОРД, либо подгрузить данные каждого токена вручную.

Также можно на этой основе организовать автоматическую передачу данных через API Яндекс Метрики и API вашего ОРД.

Благодарю за внимание. Надеюсь, статья будет для вас полезна. Телеграм-канал не веду, так что ссылок оставлять не буду 😎.

1
5 комментариев
","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Скрипт ищет на странице все ключевые слова \"ерид\", \"erid\" с разными знаками и сохраняет число-буквенный токен, который идет после ключевого слова, в массив. Затем этот массив добавляет в контейнер Яндекс Метрики.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

+ быстро

+ фиксация даже тех токенов, про которые забыли

– медиа-контент с токенами, нанесенными на сам объект, не считать

– токены, размещенные не по правилам поиска в коде не будут учтены

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Долго и качественно

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Необходимо реализовать передачу токена для каждого контейнера, где размещается реклама. Например в атрибут data-erid.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Юзер-кейс: через админку добавляется рекламная публикация, для которой в отдельном поле заполняется полученный токен. Реклама публикуется в контейнер у которого в атрибут data-erid добавляется токен. Например:

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"
\n \n
","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Скрипт ниже ищет все элементы с атрибутом data-erid, забирает их значения и передает также в контейнер Яндекс, как и в первом варианте.

"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"","lang":""}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Скрипт ищет на странице все элементы с атрибутом data-erid и сохраняет его значение в массив. Затем этот массив добавляет в контейнер Яндекс Метрики.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

+ реализация оптимального по соотношению качество/трудозатраты способа съема статистики

+ фиксация всех публикаций, для которых в админке указали токен

– сложнее изменения на сайте

– если в админке в специальном поле не укажут токен (а в публикации укажут) , то он не будет зафиксирован

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Отчет"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Спустя пару часов после начала сбора в Яндекс Метрика у вас появится отчет по промокампаниям - Отчеты -> Электронная коммерция -> Промокампании. В нем вы можете за выбранный период просмотреть статистику по всем токенам, которые получили показы.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Отчет по промокампаниям в Яндекс Метрике.","image":{"type":"image","data":{"uuid":"ed074cc8-493b-51bb-94e3-0263fb312eb1","width":1402,"height":1023,"size":42874,"type":"png","color":"efedea","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECCf/EACEQAAIBAgYDAAAAAAAAAAAAAAECAwAEERIUITFBI0JR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgAB/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAERAiH/2gAMAwEAAhEDEQA/ANRlmsIUAzxKvAJNZ5ENXY+zwY97irSyKuUQjAqDt8o9KEkUeUeNeB1SF//Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Затем данные этого отчета без проблем можно привести к виду, требуемому ОРД, либо подгрузить данные каждого токена вручную.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Также можно на этой основе организовать автоматическую передачу данных через API Яндекс Метрики и API вашего ОРД.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Благодарю за внимание. Надеюсь, статья будет для вас полезна. Телеграм-канал не веду, так что ссылок оставлять не буду 😎.

"}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":5,"favorites":4,"reposts":0,"views":272,"hits":2323,"reads":null,"online":0},"dateFavorite":0,"hitsCount":2323,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":false,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://vc.ru/marketing/871729-sbor-statistiki-vechnyh-razmeshenii-dlya-ord","author":{"id":6386,"name":"Антон Маханьков","nickname":null,"description":"https://mahankov.ru","uri":"","avatar":{"type":"image","data":{"uuid":"f44336da-25e6-5d29-a842-15986595134a","width":556,"height":564,"size":140056,"type":"png","color":"495b55","hash":"28849ae38796a98f","external_service":[]}},"cover":null,"achievements":[{"title":"Год на vc.ru","code":"registration_1_year","description":"Первый год с vc.ru. Получена 24 июля 2025.","previewUuid":"0d11c244-49de-50e7-894e-b9b27945d42b","formats":{"glb":"https://static.vc.ru/achievements/fish.glb","usdz":"https://static.vc.ru/achievements/fish.usdz"},"viewData":{"contentColor":"#C67AA3","textMaxWidth":0.634765625,"textX":0.5888671875,"textY":0.54296875,"logoX":0.5859375,"logoY":0.6669921875,"logoXNoText":0.6044921875,"logoYNoText":0.5439453125},"id":5414495,"userId":6386,"count":0,"shareImage":"https://api.vc.ru/achievements/share/5414495"},{"title":"3 года на vc.ru","code":"registration_3_years","description":"Провёл 3 года вместе с vc.ru. Получена 24 июля 2025.","previewUuid":"d9d72ac5-bcb5-55e0-8c72-b99251e5cdd9","formats":{"glb":"https://static.vc.ru/achievements/shark.glb","usdz":"https://static.vc.ru/achievements/shark.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.5205078125,"textY":0.341796875,"logoX":0.5205078125,"logoY":0.4609375,"logoXNoText":0.5,"logoYNoText":0.3662109375},"id":1790408,"userId":6386,"count":0,"shareImage":"https://api.vc.ru/achievements/share/1790408"},{"title":"5 лет на vc.ru","code":"registration_5_years","description":"Провёл 5 лет вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"a9140d54-73b8-5f40-afa8-449fbaafd42b","formats":{"glb":"https://static.vc.ru/achievements/whale.glb","usdz":"https://static.vc.ru/achievements/whale.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.533203125,"textY":0.658203125,"logoX":0.533203125,"logoY":0.77734375,"logoXNoText":0.4375,"logoYNoText":0.66015625},"id":563700,"userId":6386,"count":0,"shareImage":"https://api.vc.ru/achievements/share/563700"}],"lastModificationDate":1765167916,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":false,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":199113,"name":"Маркетинг","description":"Рекламные кейсы из России и других стран, советы по продвижению, маркетинг и digital.","uri":"/marketing","avatar":{"type":"image","data":{"uuid":"d66009fe-9bf0-52da-bdbf-4c758eba39e7","width":2400,"height":2400,"size":841299,"type":"jpg","color":"f97373","hash":"0c1cf06cf0d010","external_service":[]}},"cover":{"type":"image","data":{"uuid":"5488a646-f32d-57a6-a31f-d290afc4388a","width":960,"height":280,"size":177,"type":"png","color":"fc7c7c","hash":"","external_service":[]}},"lastModificationDate":1661337194,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"marketing","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":1}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null,"keywords":[],"media":{"type":"image","data":{"uuid":"5ef723b3-7b7f-525e-97e6-208bfc669724","width":1022,"height":660,"size":329018,"type":"png","color":"122958","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAHAAcAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwUG/8QAJRAAAgEDAwMFAQAAAAAAAAAAAQIDBQYRAAQSBwgxExQiQVFx/8QAGAEAAgMAAAAAAAAAAAAAAAAABQYCAwT/xAAsEQABAwICBgsAAAAAAAAAAAABAAIDESEEMQUSEzJRkhUiIzRBU3GRobHR/9oADAMBAAIRAxEAPwBruLrraHa7eW6s4dPavTqVWoo6hFvKYxikkJ+Lc49yWDHKZ5ernDeP05hsAZ2a0YFBahy+KUS9jscXvLJZHB2dRnfjWvBXU73ejciLIbxu5CwDcWt7kVz9EqpB/oJGr+hZ/JbzIeJ3Ad9PKPxayhqt403c7S7lFbgFsUycRVIe5QSs0mXxJkcjgZPnU2dk+jLXdks2mgHQNkO91b+PuheeCFJ5ESFFVXIACgADOmWPcCS5wNq71P2v/9k="}},"customCover":null,"robotsTag":null,"categories":[],"isAnonymized":true}};