Ad Cops - монетизация и реклама
738 subscribers
111 photos
3 videos
3 files
160 links
Работаю AdOps, пишу про новости Adtech, делюсь своими мыслями по монетизации.
Пишу в основном про РСЯ, Adsense/Adx, Header Bidding, RTB и Programmatic.

Ламповый чатик - https://t.me/adCops_chat
______________________________

Контакты - @grandma_killa
Download Telegram
😮 Очередной дайджест новостей монетизации и рекламы

1. Рекламный рынок РФ приблизился к 1 трлн рублей

Российский рекламный рынок в 2024 году вырос примерно до 899 млрд — 1 трлн руб. По различным подсчетам, рост рынка за 2024 год был в диапазоне 19-29%, что меньше рекордного роста 2023 года на 30%. Предположительно, снижение темпов роста продолжится в этом году.

2. Интересное интервью Максима Иксанова, гендиректора News Media Holding (Mash, Life, Super)

Про вызовы в современном медиа - адаптацию к платформам, brandsafety в новостных медиа, печатные издания и нейронки. Сайты потихоньку умирают, как это было с печатными медиа ранее, с чем нельзя не согласиться. 😢

3. Судебные разбирательства WPEngine и WordPress Foundation могут положить конец самой популярной CMS

Соучредитель WordPress, Мэтт Малленвег, заявил, что судебные тяжбы могут длиться годами и закончиться закрытием WordPress. Для тех, кто не в курсе, WPEngine - коммерческая компания, предоставляющая услуги хостинга, оптимизированного для WordPress, зарегистрировала товарный знак "WordPress" в Европейском союзе в 2019 году, что не понравилось WordPress Foundation - некоммерческой организации, созданной для защиты и продвижения бренда WordPress, а также для поддержки сообщества.
Сейчас юристы WPEngine требуют создать Совет по надзору за WordPress для надзора за управлением WordPress Foundation, WordPress.org и другими связанными с ними организациями.

Оффтоп:

В прошлый раз, в оффтопе был запуск Doom в pdf-файле браузера на базе Chromium. В этот раз тоже Дум, но уже в MS Word. "Играй в любимую игру, пока листаешь очередной скучный договор."

Скачать можно на GitHub - только браузеры блокируют скачивание файлов с VBA скриптам - будьте аккуратнее.

AdCops - монетизация и реклама | Ламповый Чат AdCops
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🆒1
💃 Снова понедельник, а значит время для дайджеста

1. Отчет Meta (компания запрещена в РФ) за Q4 2024 - рост выручки и еще больше AI инструментов

Доходы выросли на 21%, количество показов реклама на 6%, рост цен на рекламу составили 14% (в годовом выражении). Более 4 млн. рекламодателей используют AI рекламные инструменты. Показатели эффективности рекламы совершенствуются, за счет системы персонализированного рейтинга рекламы - Andromeda ML.

2. Снова о запрещенной в РФ Meta, которые начали тестировать рекламу в приложении Threads

Threads - это замена Твиттеру, которую выпустил Цукерберг, чтобы принять бежавших с X пользователей, после того, как Маск выкупил его. Рекламу между постов включили на небольшой части аудитории - инвентарь уже доступен для ограниченного пула рекламодателей.

3. Снова про иностранный рынок и соц сети. Pinterest открыл программатик инвентарь для Index Exchange и Criteo

В ads.txt записях сайта нашли новые записи касательно Index Exchange и Criteo, а Pinterest нашли в sellers.json указанных рекламных сетей.

4. Google продолжает бороться с блокировщиками рекламы, подставляя часовые рекламные вставки

Очередная попытка ограничивать доступ к сервису, пользователям AdBlock решений. В этот раз пользователи встречают очень продолжительные и непропускаемые рекламные паузы, размерами до 50 минут. Google ссылается на некорректную работу блокировщиков, но продолжит ограничивать юзеров адблоков, вплоть до ограничения воспроизведения видео-онлайн.

Оффтоп:
Коллаб Пятерочки и Atomic Heart - странное сочетание и не менее странный продукт-плейсмент в самой игре. В среде геймеров коллаб встретили неоднозначно, потому что кринж.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👨‍💻2👍1🦄1
🖥 Коллбеки, пассбеки, заглушки — что, зачем и почему?
Давайте немного вернёмся к техническим возможностям рекламных кодов и поговорим про утилизацию трафика.

Утилизация трафика — это использование инвентаря, который не нашёл прямого применения. Под этим термином понимают процесс рекламной монетизации трафика — стремление достичь 100% fill rate, при этом не теряя в eCPM. Какая-нибудь тизерная рекламная сеть может обеспечить ~100% fill rate, но при этом eCPM может составлять всего 1–2 рубля. Очевидно, такой вариант вряд ли будет интересен владельцу площадки.

Когда появился Header Bidding, он упростил процесс заполнения рекламных блоков: чем больше источников подключено к аукциону, тем выше fill rate и eCPM. Но так было не всегда. Это, кстати, одна из причин появления Header Bidding в виде Prebid.js. Раньше приходилось прибегать к таким методам, как Водопад / Каскад / Waterfall — удивительно, сколько названий существует для одного и того же механизма в AdTech.

Водопад представляет собой несколько рекламных блоков, вызываемых поочерёдно. Если верхний рекламный блок не может выкупить показ рекламы, очередь переходит к следующему и так далее. Этот метод называют также Каскадом, так как каждый рекламный блок ограничен порогом (floor price или CPM Floor). В результате у нас есть несколько рекламных блоков с различными порогами CPM, и если реклама не выкупается на одном уровне, запрос уходит к следующему.

Вопрос: как всё это взаимодействие осуществляется? Для этого используется такой инструмент, как пассбек (passback).

Пассбек (Passback) — это механизм рекламной системы, передающий запрос обратно, если рекламная сеть не подобрала рекламу. В РСЯ это называется "Показ своей рекламы".

В пассбек можно поместить практически что угодно:
- запрос к другой рекламной системе,
- повторный запрос к AdServer,
- запись информации в консоль,
- схлопывание или удаление рекламного блока,
- повторный вызов рекламного блока (что может привести к рекурсии, лол).

Обычно пассбеки настраиваются в личном кабинете рекламной сети: нужно выбрать рекламный блок и указать нужный код для пассбека. Однако, помимо пассбеков, существуют ещё и коллбеки.

Коллбеки (Callbacks) — или, как однажды пошутил менеджер одной рекламной сети, "колбаски" — это механизмы, которые не передают запросы, а сигнализируют о состоянии рекламы. Они могут указывать на загрузку, отрисовку, ошибку, отсутствие рекламы и многое другое.

Используя коллбеки, можно гибко управлять рекламой и настраивать водопад, не прибегая к настройкам внутри кабинетов рекламных систем. Лично мне удобнее работать с коллбеками — они дают больше контроля, а в коде чётко видно участников водопада.

На рынке рунета терминология упрощается, и код, вызываемый по коллбеку отсутствия рекламы, или содержимое пассбека стали называть просто и ёмко — Заглушка.

Заглушка может представлять собой:
- код, выполняющий определённое действие в случае отсутствия рекламы,
- изображение или анимацию, которая отображается на месте рекламного блока до загрузки рекламы.

Терминология в рунете бывает жёсткой, но её понимание помогает находить общий язык в индустрии.


Сегодня, при широком распространении Header Bidding, водопад используется редко — в основном для рекламных сетей, которые не поддерживают HB.

В следующий раз давайте обсудим заглушки в РСЯ с примерами кода.
7🔥5👍1
❗️ Прекращаем поддержку Турбо

В начале апреля мы отключим поддержку технологии Турбо. Семь лет она помогала владельцам сайтов создавать лёгкие версии страниц, которые быстро загружались даже при медленном интернете.

Сейчас мобильные сети стали быстрее, мобильный трафик стал основным источником посетителей, а партнёры научились делать качественные и удобные для пользователей мобильные версии сайтов. В этих условиях технология Турбо теряет популярность и становится менее актуальной.

💡 По результатам экспериментов, отключение Турбо не повлияет на изменение объёма трафика и теперь пользователи будут переходить на ваши мобильные версии сайтов вместо Турбо-страниц. Поэтому нужно уделить внимание мобильным версиям: проверить их адаптивность под все устройства и корректность размещения рекламных блоков. Также рекомендуем проверить оптимизацию сайта с помощью Яндекс Вебмастера.

До закрытия осталось 2 месяца — самое время убедиться, что мобильная версия работает без сбоев.

👆 Подробнее о том, что делать после отключения технологии Турбо, читайте в блоге Вебмастера.

#Сайты
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣6🤝1
Forwarded from PubMag.ru
🔥 Итоги января: что удалось и что ждет впереди

Январь был насыщенным месяцем. Часть задач успешно закрыта, часть перенесена на февраль. Основной фокус — масштабирование и увеличение объемов обработки данных.

Что получилось:
Battleboard — теперь можно отслеживать прогресс адаптеров ежемесячно.
Перформанс и прогресс проекта — прозрачность данных стала выше.
Документация HBTracker — описание работы HBTracker.
Новое оборудование и многопоточность в HBTracker — данные обрабатываются быстрее.
Возвращение к парсингу поисковой выдачи (Яндекс, Google) — база доменов выросла до 207 тысяч.
— 4 новых хедер-биддинг адаптера (Digital Media Group, AdTech, Redllama, Digital Sail). Теперь в базе 55 адаптеров.

Что не получилось и планы на февраль — по ссылке.
🔥3👍1
Сумбурный и неточный обзор рынка монетизации web-трафика Японии 🇯🇵

Я вот сидел и думал, чем бы ещё удивить "паписчеков", кроме унылых дайджестов, новостей и теории. Какой бы "ориджинал контент" сделать для моих красотуль. Ну и родилось это:

Почему Япония?
Всё просто — я ездил туда в отпуск пару месяцев назад и просто искал повод поделиться фоточками, а заодно навалить контента, который был бы вам интересен.

Сразу сделаю сноску: мне не удалось найти нормальный VPN с японским гео или стабильную проксю, чтобы анализ был максимально точным и аутентичным. С другой стороны, у большинства именно японских сайтов (а не японских версий международных) трафик 95%+ генерируется внутри страны. Иногда даже отсутствует англоязычная версия. Поэтому есть сомнения, что они держат разные рекламные карты под разные регионы.

Основные площадки
Yahoo!

Западный старожил, который отлично себя чувствует на японском рынке и занимает две позиции в топ-5 сайтов по SimilarWeb. Как и большинство сайтов из Поднебесной, выглядит так, будто его не обновляли с начала 2010-х.

📌 yahoo.co.jp и news.yahoo.co.jp — около 1 млрд визитов в месяц по данным того же SimilarWeb.

На сайте я нашёл коды Yahoo Ads (*.yimg.jp), что ожидаемо, а также коды Google AdManager. Prebid.js не обнаружен. Рекламы немного — 2–3 рекламных блока, в основном в сайдбаре или после статьи.

Игровые площадки
📌 gamewith.jp и game8.jp — по 120 млн визитов в месяц у каждого.

Японцы очень любят играть. Студенты, школьники, офисный планктон — почти все залипают в телефоны, крутя очередную Гачу (которая не мучи) в попытках выбить любимую аниме-девочку. Люди постарше либо читают ранобэ, либо украдкой, но с интересом, разглядывают бородатых иностранцев (меня).

На этих сайтах я в основном находил коды GAM, брендирование очередной гачи или рекламу своей же лотереи. Также встречаются виджеты с товарами Amazon.

Что такое гача?
📌 Гача / Gachapon / ガチャポン — это японские автоматы с игрушками, куда ты закидываешь монетку, а в ответ получаешь случайную фигурку. Цены от 100 йен за мусор, до пары тысяч за редкие или премиальные экземпляры.


LINE.me
📌 LINE — местный суперапп, который включает:

- мессенджер (основной продукт),
- новости,
- витрину товаров,
- платёжную систему,
- стриминг музыки,
- видеосервис,
-десятки других приложений (от телемедицины до игр).


my-best.com
📌 60 млн визитов в месяц.

Сайт обзоров и рейтингов товаров. Один из немногих, где можно найти Prebid.js с подключёнными Index Exchange, AppNexus, OpenX, Pubmatic, Criteo, RTBHouse и др.

nicovideo.jp
📌 130 млн визитов в месяц.

Японский Rutube. Хостинг видео, стриминговая платформа и площадка для просмотра телеканалов.

Кстати, именно пользователи Nicovideo в 2007 году подарили миру Гачимучи (да-да, тот самый). Абсолютно не удивляет, что мемы из кринжового гей-прона появились именно в Японии — они такие.


Рекламные сети
📌 Google Ads — Google остаётся самым посещаемым сайтом и поисковиком, поэтому AdSense и AdX/GAM используются почти везде.

📌 Yahoo! Ads — второй по посещаемости поисковик и новостной сайт, вот.

📌 Geniee — одна из японских рекламных систем. Есть адаптер под Prebid, но я не смог найти его ни на одном из нескольких десятков сайтов.

Наружная реклама
Она везде и её много. Московскому метро ещё далеко до уровня рекламной загруженности японского, но всё зависит от города.

В Токио и Осаке рекламы полно. В Нагое — уже сильно меньше. Но это зависит от ветки метро и компании, которой она принадлежит.

Кроме классической рекламы японских мегакорпораций, на улицах можно встретить:

- Брендированные грузовики с рекламой пачинко (японские слоты) и лотерей. Легальная гембла.
- Политическую рекламу — по улицам ездят мини-фургоны со своими плакатами и лозунгами. Политик внутри машет ручкой прохожим.
- Много рекламы игр - в основном мобильных.

Фоточки будут в следующем посте. В общем, если вам понравился обзор, дайте знать — может, сделаю ещё что-то подобное. 😎
10👍6🔥1
😢 Понедельник, реклама, новости - Дайджест.

1.
Турбо-страницы Яндекса закрываются

Эта новость, скажу прямо, не стала неожиданностью – решение было вполне ожидаемым. Всё меньше площадок подключали Турбо на мобильный трафик, не говоря уже о десктопных версиях. Сейчас Турбо просто непопулярен и слабо монетизируется – из последних форматов там выходила Лента, в отличие от In-Image. В блоге Яндекс.Вебмастер последнее упоминание Турбо датируется серединой 2021 года.

В старые добрые времена можно было подключить сайт к Дзену, поставить Турбо и грести по 50–70 тысяч визитов ежедневно – только контент успевай пилить. И всё это – на практически свежих доменах. Жаль, что всё это не долго продолжалось.

2. Модерация Яндекса - благодаря ИИ ускорилась блокировка мошеннических объявлений.

Модерация в Яндексе очень серьёзная – поймать скам в сети действительно сложно, в отличие от того же AdSense (не знаю, как сейчас там обстоят дела, может, тоже подкрутили и явного скама стало меньше).

Если сравнить с результатами прошлого года, то видно:
- Количество блокировок сайтов выросло на 14%,
- Блокировки ТГ-площадок увеличились в 10 раз,
- Блокировки приложений снизились на 75%.

Цифры вполне объяснимы: в прошлом году РСЯ для ТГ вышла из закрытой беты, и количество площадок сомнительного качества резко выросло.

3.
VK Реклама выпустили новый формат - рекомендационный виджет

Как собрать больше данных об интересах пользователей и их контентных предпочтениях? Сделать виджет рекомендаций.
Виджет уже доступен паблишерам рекламной сети VK  – пробуйте и тестируйте

Внешне, виджет очень-очень напоминает такой же блок Relap. Дело в том, что продукт перенесли в VK и Relap будет закрыт в скором времени.

4. Sportbox вошёл в топ-10 спортивных сайтов в мире

По данным SimilarWeb - в январе 2025 года, Спортбокс занял 10 место среди спортивных сайтов по всему миру. По РФ сайт занимает почетное первое место. Спортбокс и МатчТВ в сердечке ❤️ - желаю вырваться в топ-1 по миру.

Оффтоп:
Ну и по классике – где ещё смогли запустить DOOM?
На этот раз на Habr рассказали, как с помощью Python удалось запустить "классику" прямо в поисковой строке Google.
Изображение выводится в ASCII-арте, что, конечно, добавляет крутости. Правда, FPS и внешний вид – не самые сильные стороны этого порта.

AdCops - монетизация и реклама | Ламповый Чат AdCops
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
🤯 Твой дайджест новостей рекламы и монетизации по понедельникам

На прошлой неделе в рунете было мало значимых новостей, поэтому сосредоточимся на западном рынке.

1. The Trade Desk не оправдал прогноз по выручке в Q4'24 — акции упали на 31%

Впервые за 8 лет компания не достигла прогнозируемой выручки. Доход за 4-й квартал составил $741 млн против ожидаемых $759 млн, что соответствует 97,5% выполнения плана. Тем не менее, годовой рост показателей за этот же период превысил 22%, а чистая прибыль практически удвоилась — с $97 млн до $182 млн. Однако это не убедило инвесторов, и после публикации отчёта акции упали более чем на 27%.

2. Кто-то падает, а кто-то растёт: акции AppLovin выросли на 28% на фоне новостей о продаже бизнеса приложений

AppLovin распродаёт оставшиеся мобильные игровые студии, чтобы полностью сосредоточиться на рекламной платформе. Ещё в прошлом году компания запустила в бета-версии программу рекламы электронной коммерции, тогда как ранее оставалась исключительно игровой платформой.

Оффтоп:
На этот раз почти без Doom'а. В ГосДУМе предложили запретить рекламу самогонных аппаратов.

Также в начале февраля был внесён законопроект о запрете рекламы безалкогольного пива. Как и обычно, цель подобных инициатив — снижение потребления алкоголя среди населения. Если реклама самогонных аппаратов занимает микросегмент, то реклама пива, пусть даже безалкогольного, имеет гораздо больший объём в рекламном инвентаре.

Пичка взята с канала "отдел мемедиа"

AdCops - монетизация и реклама | Ламповый Чат AdCops
Please open Telegram to view this post
VIEW IN TELEGRAM
👀2🔥1
#AdCops_вакансии

Advertising Operations Manager для популярной онлайн-медиа компании с опытом работы на EU и US рынках.
Удаленная работа, штаб-квартира расположена на Кипре

Задачи:

- Контроль рекламного инвентаря на ПК и мобильных устройствах, прогнозирование и стабильная эффективность на всех платформах;
- Анализ данных и тенденций эффективности рекламы, создание подробных отчетов и улучшение таких показателей, как CTR, eCPM, FillRate и доход;
- Управление рекламными ресурсами в Google Ad Manager (GAM) и максимального увеличения дохода;
- Использование Prebid, Open Bidding и интеграция TAM , для повышения монетизации;
- Привлечение новых поставщиков рекламы, выявляя возможности для роста и развивая отношения с партнерами;

Требования:

- Не менее 2 лет опыта работы в AdTech, с упором на Google Ad Manager (GAM);
- Подтвержденный опыт в области программной рекламы, включая интеграцию Open Bidding (Google AdX) и Header Bidding (Prebid);
- Практический опыт работы с TAM (Transparent Ad Marketplace) и привлечения новых партнеров по рекламе;
- Глубокое понимание отраслевых стандартов, таких как VAST, VPAID , а также знания JavaScript, HTML и инструментами отладки;
- Подтвержденный опыт оптимизации ключевых показателей, таких как CTR, CPM , Fill Rate и общей доходности;
- Знание английского языка на уровне выше среднего.

Ссылка на вакансию: https://gitmax.com/vacancy/advertising-operations-manager
Контакт: @victoria_gitmax
2
🗒 Как сделать заглушку в РСЯ — пассбеки, коллбеки и примеры

В одном из прошлых постов я писал про заглушки, пассбеки и коллбеки. Сегодня разберём особенности создания заглушек в РСЯ.

Поскольку более 95% сайтов в рунете монетизируется через РСЯ, будет актуально рассмотреть в первую очередь именно эту рекламную сеть. Разберём различные способы установки заглушки в РСЯ.

1. Пассбек в партнёрском интерфейсе РСЯ
Самый простой и действенный вариант установки заглушки — задать её в настройках рекламного блока в партнёрском интерфейсе РСЯ:

- Откройте настройки рекламного блока. Если включён режим «Ограничения CPM: Максимальный доход», переключите его на «Порог CPMV».
- Установите нужный порог CPMV.

⚠️ Важно! Чем выше установленный порог относительно среднего CPMV, тем ниже будет Fill Rate, и тем чаще будет показываться заглушка. Это может негативно сказаться на доходе.

Преимущества пассбека в РСЯ
Яндекс фиксирует статистику заглушек: в отчётах рекламного блока доступны метрики «Запросы своей рекламы» и «Видимые показы своей рекламы». Эти данные можно сравнивать и сверять с показателями из личного кабинета другой рекламной сети, если вы используете её как заглушку.


Недостатки пассбека

- Если рекламный блок РСЯ вернёт ошибку, заглушка не сработает — в случае сбоя РСЯ не будет работать и заглушка.
- Можно запутаться, на каких рекламных блоках были установлены какие заглушки.
- Заглушка по пассбеку будет загружаться в iframe, из-за чего скрипты внутри неё не смогут взаимодействовать с кодом вне iframe. Это может снизить эффективность рекламы.
- Если у вас 50+ рекламных блоков, для каждого придётся настраивать отдельную заглушку, что займёт много времени.

2. Коллбеки РСЯ

Коллбеки позволяют более гибко работать с рекламным кодом. Чем больше доступных коллбеков, тем шире возможности для управления рекламой:

onClose — вызов заглушки после закрытия Fullscreen, FloorAd/TopAd.
onError — обработка ошибок рекламного кода.
onRender — добавление дополнительных стилей к блоку при отрисовке рекламы.
Однако коллбека, который срабатывает при отсутствии рекламного выкупа, у РСЯ нет. В AdFox он называется onStub.

📌 Пример JavaScript кода для РСЯ

Ya.Context.AdvManager.render({
blockId: 'R-A-123456-1',
renderTo: 'yandex_rtb_R-A-123456-1',
}, () => {
// код вызова своей рекламы в блоке
});


Добавим кастомную заглушку с баннером «Продам гараж», если РСЯ не выкупит рекламу или выдаст ошибку:

function backupAd() { 
let banner = document.createElement("div");
banner.textContent = "Продам Гараж";

Object.assign(banner.style, {
width: "300px",
height: "250px",
backgroundColor: "#ffcc00",
display: "flex",
justifyContent: "center",
alignItems: "center",
fontSize: "24px",
fontWeight: "bold",
textAlign: "center",
border: "2px solid #000",
});

document.getElementById("yandex_rtb_R-A-123456-1").appendChild(banner);
}

Ya.Context.AdvManager.render(
{
blockId: "R-A-123456-1",
renderTo: "yandex_rtb_R-A-123456-1",
onClose: () => {
// Только для Fullscreen и стикеров
},
onError: (data) => {
console.log("Ошибка:", data.text);
backupAd(); // Показываем заглушку, если произошла ошибка
},
onRender: (data) => {
console.log("Рендер:", data.text);
},
},
() => {
backupAd(); // Показываем заглушку, если реклама не выкупилась
}
);



Используя коллбеки, можно взаимодействовать с рекламой, улучшать пользовательский опыт и повышать доход. На первый взгляд, всё довольно просто, но если у вас нет опыта работы с JS/HTML/CSS, этот вариант может показаться сложным. В таком случае проще работать с пассбеками. Однако, если освоить коллбеки, открываются новые возможности для гибкой работы с рекламными блоками.

📖 Документация по коллбекам РСЯ

AdCops - монетизация и реклама | Ламповый Чат AdCops
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🕊1
Недавно читал пост Вастрика про Vibe-coding, где он писал о написании кода в эпоху генеративных моделей.
Рекомендую его блог — автор интересно пишет о путешествиях, кодинге, своей жизни и увлечениях. Когда открыл для себя этот блог, залип на несколько часов. А пост про путешествие в Японию помог мне в моём собственном путешествии.

Про вайб-кодинг:
"Идея в том, что с появлением LLM-инструментов генерации кода и даже целых проектов, таких как Claude Sonnet или Cursor, у любителей попрограммировать что-нибудь вечером открылся новый способ программирования — с помощью чата с LLM или даже голоса. Вы открываете Cursor или любую другую AI IDE, создаёте чистый проект и начинаете прямо в чате описывать, что вы хотите получить."

Для AdOps-специалиста нейросети, как мне кажется, стали отличными помощниками в решении многих задач — написании кода, решении технических проблем, работе с контентом, генерации идей и гипотез. Я не разработчик, мой уровень JS/HTML/CSS базовый — достаточный для работы AdOps-менеджером, но всегда хотелось попробовать больше. Поэтому я тоже решил немного заняться вайб-кодингом. Пара банок энергетика, VPN для обхода гео-ограничений ChatGPT и немного свободного времени — и в итоге получилась обёртка для Adfox с разными форматами:

Sticky-banner — мобильный/десктопный фиксированный блок с поддержкой следующих параметров:


settings: {
bannerPosition: "bottom" || "top", // положение баннера сверху или снизу экрана
buttonPosition: "right" || "left", // положение кнопки закрытия справа или слева
closeTimeout: 5, // таймаут доступности кнопки закрытия
reload: true, // перезагрузка рекламного блока каждые 30 секунд
visibleReload: true, // перезагрузка блока в зоне видимости
buttonType: "square" || "side" // тип кнопки закрытия: сверху рекламного блока или сбоку
}

Wrapper для статичного рекламного блока:

settings: {
reload: true, // перезагрузка рекламного блока каждые 30 секунд
visibleReload: true, // перезагрузка блока в зоне видимости
lazyLoad: { // параметры lazyLoad Adfox'а
fetchMargin: 10, // расстояние до баннера, с которого начнётся запрос (в процентах высоты экрана)
mobileScaling: 2 // множитель значения fetchMargin для мобильных устройств
}
}


Нейросети довольно быстро справляются с написанием кода, но чувствительны к промтам — напишешь слабый промт, получишь на выходе мусор. Чем дольше общаешься с чат-ботом, тем больше он начинает путаться и терять контекст. В итоге он может вообще переписать весь код, удалив 80% функционала, лишь бы пофиксить один визуальный баг.

К тому же лимиты GPT-4o быстро заканчиваются. Варианты решения:

- Продолжить работу с DeepSeek — он немного хуже справляется с задачами, чем нейросеть от OpenAI.
- Включить Copilot в Visual Studio Code — он тоже использует GPT-4o, но через аккаунт GitHub.

Код (если это вообще можно назвать кодом) пока не оптимизирован: в нём куча повторяющихся строк, и над ним ещё работать и работать.

Что дальше?
В планах доработать этот пет-проект:
Оптимизировать код и перевести его на TypeScript (сейчас пишу на JS).
Добавить новые форматы: полноэкранный Fullscreen и межэкранный Interstitial.
Поддержка Header Bidding: Adfox HB (базово уже есть в wrapper) и Prebid.js.
Трекать видимость рекламы через Intersection Observer API или OpenVV (но сначала нужно разобраться, где хранить и обрабатывать данные).
Сделать проект Open Source.
🔥4🤝1
Больше сниппетов в помощь AdOps-специалисту

Как вы проверяете ставки, которые приходят от монетизаторов в Adfox Header Bidding?

Можно использовать метод, который указан в документации Adfox:
window.Ya.headerBidding.getLastBidsReceived();


Но он покажет только последние ставки, а если вы хотите запросить все ставки можно использовать метод:
window.Ya.headerBidding.getBidsReceived();



Удобнее, но если монетизаторов и рекламных блоков много, то можно голову сломать, пока разберёшь весь этот массив. Поэтому я сделал 2 новых сниппета, для лапочек-коллег

1. Отображаем только активные ставки - где есть цена.
Получаем таблицу всех ставок, монетизаторов, ID кампаний, ID контейнеров, eCPM, размеры и другие. А также краткую статистику ставок.

(function() {
const bids = window.Ya?.headerBidding?.getBidsReceived?.();

if (!Array.isArray(bids)) {
console.warn("Данные о ставках отсутствуют или неверны.");
return;
}

const totalBids = bids.length;
const validBids = bids.filter(bid => bid.cost && !bid.errorCode);
const validBidsCount = validBids.length;
const percentage = ((validBidsCount / totalBids) * 100).toFixed(2);

if (validBidsCount === 0) {
console.info("Нет активных ставок.");
} else {
console.table(validBids.map(bid => ({
'Adapter': bid.adapterName,
'Container ID': bid.containerId,
'Campaign ID': bid.campaignId,
'CPM (RUB)': bid.cost.cpm,
'Size': bid.size ? `${bid.size.width}x${bid.size.height}` : 'N/A',
'Banner URL': bid.banner?.src || 'N/A',
'Request Duration (ms)': bid.requestDuration
})));
}

console.log(`Статистика Header Bidding:`);
console.log(`Ставок всего: ${totalBids}`);
console.log(`Ставок с ценой: ${validBidsCount}`);
console.log(`% ставок с ценой: ${percentage}%`);
})();



2. Но что делать, если нужны пустые или ставки с ошибками? Используем второй сниппет, который отобразит в консоли таблицу со всеми ставками по каждой ошибке - вместе с её кратким описанием.

(function() {
const errorDescriptions = {
0: "Неизвестная ошибка.",
1: "Отсутствие ставки или ответа.",
2: "Некорректный ответ.",
3: "Таймаут.",
4: "Ошибка HTTP-протокола.",
5: "Некорректные пользовательские данные в конфигурационном скрипте.",
6: "Некорректные настройки монетизатора.",
7: "Монетизатор прислал ID контейнера, отличный от ID в запросе.",
8: "Монетизатор прислал корректный ответ без статуса.",
9: "В ответе монетизатора отсутствует codeType или он некорректный."
};

const bids = window.Ya?.headerBidding?.getBidsReceived?.();

if (!Array.isArray(bids)) {
console.warn("Данные о ставках отсутствуют или неверны.");
return;
}

const errorBids = bids.filter(bid => bid.errorCode);

if (errorBids.length === 0) {
console.info("Нет ставок с ошибками.");
return;
}

const groupedErrors = errorBids.reduce((acc, bid) => {
acc[bid.errorCode] = acc[bid.errorCode] || [];
acc[bid.errorCode].push(bid);
return acc;
}, {});

Object.keys(groupedErrors).sort((a, b) => a - b).forEach(errorCode => {
const description = errorDescriptions[errorCode] || "Описание отсутствует.";
console.log(`\nОшибка ${errorCode} (${description}): ${groupedErrors[errorCode].length} ставок`);
console.table(groupedErrors[errorCode].map(bid => ({
'Adapter': bid.adapterName,
'Container ID': bid.containerId,
'Campaign ID': bid.campaignId,
'Error Code': bid.errorCode,
'Request Duration (ms)': bid.requestDuration
})));
});
})();


Инструкция по созданию сниппета будет в комментариях. Но если сниппеты - это скучно, а нужен плагин для браузера, накидайте огоньков - попробую сделать.
10🔥24