Когда-то давно, когда ROI 300% в гембле были нормой, Лидреактор пахал без перебоев, а Google спокойно пропускал серуху — мы уже разбирали эту тему. С тех пор мир перевернулся с ног на голову, а вот база по технике не сдвинулась ни на йоту. И зря её хоронят: новичков вокруг тьма, а старички половину подзабыли. Так что вернёмся к основам, которые превращают чёрный ящик трекера в понятный инструмент. Начнём с базовых сущностей.
Поток и Путь
Поток. У конкурентов это обычно зовётся «Кампанией». Самая глобальная сущность трекера: создавая поток, вы получаете ссылку, которую вставляете в рекламную кампанию — кабинет ФБ, Google, пуш-сетки, да куда угодно, откуда ждёте трафик. А дальше поток можно дробить на пути.
Путь. Сущность помельче — этакий миньон при бигбоссе-Потоке. Клик из источника падает в поток, и там алгоритмы трекера решают, на какой путь его отправить.
К примеру, бот-трафик, отфильтрованный клоакой, сливается на отдельный путь «Трафбэк» из раздела «Фильтрация трафика». А целевой трафик можно разными путями раскидывать на разные лендинги, продукты — вообще на любую ссылку. Кстати, число путей в потоке ничем не ограничено, так что простор для фантазии есть.
В любом случае и Бигбосс, и его Миньон приведут юзера к его казику или писькокрему каким-то конкретным методом. А вот каким именно, какие вообще бывают и какой когда выбирать — разберём ниже.
Базовые методы: 301, 302, мета-редирект и JS
Начнём с самого базового — можно сказать, классического.
Перенаправить по ссылке (302). Амбассадор принципа «тяп-ляп и готово». Отдаёт ссылку для перехода без всякого кэширования. Годится только там, где модерации либо нет, либо она есть для галочки: пуши, попасы, тизеры и прочая мелочь. Залить так FB с клоакой можно, а вот Google не возьмётся даже с кло.
Перенаправить по ссылке и склеить (301). Вариант чуть хитрее: после первого перехода ссылка приклеивается к юзеру через кэширование. Пусть у вас хоть десять лендов в сплите — если человек кликнет по рекламе второй раз, он попадёт туда же, где был в первый. Даже если этот путь вы через трекер уже убрали, для него он продолжит работать. По проходимости модерации всё то же, что у 302. Полезно при сплитах или когда хочется мимикрировать под белый сайт в глазах Google, склеив ссылку с доменом вайта. Последнее, впрочем, миф, в который многие свято верят.
Один нюанс на оба редиректа: не стоит мешать 301 и 302 с другими методами показа на одном сайте — некоторые сети расценивают такую чехарду как взлом сайта и щедро выдают за это баны.
Перенаправить через отдельную страницу (мета-редирект). А вот это уже вменяемо работающий редирект под разные задачки. Facebook нередко пропускает РК с такой ссылкой вообще без клоаки. Метод приводит и юзеров, и модеров на неприметную промежуточную страницу с ответом «200» — для системы это значит «контент есть», и смотрится прилично. А через пару секунд человек улетает дальше по нужной ссылке, которую подсовывает скрипт внутри этой самой страницы. Прямых заголовков 301/302 тут нет, поэтому метод заодно помогает не словить от Google ярлык «Вредоносное ПО».
Перенаправить через JS. То же перенаправление, только моментальное и средствами JavaScript, без всяких заголовков. Помогает против бана за «Взломанный сайт», но есть засада: особо ретивые блокировщики рекламы могут его прибить, и тогда юзер никуда не поедет.
iFrame — спорный метод для стойких
Следующий метод достоин отдельного, обстоятельного разговора — это iFrame.
Штука крайне противоречивая. Я уж думал, она практически вымерла, пока к нам не переехали ребята из HideClick — среди них обнаружилась целая секта адептов этого самого айфрейма.
Работает он по принципу, схожему с webview: есть сайт-оболочка, а внутри неё разворачивается фрейм, видимый людям — и вот в нём-то и творится вся арбитражная вакханалия.
Главный плюс — никого никуда не надо перенаправлять. Да и для модерации всё чисто: сайт-оболочка отдаёт белый контент, а что там, в айфрейме — уже не так важно.
Второй жирный плюс — во фрейм можно затащить сайт, который вам вообще не принадлежит: то же казино или маркетплейс. На всякий случай напомню, что реклама казино разрешена далеко не во всех странах, сверяйтесь с юрисдикцией, а маркетплейсы вообще меня пугают своей способностью поглощать все деньги сразу!
Но есть и ложка дёгтя, и не одна. С большинством сайтов айфрейм работает неебически криво. Так что либо готовьте под него свой сайт, либо проверяйте, отвечает ли партнёрский сайт всем требованиям сразу:
- Все внутренние ссылки открываются в новом окне. Если ссылка на странице партнёра ведёт на другую страницу в том же фрейме — а тем более если на ней стоит
target="_top"— юзера может выкинуть прямо из вашей обёртки на голый сайт-донор, и вся маскировка теряет смысл. - Прописаны нужные заголовки, нет запрета на открытие в iframe:
X-Frame-Options,CSP frame-ancestors. Этими заголовками сайт сам запрещает показывать себя внутри чужого фрейма. Если донор их отдаёт, браузер откажется рисовать страницу внутри вашего iFrame — юзер увидит пустоту вместо контента. - Нет JS-кода, который «выламывает» страницу из iFrame. Такой скрипт (frame-busting) при обнаружении, что сайт открыт не как самостоятельная страница, принудительно перекидывает на себя весь браузер целиком — от вашей обёртки не остаётся и следа.
- Вёрстка не завязана на
window.top,parent, внешнее окружение. Браузер из соображений безопасности блокирует обращение к родительскому окну с чужого домена. Если скрипты сайта на это рассчитывают, они падают с ошибкой, и часть функциональности отваливается без предупреждения. - Все ресурсы грузятся без ошибок: CSS, JS, шрифты, картинки. Внутри фрейма на чужом домене часть запросов может резаться политиками безопасности иначе, чем при прямом заходе на сайт — итог: недогруженная и кривая страница вместо аккуратного сайта.
- Формы, попапы, fixed/sticky-элементы нормально работают внутри iFrame. Фиксированные и «прилипающие» блоки привязаны к границам самого фрейма, а не всей страницы браузера: шапка на весь экран может превратиться в шапку на кусок экрана, а модальное окно — обрезаться по краю iFrame.
- Нет критичной зависимости от third-party cookies или сессий. Для браузера ваш фрейм — чужой домен, а его куки — те самые сторонние, которые всё больше браузеров блокируют по умолчанию. Если донор держит на куках авторизацию или корзину, внутри iFrame это может просто не сохраниться.
- Авторизация, если она есть, проверена именно в iFrame, а не только при прямом заходе на сайт. Из-за той же истории с куками вход, который прекрасно работает напрямую, внутри фрейма может не срабатывать.
- Ссылки и редиректы не ломают сценарий внутри iFrame. Цепочка переходов по сайту донора должна доходить до конца, оставаясь в рамках фрейма, а не улетать на верхний уровень окна посреди пути.
- Если у iFrame выставлен
sandbox— сайт не упирается в его ограничения. Атрибутsandboxпо умолчанию режет часть возможностей страницы: скрипты, формы, попапы, доступ к собственному домену. Не разрешили нужное явно — соответствующая функция на сайте просто не сработает. - Нет двойных скроллов и артефактов по высоте/ширине. Если размеры iFrame не совпадают с реальным контентом внутри, получаем скролл в скролле и обрезанные по краям блоки — выглядит криво и подрывает доверие к обёртке.
- Отдельно проверено в Safari и на iPhone. У Safari более жёсткая политика по сторонним кукам и своя логика автоподгона высоты фрейма — сайт, который нормально ведёт себя в десктопном Chrome, на айфоне может посыпаться.
- Взаимодействие с родительской страницей — только через
postMessage, включая ресайз, редиректы и передачу событий. У скриптов из разных доменов нет прямого доступа друг к другу, иpostMessage— единственный легальный канал, чтобы фрейм мог попросить обёртку перекинуть юзера дальше или сообщить о конверсии. - Проверено открытие системных вещей — камера, файлы, гео, платежи, — если они используются на сайте. Доступ к таким API браузер может резать или требовать отдельного разрешения именно для содержимого iFrame, так что фича, которая работает при прямом заходе, внутри фрейма способна просто не запроситься.
- Консоль браузера чистая: нет CSP/CORS/cookie-ошибок. Финальная проверка боем: если что-то из списка выше всё же не долепили, ошибки в консоли вылезут, даже когда страница внешне выглядит нормально.
Так может, ну его нахуй, этот iFrame? Если вы не старовер, закалённый арбитражными боями — так и поступите. Альтернатив хватает!
Кража чужого контента: без обработки и через curl
Дальше — семейство методов, которые помогают аккуратно «своровать» чужой контент. Разумеется, речь о том, чтобы не устанавливать лендинг на своей стороне, а показывать готовый ленд из партнёрской сети напрямую.
Показать контент без обработки. Вариант для случая, когда поставить нужный сайт к себе на сервер возможности нет. Блек подтягивает контент прямо с целевого сайта и показывает его юзеру, которого пропустила клоака.
И вот отсутствие обработки — главный подвох. Локальные пути в формах или картинках? Вместо сайта потенциальный клиент увидит пустую кривую залупу. Поэтому метод годится либо для простейших блеков с абсолютными путями, либо для показа вайтов. Страницы со всякими прибамбасами — капчами, уведомлениями, формами регистрации, скриптами и прочей нечистью — он не потянет от слова совсем.
Показать контент по ссылке (curl). Суть та же, что у младшего брата выше, но этот вооружён до зубов — той самой обработкой. Трекер тянет чужую страницу и на лету вставляет в неё тег <base>, из-за чего все относительные пути становятся полными и большинство проблем рассасывается само.
Приятная сторона обоих методов: макросы трекера подставляются не только в ссылку, но и прямо в тело чужого сайта, — то есть в ворованную страницу можно бесшовно вшить данные клика. Учтите один нюанс: любой клик по внутренней ссылке уводит пользователя на сайт-оригинал.
Для простых страниц, которые нельзя воткнуть к себе, — это лучший метод, какой есть. Некоторые ноют, что из-за тега <base> усложняется модерация. Но это бредни бедных и косолапых, которые не умеют клоачить и заниматься по-настоящему важными вещами — теми же креативами.
Свой хостинг, свои файлы: локальный файл и Хранилище
Продолжаем нашу феерию — на очереди братья-близнецы, которым нужно, чтобы и блек, и вайт принадлежали вам.
Открыть локальный файл. Файлы блека и вайта лежат на общем хостинге рядом с обрабатывающим файлом трекера. Каждый клик первым делом проходит через трекер, и он решает, что подтянуть: white.html или black.html. Прелесть проста: мы вообще обходимся без редиректа как явления — просто показываем разные версии сайта живым людям и ботам с модерами. Одна оговорка: встроенная TDS такой метод не одобряет из соображений безопасности, нужен либо скачанный файл трекера, либо своё хранилище. О нём и речь.
Показать сайт из хранилища. Принцип абсолютно тот же, но для трекера это идеал: он с этим хранилищем связан напрямую, там же лежат все файлы.
У нас это добро зовётся красивым словом ХРАНИЛИЩЕ (крупнее написать не получилось, но представьте тут надпись прямо в небе). Внутри AlterCPA Red и One в блоке «Сайты» есть и инструкция, и весь инструмент для привязки хостинга — в итоге вы получаете то самое ХРАНИЛИЩЕ, куда и скидываете сайты. А внутри AlterCPA Lite оно встроено и активно по умолчанию. ХРАНИЛИЩЕ, ммм, как звучит!
Под капотом чаще всего это отдельный, изолированный сервер: сайты лежат на нём, а не в базе трекера, и каждый получает короткий зашифрованный адрес, по которому не угадать ни его номер, ни сколько сайтов у вас вообще есть. Такое физическое отделение рекламы от потрохов трекера заодно бережёт от банов «за компанию» с шумными соседями на облачных версиях. Один сайт можно повесить на сколько угодно потоков и путей, а статистика (CR, EPC, аппрув) считается по каждому сайту отдельно. Заливаете либо готовым ZIP-архивом, либо просто даёте ссылку — и трекер сам зеркалит чужой сайт целиком (привет предыдущему разделу про «воровство»). А дальше правите всё прямо на месте: встроенный файловый менеджер и редактор кода дают переписать поле формы, поправить скрипт или подменить картинку без всякого FTP.
При настройке потоков и путей останется выбрать под нужную роль нужный сайт — и каждый займётся своим делом: вы льёте трафик, клоака фильтрует, трекер считает, боты идут нахуй, профит идёт в карман.
Лёгкий флирт с модератором: страница с ошибкой и пустая страница
А теперь — совсем простые методы, чтобы бросить модератору пыль в глаза и при этом не особо напрягаться.
Показать страницу с ошибкой. Ошибка — прекрасный вайт для сорсов, где модерация не сильно обременена мозгами. И да, ФБ относится именно к таким незатейливым источникам. Сама по себе ошибка никаких правил не нарушает. Если вы всерьёз верите, что тот же Facebook как-то там оптимизируется под ключи с целевого сайта — вам срочно нужен сеанс экзорцизма. Всё, что делают модеры — проверяют страницу на стоп-слова. На странице ошибки их нет — вот и ладушки, добро пожаловать в аппрув. По умолчанию это стандартная страница в духе nginx, но код можно задать и вручную — чаще всего ставят честный 404.
Показать пустую страницу. Идёт в ход для трафикбэка или для таких же непритязательных вайтов, как страница с ошибкой. Пустая страница отдаёт стандартный ответ 200, как и мета-редирект: для системы контент вроде есть, а стоп-слов нет. Ни строчки HTML — и придраться не к чему.
Типовой пример сетапа: на вайт ведём через пустую страницу, на блек — через показ контента по ссылке. Ну а если в системе не один сайт, а целая связка из преленда и ленда — для этого есть отдельная рабочая схема.
Связка преленд + ленд на практике
Итак, в связке два сайта. Схема простая: сначала греем посетителя на преленде, а потом жарим его на лендосе.
Оба сайта, само собой, должны быть подключены к трекеру — иначе не собрать полную статистику с CR по каждой странице. Причём переход с преленда на ленд трекер считает как отдельный «второй шаг»: в статистике видно и число таких переходов, и конверсию связки преленд→ленд, а не только финальный результат.
Для преленда берите любой полюбившийся метод, но мои личные фавориты — curl и «показать сайт из хранилища». Выбор зависит от того, есть ли у вас файлы сайта, чтобы залить их в то самое хранилище. Вариант с хранилищем всегда стабильнее, быстрее и надёжнее.
А дальше — либо так же шустро достаём ленд из ХРАНИЛИЩА, либо сшиваем преленд с лендом через 301 или 302 редирект. Сложного ничего, главное — правильно тыкать лапками.
Итого
Методов работы великое множество. Они могут быть сложнее или проще в реализации, но однозначно не делятся на хорошие и плохие. Каждому методу — своё время, место и рабочий подход. Что использовать, решаете только вы, исходя из конкретных задач и личных предпочтений.
