Найти в Дзене
Записки High-Risk CMO

Заливаем с Coinzilla Native через Keitaro

https://<KEITARO_DOMAIN>/<KEITARO_CAMPAIGN_ALIAS>
?external_id={uhash}
&source=coinzilla
&campaign_id={campaign}
&cz_zone={zone}
&cz_domain={domain}
&cz_geo={country}
&cz_os={os}
&cz_browser={browser}
&cz_size={size}
&utm_source=coinzilla
&utm_medium=cpm
&utm_campaign=native-{campaign}
&utm_content=n-{size} Почему так: Coinzilla официально отдаёт {uhash}, {campaign}, {zone}, {country}, {os}, {browser}, {domain}, {size}; uhash — длинная строка (2000+ симв.), это их ключ для S2S. Ты сознательно кладёшь его в external_id — ок, но помни про длину, проверь на тесте, что Keitaro/БД не режет.
В Keitaro external_id — это «уникальный click ID из источника» (ровно то, что нам нужно), но из-за конского размера uhash - лучше пихать в переменную sub_id_1 https://request-global.czilladx.com/serve/s2s.php
?c={campaign_id}
&z={cz_zone}
&uhash={external_id}
&e=register Параметры (c,z,uhash,e) и сам эндпоинт именно такие по офдокам Coinzilla Performance (S2S). Если будешь передавать «сырые» значения ч
Оглавление

Каноническая связка Coinzilla Native ↔ Keitaro

1) Click-URL

https://<KEITARO_DOMAIN>/<KEITARO_CAMPAIGN_ALIAS>
?external_id={uhash}
&source=coinzilla
&campaign_id={campaign}
&cz_zone={zone}
&cz_domain={domain}
&cz_geo={country}
&cz_os={os}
&cz_browser={browser}
&cz_size={size}
&utm_source=coinzilla
&utm_medium=cpm
&utm_campaign=native-{campaign}
&utm_content=n-{size}

Почему так: Coinzilla официально отдаёт {uhash}, {campaign}, {zone}, {country}, {os}, {browser}, {domain}, {size}; uhash — длинная строка (2000+ симв.), это их ключ для S2S. Ты сознательно кладёшь его в external_id — ок, но помни про длину, проверь на тесте, что Keitaro/БД не режет.

В Keitaro external_id — это «уникальный click ID из источника» (ровно то, что нам нужно), но из-за конского размера uhash - лучше пихать в переменную sub_id_1

2) Postback (Keitaro → Coinzilla, GET)

https://request-global.czilladx.com/serve/s2s.php
?c={campaign_id}
&z={cz_zone}
&uhash={external_id}
&e=register

Параметры (c,z,uhash,e) и сам эндпоинт именно такие по офдокам Coinzilla Performance (S2S). Если будешь передавать «сырые» значения через плейсхолдеры Keitaro — используй raw-форму {_...}; для external_id обычно не требуется, но знай правило.

3) Альтернатива через JS Performance (если фронтом удобнее)

Подключение их скрипта и пуш события register на странице конверсии. У Coinzilla это отдельный «2-й метод» в офдоках. Не мешай методы: либо S2S, либо JS.

Запуск Native Web / Native App в Coinzilla (пошагово)

  1. Трекинг до запуска.

    — Вставь Click-URL (выше) в кампанию Coinzilla. Соверши тест-клик из превью: в визите Keitaro
    должен появиться external_id = uhash + атрибуты (cz_*). Без этого ты слеп.
  2. Создание кампании.

    — Тип:
    Native Web Ads или Native App Ads (логика одна).

    — GEO/девайсы — раздельно (Web/Mobile; при разрыве CR разведёшь Android/iOS).

    — Ставка CPM: входи конкурентно, иначе не увидишь верхние зоны и не соберёшь WL (это закон аукциона, а не «желание менеджера»).

    — Набор креативов: несколько сообщений × нужные размеры/соотношения; «вписанность» под контент важнее агрессивных эффектов.
  3. Зональный контроль (ядро оптимизации).

    — Используй
    Website Zone Targeting: либо Allow-лист (белый), либо Exclude-лист (чёрный). В одной кампании обе логики не смешиваются — это официально прописано. Управляй листами дисциплинированно.
  4. Порог статистики и правила решений.

    — Решения только после
    ≥150 кликов на зону либо расхода ≥ 1× целевого CPA (что наступит раньше).

    BL немедленно: зона с расходом ≥ 2× CPA и 0 конверсий.

    WL-кандидат: зона c ≥2 конверсиями и eCPA ≤ 0.8× CPA.

    — Держи RON-кампанию для разведки и отдельную Whitelist-кампанию («добыча») под лучшие зоны с CPM
    +10–20% для приоритета.
  5. Постбэк проверкой, не молитвой.

    — Отправь тест-конверсию: Coinzilla должна принять c (campaign), z (zone), uhash (ровно тот, что был в клике), e=register. Если событие не отрисовалось — у тебя нестыковка id/параметров. Исправляй, пока не ок.
  6. Ритм управления.

    — Первую неделю — пересмотр каждые 48–72 часа: чистка BL в RON, пополнение WL и ротация креативов (режь нижние 30% по вовлечению/CR; в топ-сообщениях меняй по одной переменной за итерацию).

    — Далее — еженедельно: удержание eCPA и объёма.
  7. Гигиена качества.

    — Следи за «поведенческими» событиями на ленде (time on page, scroll≥50%, CTA). Зоны с мед.
    <3–5 сек и нулевым конвертом — в BL, даже если CTR «красивый».

    — Если сессия «холодная» на всём трафике — проверь свой TTFB/редиректы/вес. Часто (99,9% случаев) проблема у тебя (например, трекер слишком далеко от пользователя, большие ping и jitter), не у сети.

Где ты рискуешь соврать сам себе — и как это прибить

  • «Сначала подам минимальный CPM, потом докручу». Нет. На дне аукциона ты не увидишь сильные зоны — WL не соберёшь, будешь «оптимизировать пустоту».
  • «Сделаю одну кампанию — и норм». Нет. Разведка и добыча должны жить отдельно, иначе замазываешь eCPA и теряешь приоритет на лучших зонах.
  • «uhash положу куда угодно — он же просто ID». Нет. По офдокам именно uhash связывает клик и конверсию в их S2S. Он длинный — убедись на тесте, что Keitaro не режет; иначе — потеря атрибуции.

Мини-чек перед стартом (закрой до спенда)

  • Тест-клик: в Keitaro есть external_id = {uhash} и все cz_*.
  • Тест-конверсия: запрос на …/serve/s2s.php?c=…&z=…&uhash=…&e=… принят, событие отображается.
  • Понимаешь и применяешь Allow/Exclude Website Zones (только один режим в кампании).

Вообще, в случае с Coinzilla Native «выстрелить себе в ногу» - вариантов полно, вот все реальные мины по Coinzilla Native + Keitaro, с обходами. Пройдись по списку сейчас, иначе будешь платить дань Хаосу (реально в прямом смысле, сотнями, а то и тысячами долларов в сутки):

Трекинг и атрибуция — самые частые самострелы

  • Длина uhash рвёт external_id. У Coinzilla он чудовищно длинный. Если твой билд/БД/вафля режет строку — постбэк не сматчится.

    Что делать: сделать тест-клик и открыть визит в Keitaro. Если external_id усечён — немедленно
    перенеси uhash в sub_id_1, а постбэк переключи на {_sub_id_1}. Никаких «потом».
  • Двойное кодирование uhash. Если сеть уже URL-кодирует, а ты ещё раз кодируешь через прокладку — в S2S прилетит мусор.

    Что делать: сравни байтово uhash в клике и в постбэке (одинаковые?); выключи лишнее кодирование в своём редиректе/воркере.
  • Смешиваешь S2S и JS Performance. Получаешь дубли конверсий, искаженную экономику (задвоение).

    Что делать: выбери один метод. Если нужен быстрый импакт — S2S. JS оставь только если не можешь вернуть S2S.
  • Неправильные имена параметров в S2S. У Coinzilla строго: c, z, uhash, e. Любая «красивость» — мимо кассы.

    Что делать: проверь лог сервера Coinzilla/ответ кода. Не пришло — значит, не то отправляешь.
  • Событие e с пробелами/длинным названием. Тихо отваливается.

    Что делать: короткие снейки: register, ftd, purchase, lead.
  • Внутренние фильтры Keitaro душат клики. Антибот/фильтрация по ASN/проксикам может срезать валидный трафик — uhash не записывается.

    Что делать: на время запуска ослабь фильтры и сравни разницу по записанным кликам.
  • CSP/Firewall рубит JS Performance и/или S2S. connect-src/script-src не включает домены Coinzilla → конверсия «не доходит».

    Что делать: whitelisting coinzillatag.com, request-global.czilladx.com. Проверь в DevTools → Network.
  • Редирект-цепочки > 2 хопов. Параметры теряются, uhash исчезает.

    Что делать: держи путь к ленду в 1–2 хопа, запрети промежуточным сервисам коверкать query-строку.
  • Разные таймзоны/валюты → «поплыл» ROI. Сравниваешь EUR в Coinzilla и USD в Keitaro, да ещё в UTC+0 vs локальное время сервера.

    Что делать: нормализуй валюту и TZ на уровне отчётов, иначе делаешь выводы по фантомам.

Конфиг кампаний — тихие убийцы бюджета

  • CPM «на минималках». На дне аукциона не увидишь топ-зоны — не соберёшь WL. Псевдоэкономия = отсутствие сигнала.

    Действие: стартуй немного выше медианы GEO, WL соберёшь — потом режь.
  • Мешаешь Allow и Exclude. В одной кампании Coinzilla это взаимоисключающие режимы.

    Действие: выбери стратегию, веди листы дисциплинированно. Для WL — отдельная кампания.
  • Одна кампания «на всё». Разведка и добыча смешиваются → eCPA разъезжается.

    Действие: минимум две: RON-поиск и WL-добыча с CPM +10–20%.
  • Не делишь Web/Mobile и Android/iOS. Поведение разное, eCPA «средний по больнице».

    Действие: разнеси, особенно если CR по Android в 2× выше.
  • Неподтверждённые размеры/форматы. Неправильный креатив → низкий fill и фальшивые выводы про «качество сети».

    Действие: загрузи рекомендованный пул размеров и не лезь в экзотику, пока нет сигнала.

Креатив и ленд — почему «CTR есть, продаж нет»

  • Тяжёлые макеты. Тормоза → бэк-кнопка → «Bots?».

    Действие: срезай вес, убирай лишние шрифты/скрипты, гони TTFB.
  • Непопадание в контекст площадки. Native без «вписанности» — просто баннер в шкуре нативки.

    Действие: адаптируй заголовки под рубрики/тональность сайтов, тестируй вариации одного элемента за цикл (а не всё сразу).
  • Нет событий качества на лендинге. Ты не отличишь бот-клик от живого.

    Действие: включи time-on-page, scroll≥50%, CTA-click в Keitaro/GA и режь зоны с медианой < 3–5 сек.

Операционка — из-за чего горят недели

  • Нет тест-клика/тест-конверсии до спенда. Потом ищешь черта в полдень.

    Действие: сначала «клик → запись uhash», затем «конверсия → приём S2S». Только потом бюджет.
  • Нет бэкапов и версий URL. Менеджер что-то «поправил» — сигнал пропал.

    Действие: все целевые ссылки и постбэки — в git/вики с контрольной суммой, любая правка через тикет.
  • Считаешь успех по CTR. Это не перформанс, это косметика.

    Действие: живи по eCPA/ROI и правилам отсечения. CTR — вспомогательный.

Жёсткий чек-лист «перед спендом»

  1. Превью-клик из Coinzilla → в визите Keitaro полный external_id=uhash и все cz_*.
  2. S2S на serve/s2s.php принимает c, z, uhash, e и отдаёт 200/OK либо «success».
  3. Один метод трекинга выбран (S2S или JS), дубликатов не будет.
  4. Кампании разведены: RON-поиск и WL-добыча.
  5. Пороги на зону зафиксированы: решение только после ≥150 кликов или ≥1×CPA; BL = ≥2×CPA без конверсий; WL = ≥2 конверсии и ≤0.8×CPA.
  6. Валюта/таймзона синхронизированы между отчётами.
  7. Креативный пул готов и лёгкий; ленд даёт события качества.

Приоритетные фиксы, если хочешь «без сюрпризов»

  1. Проверь, что uhash НЕ усечён в Keitaro; иначе миграция на sub_id_1 и правка постбэка.
  2. Прогон «клик → конверсия» прямо сейчас: сравни строку uhash байт-в-байт между кликом и постбэком.
  3. Разнеси кампании на RON и WL — хотя бы на одно GEO.
  4. Включи событийную аналитику на ленде и назначь пороги отсечения по качеству сессий.
  5. Зафиксируй в таск-трекере: кто и когда имеет право менять таргеты/URL/постбэк. Без самодеятельности.

Хочешь работать как взрослый — действуй по чек-листам и убери романтику из процесса. И да, если где-то выше ты «и так знал», но не сделал — это не знание, это оправдание.