Импорт расходов и подсчёт ROI в AlterCPA

Импорт расходов и подсчёт ROI в AlterCPA

Всем чмоки, с вами Резник и сегодня мы будем считать бабло.

Начиная с версии 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 связано несколько интересных лайфхаков.

  1. Вы можете передавать в этих параметрах целые числа, и они будут интерпретированы как UNIX timestamp. Это оптимально при импорте данных из какой-либо умной системы, которую делали программисты с растущими из плеч руками. При этом период отбора будет строго больше from и меньше или равен to.
  2. Вы можете передавать дату и время в понятном живому человеку формате ГГГГ-ММ-ДД ЧЧ:ММ:СС, не прибегая к страшным и непонятным большим цифрам. Такая дата будет распознана AlterCPA в привязке к часовому поясу, установленному в системе.
  3. Вы можете впихнуть в эти параметры любую дичь, которую понимает функция 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 ещё не был даже анонсирован. Присылайте свои варианты интеграции, мы всё сюда добавим!

С вами был Резник, чмоки!