TGViewer
Ad Cops - монетизация и реклама Ad Cops - монетизация и реклама @adcops · 752 subscribers
Post #285 694
Больше сниппетов в помощь 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
})));
});
})();


Инструкция по созданию сниппета будет в комментариях. Но если сниппеты - это скучно, а нужен плагин для браузера, накидайте огоньков - попробую сделать.
  • 🔥 24
More from @adcops
  1. Jun 25, 2026Post #324
  2. Jun 25, 2026Поделился своим AdOps "лором" на канале у Ромы Кузьминского
  3. Jun 24, 2026Прерываю радио-молчание ради "Breaking news" Ну что, настал тот момент, которого не все, н…
  4. Jan 12, 2026Праздники позади
  5. Dec 31, 2025Ну что, друзья, хочу поздравить всех с наступающим Новым Годом! 🚗 CPM'ов повыше, клиентов…
  6. Nov 18, 2025В этот раз не совсем про рекламу и монетизацию, но, думаю, будет полезно. Хотел бы немного…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →