Материал из канала ВЛАДИМИР АРБИТРАЖ
Сегодня расскажу про свои наблюдения по установке события оптимизации на разные этапы воронки. Как бы это странно не казалось (играться с такими действиями на арбитражном подходе) - в голову пришла такая мысль и ее было необходимо протестить.
Погнали!
Немного теории
Все мы прекрасно понимаем, что фб требует от нашего адсета - получить 50 событий в неделю для дальнейшей оптимизации. И вроде бы все круто и здорово, но пытливый ум всегда хочет найти окольные пути, для того, чтобы ускорить процесс оптимизации. И как вы уже поняли в голове крутилась мысль - установить событие ЛИД куда-то на главную страницу лендинга.
Гипотеза была такова: если, например, событие ЛИД будет срабатывать где-то "повыше" и чаще, то это, несомненно, положительно скажется на скорости обучения адсета.
Какие были варианты
Первым делом я решил углубиться в справку разработчиков: https://developers.facebook.com/docs/meta-pixel/get-started.
Для того, чтобы посмотреть под какие действия или триггеры можно было бы интегрировать событие оптимизации. И как оказалось, разгуляться там можно было на славу. С чего начались тесты?
1) Установка события Лид на скролл до конца страницы, на все кнопки-якоря и, собственно, на саму кнопки отправки формы.
Для того чтобы такое реализовать, обязательным образом нужно в <head></head> index.php установить полный пиксель:
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '{your-pixel-id-goes-here}');
fbq('track', 'PageView');
</script>
<noscript>
<img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id={your-pixel-id-goes-here}&ev=PageView&noscript=1"/>
</noscript>
<!-- End Facebook Pixel Code -->
После данной манипуляции можно вызывать другие события функцией fbq('track'..
Я установил с помощью этой функции событие ЛИД на скролл до конца моего лендинга. Или другими словами: событие ЛИД срабатывает только тогда, когда юзер долистает страницу до самого низу (либо ближе к форме).
https://developers.facebook.com/docs/meta-pixel/advanced
var executeWhenReachedPagePercentage = function(percentage, callback) {
if (typeof percentage !== 'number') {
console.error(
'First parameter must be a number, got',
typeof percentage,
'instead',
);
}
if (typeof callback !== 'function') {
console.error(
'Second parameter must be a function, got',
typeof callback,
'instead',
);
}
function getDocumentLength() {
var D = document;
return Math.max(
D.body.scrollHeight, D.documentElement.scrollHeight,
D.body.offsetHeight, D.documentElement.offsetHeight,
D.body.clientHeight, D.documentElement.clientHeight
)
}
function getWindowLength() {
return window.innerHeight ||
(document.documentElement || document.body).clientHeight;
}
function getScrollableLength() {
if (getDocumentLength() > getWindowLength()) {
return getDocumentLength() - getWindowLength();
} else {
return 0;
}
}
var scrollableLength = getScrollableLength();
window.addEventListener("resize", function(){
scrollableLength = getScrollableLength();
}, false)
function getCurrentScrolledLengthPosition() {
return window.pageYOffset ||
(document.documentElement || document.body.parentNode || document.body).scrollTop;
}
function getPercentageScrolled() {
if (scrollableLength == 0) {
return 100;
} else {
return getCurrentScrolledLengthPosition() / scrollableLength * 100;
}
}
var executeCallback = (function() {
var wasExecuted = false;
return function() {
if (!wasExecuted && getPercentageScrolled() > percentage) {
wasExecuted = true;
callback();
}
};
})();
if (getDocumentLength() == 0 ||
(getWindowLength()/getDocumentLength() * 100 >= percentage)) {
callback();
} else {
window.addEventListener('scroll', executeCallback, false);
}
};
executeWhenReachedPagePercentage(99, function() {
fbq('track', 'Lead');
});
Также я установил событие ЛИД на все кнопки якоря:
https://developers.facebook.com/docs/meta-pixel/implementation/marketing-api
<button onClick="fbq('track', 'Lead');"> ОТПРАВИТЬ </button>
И добавил событие на срабатывание события ЛИД, если человек находится на лендинге больше 100 секунд:
https://developers.facebook.com/docs/meta-pixel/advanced
var seconds = 100;
setTimeout(function() {
fbq('track', 'Lead');
}, seconds * 1000);
Какой итог 1 части эксперимента?
Тысячи конверсий ЛИД, но очень скудное количество "настоящих" лидов в ПП. Тут я сразу сделал вывод, что данная манипуляция - бессмысленна.
2) Установка события Лид на квиз перед самой формой.
Сейчас расскажу поподробнее. Возникла мысль: подвинуть воронку события Лид всё-таки ближе к самой форме отправки, но не на саму кнопку отправки формы. Для этого я реализовал квиз из трех простых вопросов с одним лишь ответом "ДА". После его прохождения у человека открывалась форма. И именно на третью кнопку ДА я установил событие Лид.
Какой итог 2 части эксперимента?
Неожиданно приятный CTR. Видимо, из-за того, что все-таки под данное событие оптимизации подбиралась "другая аудитория", я получил такие показатели:
И хочется сказать, что тест был не корректным из-за высокого CPM. Но нет. За счет высокого CTR - мой CPC был в пределах нормы.
И вот пример по количеству лидов и их цене из самой топовой рк. Как видим, что логично, лидов стало меньше. Потому что это именно те люди, которые дошли до третьей кнопки квиза. И кстати, зафиксируйте цену лида в 0.33$ (она нам еще пригодится).
Но как вы уже понимаете "настоящий конверт" от такой воронки ни насколько не подвинулся в лучшую сторону. Норма CPA на моем гео 8-10$.
Дальше у меня встал вопрос: двигать событие оптимизации ближе к форме в действующих кампаниях или создать новые?
Я решил поэкспериментировать: я предположил, что раз мы уже обучили адсеты искать людей, которые уже дойдут до самой формы, то поменяв событие ЛИД уже на саму кнопку "Отправить" у формы в этих же адсетах, мы сможем найти "самых готовых" к покупке людей.
3) Установка события Лид на кнопку "Отправить" у формы
Подредактировав код и установив событие ЛИД на саму кнопку формы, я стал ждать следующего дня отлива.
Какой итог 3 части эксперимента?
Из скриншотов выше мы видим 2 интересные закономерности:
- Подвинув событие ЛИД уже на саму кнопку отправки формы, CTR стал значительно снижаться.
- Оптимизация действительно сработала и не смотря на то, что мы поставили событие "дальше" количество лидов прибавилось, CPA упал.
Ну а вот по конверту - ничего не изменилось. Несколько холостых лидов в ПП. А теперь вдумайтесь: 142 нажатия на кнопку Отправить. Я конечно понимаю, что у меня там стоит маска-валидатор, но чтобы из 142 кликов по кнопке "Отправить" всего несколько залетных лидов в ПП - это фиаско.
4) Стандартная установка события Лид на страницу Спасибо.
Не беда - подумал я. Вот если я в коде поставлю событие Лид на страницу Спасибо - то точно будет победа. Алгоритм же уже знает тех, кто доходит до кнопки "Отправить" у формы.
Какой итог 4 части эксперимента?
По финальной части эксперимента скриншотов не осталось, так как попрощался с кабинетами. Конверт не прибавился. И при условии, что связка вполне работосопособная, алгоритм, гипотетически, - сбился. То есть он все-равно не давал аудиторию, нацеленную на покупку. Кстати, это было легко заметно по тому же высокому CTR 30-40%. Тогда как при стандартных условиях норма CTR на моем гео и тематике 12-19%.
Какие нюансы и дальнейшие гипотезы?
- Скорее всего под слив на нутру/адалт данная воронка не совсем подходит. Был фид от людей, работающих с другими вертикалями, что данный "сдвиг" события оптимизации вверх по воронке частично помогал более быстро найти нужную аудиторию.
- Возможно, для корректности теста стоило запускать постоянно новые кабинеты на каждую из гипотез. Возможно стоило проливать несколько дней.
- Невозможность работы с автоправилами. Из-за того, что предельная с таким количеством лидов можно сказать не высчитывается, приходится ориентироваться только по трекеру.
Надеюсь данные наблюдения были полезны! Если у вас есть собственные - не стесняйтесь писать их либо мне в личные сообщения либо в наш уютный чат.
🔥 С уважением, Владимир!
🟢 Мой телеграм: https://t.me/vladimircard