Инструкция по трекингу для рекламодателей

Внутри платформы BDA вы можете отслеживать множество событий, предшествующих или следующих за конверсиями. Для трекинга необходимо вызвать URL с сервера (или с клиента):

https://{TRACKINGDOMAIN}/rtb2/p/a/{CLICKID}?a={ACTION_NAME}

Управление доменами

{CLICKID} это значение гет-параметра, который подставляется при переходе с платформы на ваш оффер. Имя параметра задаётся при настройке поля target url в кампании.

{ACTION_NAME} может содержать любые латинские символы, цифры и знак подчеркивания (_).

Примеры #

JavaScript #

function trackEvent(clickId, actionName) {
    const trackingDomain = "your.trackingdomain.com";
    const url = `https://${trackingDomain}/rtb2/p/a/${clickId}?a=${actionName}`;
    fetch(url).then(response => {
        if (response.ok) {
            console.log("Событие успешно зафиксировано");
        } else {
            console.log("Ошибка фиксации события");
        }
    });
}

Node.js #

const https = require('https');

function trackEvent(clickId, actionName) {
    const trackingDomain = "your.trackingdomain.com";
    const url = `https://${trackingDomain}/rtb2/p/a/${clickId}?a=${actionName}`;

    https.get(url, (res) => {
        let data = '';
        res.on('data', (chunk) => { data += chunk; });
        res.on('end', () => { console.log("Событие успешно зафиксировано"); });
    }).on('error', (e) => {
        console.error("Ошибка фиксации события", e);
    });
}

Python #

import requests

def track_event(click_id, action_name):
    tracking_domain = "your.trackingdomain.com"
    url = f"https://{tracking_domain}/rtb2/p/a/{click_id}?a={action_name}"
    response = requests.get(url)
    if response.status_code == 200:
        print("Событие успешно зафиксировано")
    else:
        print("Ошибка фиксации события")

PHP #

<?php
function trackEvent($clickId, $actionName) {
    $trackingDomain = "your.trackingdomain.com";
    $url = "https://$trackingDomain/rtb2/p/a/$clickId?a=$actionName";
    
    $response = file_get_contents($url);
    if ($response !== FALSE) {
        echo "Событие успешно зафиксировано";
    } else {
        echo "Ошибка фиксации события";
    }
}
?>

Просмотр статистики событий #

Вы можете просматривать статистику событий внутри кампании в всплывающем окне «Детальная статистика по датам», во вкладке «Действия».

Фильтрация источников по частоте событий #

Для фильтрации источников по частоте событий необходимо создать правило в окне кампании в разделе«Оптимизация и правила». Выберите в качестве условия «Action:new_action». После выбора вам будет предложено указать текстовое имя события.

Пример кейса: многошаговая регистрация на лендинг форме #

Для многошаговой регистрации на лендинг странице можно залогировать следующие действия:

  1. visit — страница отдана сервером.
  2. visible — пользователь увидел страницу. (Приложите ссылку на JS код для трекинга видимости и вызова пикселя)
  3. start_reg — пользователь начал регистрацию.
  4. step1 — первый шаг регистрации.
  5. step2 — второй шаг регистрации.
  6. success — регистрация завершена.
  7. error — в случае ошибки.

Используя такой кейс, можно отфильтровать источники трафика, которые не проявляют интерес к продукту, а также контролировать всю воронку продаж.

Код JavaScript для трекинга видимости #

document.addEventListener("DOMContentLoaded", function() {
    const observer = new IntersectionObserver((entries) => {
        entries.forEach(entry => {
            if (entry.isIntersecting) {
                trackEvent("your_click_id", "visible");
                observer.disconnect(); // прекратить наблюдение после трекинга
            }
        });
    });
    observer.observe(document.querySelector("#yourElement"));
});

Учёт конверсий при помощи постбека #

Подробнее об этом вы можете прочитать здесь.

Лучшие практики для подъёма эффективности #

  • Использование трафикбека, если трафик не прошел проверку на лендинге. В таком случае показ не будет засчитан рекламодателю и сможет быть переиспользован.
document.addEventListener("DOMContentLoaded", function() {
    const getClickId = (paramName) => {
        const urlParams = new URLSearchParams(window.location.search);
        return urlParams.get(paramName);
    };

    const clickId = getClickId("click_id_param"); // Укажите имя гет параметра
    const trackingDomain = "your.trackingdomain.com";
    const trafficBackUrl = `https://${trackingDomain}/rtb2/p/e/${clickId}`;
    const activeUrl = `https://${trackingDomain}/rtb2/p/a/${clickId}?a=active`;

    let inactiveTimer = setTimeout(function() {
        fetch(trafficBackUrl, { method: 'HEAD' }).then(response => {
            if (response.ok) {
                console.log("Трафикбек сработал успешно");
                history.back(); // Возврат на предыдущую страницу
            }
        });
    }, 30000); // 30 секунд

    let activeTracked = false;

    function handleActivity() {
        if (!activeTracked) {
            fetch(activeUrl).then(response => {
                if (response.ok) {
                    console.log("Действие active успешно зафиксировано");
                }
            });
            activeTracked = true;
            clearTimeout(inactiveTimer);
        }
    }

    const events = ["mousemove", "keypress", "scroll", "touchstart"];

    events.forEach(event => {
        document.addEventListener(event, handleActivity);
    });
});
  • Использование трекинга наибольшего числа промежуточных действий позволит качественно отследить воронку и на ранних этапах заблокировать источники, трафик которых не заинтересован.
  • В случае CPA кампаний разделение постбеков о конверсиях на кусочки, которые позволят системе быстрее получать данные о финансовой эффективности оффера, позволит рекламодателю получить больше трафика.
  • Использование «пикселя клика», размещаемого на лендинге при совершении клиентом промежуточного целевого действия, позволит системе также эффективнее оптимизировать источники трафика, а вам проводить тесты и оценивать эффективность, смотря на параметр CTR, даже если оффер не рассчитан на клики.
  • Для получения актуальных ссылок вы можете запросить {ROTATORURL}/rtb2/p/l/{CLICKID}, а в ответ получите JSON со списком: {trafficback_pixel, trafficback_url, click_pixel, action_pixel, postback}.
Cost per Action — модель оплаты, при которой оплачиваются только определенные действия пользователей на сайте рекламодателя.
Click-through rate — показатель кликабельности рекламных объявлений.
Текстовый формат обмена данными, который основан на JavaScript.
Стандартный механизм, который позволяет передавать из партнерской сети данные о транзакции стороннему сайту, скрипту или приложению.