Всем салюты! Сегодня расскажу про свои наблюдения по установке события оптимизации на разные этапы воронки. Как бы это странно не казалось (играться с такими действиями на арбитражном подходе) – в голову пришла такая мысль и ее было необходимо протестить.
Погнали!
Немного теории
Все мы прекрасно понимаем, что фб требует от нашего адсета – получить 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