Всем чмоки, с вами Резник и сегодня мы будем считать бабло.
Начиная с версии 3.17 в AlterCPA Pro появилась весьма удобная возможность: закидываем сведения о расходах по рекламным кампаниям и получаем глубокую аналитику расходов и ROI в разрезе всех многоуровневых отчётов AlterCPA. Я расскажу вам, как использовать этот инструмент и какие подводные камни встретят вас на пути к тотальному финансовому учёту.
Особенности работы
В новой версии AlterCPA появились полезные колонки статистики, которые позволяют оценить реальную успешность ваших рекламных кампаний. Включаются они в «Расширенных» настройках системы. Вот что мы добавили в блок «Трафик»:
- Клики — это количество платных переходов, посчитанных системой. Не все переходы считаются платными, ведь обновление страницы или заход с прелендинга на лендинг точно не стоит подсчитывать.
- CPC — средняя стоимость одного клика из предыдущей колонки.
- Расход — общая сумма расхода на трафик, произведение первых двух колонок
- Прибыль — разница расхода и суммы доходов за принятые лиды и лиды в холде. Учитывая, что мы считаем холдом лиды с отложенным подтверждением, можно спокойно вносить их в наши доходы.
- ROI — соотношение суммы дохода к сумме расхода, указанное в процентах. ROI меньше 100 — признак полного провала.
Для начала, минутка разочарования. Реализованный в AlterCPA механизм — это именно импорт расходов, а не их выгрузка. Это означает, что вы сами должны постучаться в систему и сказать ей: «Я сделяль!» — указав при этом, сколько было потрачено и по каким критериям. Самостоятельно AlterCPA ниоткуда ничего выгружать не будет, потому что рекламных сетей много, а она одна. Прям как Почта России.
Ещё один важный момент — особенности подсчёта платных кликов из общего числа кликов. Клик считается платным при соблюдении некоторых условий. Во-первых, клик должен быть уникальным. Система не запоминает, пришёл к ней клик извне или был простым обновлением страницы или переходом на одну из внутренних страниц лендинга, так что для простоты отбора считаем только уникальные клики. Во-вторых, клик на лендинг должен быть прямым, а не идти с прелендинга. Все переходы с прелендов, в том числе уникальные, платными не посчитаются. Поэтому рекомендуется отправлять цену не за один клик, а за весь объём кликов — AlterCPA сама размажет ценник по всем кликам, которые ей понравятся.
Техническая сторона процесса
Отправка ценников осуществляется функцией wm/cost
, которая у вас будет выглядеть как-то так:
https://altercpa.site/api/wm/cost.json?id=123-abc
Самые главные параметры, которые функция ожидает — это цена кликов:
cpc
— стоимость за один клик, не рекомендуется использоватьcost
— цена за весь выбранный объём кликов, рекомендуемcurrency
илиcurr
— трёхбуквенный ISO-код валюты, в которой указана цена клика.
Рекомендуется отправлять именно cost
и в идеале дополнять его currency
. Если код валюты не передан, то считается, что клики оцениваются в стандартной валюте системы.
Кроме цены, обязательно нужно передать как минимум один из фильтров, можно все сразу. В наличии вот такие параметры фильтрации для кликов:
flow
— идентификатор потока.utms
— меткаutm_source
utmc
— меткаutm_campaign
utmn
— меткаutm_content
utmt
— меткаutm_term
utmm
— меткаutm_medium
from
— дата и время для начала отбора кликов, не включительно.to
— дата и время для окончания отбора кликов, включительно.
С параметрами from и to связано несколько интересных лайфхаков.
- Вы можете передавать в этих параметрах целые числа, и они будут интерпретированы как UNIX timestamp. Это оптимально при импорте данных из какой-либо умной системы, которую делали программисты с растущими из плеч руками. При этом период отбора будет строго больше
from
и меньше или равенto
. - Вы можете передавать дату и время в понятном живому человеку формате ГГГГ-ММ-ДД ЧЧ:ММ:СС, не прибегая к страшным и непонятным большим цифрам. Такая дата будет распознана AlterCPA в привязке к часовому поясу, установленному в системе.
- Вы можете впихнуть в эти параметры любую дичь, которую понимает функция
strtotime
. Подробнее об этих форматах можно почитать в документации к языку PHP, там достаточно подробно всё расписано. Например, передавая клики за последние сутки, вы можете использовать from со значением «-24 hours», а в to просто передать «now».
Сами параметры могут передаваться в GET или POST части запроса. Очень важно: нельзя передать часть параметров в GET, а часть в POST — система воспримет это как два отдельных запроса и обработает оба отдельно. Если хочется разом отправить данные о куче кликов, можно воткнуть их массивом в один параметр batch
, чтобы получилось что-то типа такого:
{ "batch": [ { "flow": 42, "cost": 1984, "currency": "usd" }, { "from": "2020-04-04 00:00:00", "to": "2020-04-07 23:59:59", "cpc": 1.337, "currency": "eur" } ] }
Теперь, когда мы прониклись технической стороной процесса, давайте на нескольких примерах попытаемся понять, как это будет работать в реальности.
Практические примеры
Для удобства, будем считать, что мы указываем источник трафика в параметре utm_source
, идентификатор рекламной кампании у нас уходит в utm_campaign
, а код конкретного креатива вписывается в utm_content
.
Общий расход по потоку
Предположим, мы используем один поток на одну рекламную кампанию, и рекламная сеть периодически может отправлять нам постбек с общей суммой, потраченной на эту кампанию за всё время.
В этом случае мы просто указываем постбек с идентификатором потока в параметре flow
, а в параметр cost
передаём общую сумму расхода, указанную в соответствующем макросе, например, {spend}
.
Получится постбек вот такого вида:
https://altercpa.site/api/wm/cost.json?id=123-abc&flow=777&cost={spend}
Расход по потоку за фиксированный период
Предположим, что наша рекламная сеть из пункта выше умеет посылать постбек каждый час, указывая сумму расхода именно за этот час. В таком случае, в постбеке появится параметр from
со значением «-1 hour», что соответствует периоду отправки статистики. Параметр to
при этом указывать не обязательно, потому что по умолчанию он соответствует текущему моменту.
https://altercpa.site/api/wm/cost.json?id=123-abc&flow=777&cost={spend}&from=-1hour
Расход по потоку за произвольный период
Предположим, что отправлять постбек раз в час наша рекламная сеть не может, зато умеет отправлять его за произвольный период. И начало этого периода она может указать в макросе {start}
в любом удобном виде. В этом случае в параметр from
мы пробросим уже макрос {start}
:
https://altercpa.site/api/wm/cost.json?id=123-abc&flow=777&cost={spend}&from={start}
Если же рекламная сеть может указывать не только начало периода, но и его окончание в макросе {end}
, мы добавим его в параметр to
.
https://altercpa.site/api/wm/cost.json?id=123-abc&flow=777&cost={spend}&from={start}&to={end}
Расход по рекламной кампании
Предположим, что наша сеть использует глобальный постбек, а мы не привязываемся потоком к определенной рекламной кампании. В этом случае нам нужно фильтровать клики по utm_campaign
, не зря же мы настраивали его в ссылке.
Наверняка мы используем далеко не одну сеть, поэтому для нашей воображаемой сети Pedobear Advert мы заранее указали в потоке параметр utm_source
со значением pedadvert. А это значит, что такой же фильтр мы добавляем и к постбеку в параметре utms
. При этом, идентификатор рекламной кампании отдаётся в макросе {campaign}
и отправляется в параметр utmc
.
В таком случае наш наиболее умный постбек примет вот такой вид:
https://altercpa.site/api/wm/cost.json?id=123-abc&utms=pedadvert&utmc={campaign}&cost={spend}&from={start}&to={end}
Он установит цену клика по всем потокам с выбранной рекламной сети, разбросав все по рекламным кампаниям и привязав к нужному периоду. При этом очень важно, чтобы в проточных URL в обязательном порядке присутствовали UTM-метки.
Интеграция с известными системами
Этот раздел будет пополняться по мере интеграции с существующими источниками поставки трафика, рекламными сетями, трекерами и системами аналитики.
Пока здесь пустынно, потому что официально подсчёт ROI ещё не был даже анонсирован. Присылайте свои варианты интеграции, мы всё сюда добавим!
С вами был Резник, чмоки!