POSTBACK GT: получай максимум информации в телеграм
Большинство из нас пользуется постбеком из партнерки в Телеграм. Удобно, что скрывать. Постоянно видишь результаты своей работы, свой профит. Для многих людей мониторинг статистики становится настоящей зависимостью.
По сети давно гуляет способ сделать постбек в бота и он отлично работает, но передаваемых данных исключительно мало, обрабатывать их невозможно, получать дополнитеьную инфу тоже нельзя. А ведь при должном знании, можно устроить себе настоящую систему контроля и статистики прямо внутри телеги! Бесплатно и без СМС!
Это первая статья из серии "Автоматизация для арбитражника с помощью Гугл Таблиц".
Вот так примерно это будет выглядеть. На скриншоте моя телега:
Бот отправляет данные:
- Номер оффера в Трафорс
- ISO Гео
- Топ страна за день
- Топ Оффер за день
- Заработано с момента запуска бота
- Заработок за неделю
- Дейли
- До заветной мечты осталось.
Да-да, в качестве примера, реализовали в боте копилку денег, настройки которой задаются нами. Можно собирать на Панамеру 😉
Настройка Postback
Давайте я сначала расскажу, как все работает, а в конце оставлю 📩 ссылку на таблицу из статьи.
Да, все верно. Мы будем использовать Гугл таблицы - отличный и простой инструмент в умелых руках. В них есть все, что необходимо для арбитражника и даже больше. При должном подходе можно хоть трекер свой собрать.
⚠️ Для начала, проведем все подготовительные работы:
Создадим бота в телеграм, как описано, например в этой статье с (1 по 3 пункт обязательно). Мы должны получить:
Вооружившись, переходим в Гугл таблицы:
Берем новую таблицу, называем ее "bot". Нам нужно два листа. Переименовываем первый лист в "🤖 Bot" , второй лист создаем и называем "log".
На первом листе будет экран настроек бота, на втором - будет вестись лог постбеков, вся информация для статистики будет браться из него. В данном примере мы рассмотрим простого бота, который не будет хранить данные больше суток, вы же можете менять код по своему желанию.
Я тут немножко покреативил, и заполнил первый лист вот так:
У вас скорее всего будет все проще. Ну, либо сохраните себе мою табличку, ссылки будут внизу.
Далее перейдем в скрипты наших таблиц, создадим основную "рыбу" для работы с телегой, настроим прием данных из партнерки и выборку данных. Но сначала сохраним себе ID нашей таблицы. В адресной строке браузера он будет выглядеть так:
Этот ID тоже важен и будет использоваться в наших настройках.
и попадаем в окно, в котором всё удаляем.
Ниже я приведу код моего скрипта. Я ни разу не программист, уверен, что все можно решить более красиво, но имеем что имеем:
Сразу заполняем наши данные в шапке скрипта. Вписываем свои токены и вставляем в наше окно скрипта. URL приложения пока не заполняем, его мы получим ниже.
Пробежимся по функциям
function setWebhook() { var url = telegramUrl + "/setWebhook?url=" + webAppUrl; var response = UrlFetchApp.fetch(url); }
Пишем наши входящие данные из постбека партнерки в лог-лист. В качестве параметров выступают ключи: sum, country, dev, city и off.
https://script.google.com/macros/s/AKfycbxJhNCiugOiTmn1BHH6moxvNYJUS-tSpIvJZjQYo8njJh6gRnqeMs7_AOar1v98q5ps/exec?sum={sum}&country={geo}&dev={os}&city={city}&off={offerid}
Эта та самая ссылка, которую вы будете указывать в глобальном постбеке вашей партнерки. Макросы и ключи смотрите в личном кабинете, или уточняйте у менеджера. Вот так они выглядят на примере Трафорс:
Если хотите принимать дополнительные, или свои - меняйте.
function writeToGoogleSpreadsheet(params) { var spreadsheet = SpreadsheetApp.openById(idTable); var sheetData = spreadsheet.getSheetByName('log'); sheetData.appendRow([ params.sum, params.country, params.dev, params.city, params.off ]); }
Функция отправки сообщений в Телегу. В качестве параметров выступает текст и разметка. Мы можем использовать либо HTML, либо Markdown. Во втором случае, разметку в скрипте нужно тоже делать маркдаун, у нас первый случай описан.
function sendMessage(text, parse_mode) { var url = telegramUrl + "/sendMessage?chat_id=" + tgID + "&text=" + encodeURIComponent(text) + "&parse_mode=" + parse_mode + '&disable_web_page_preview=True'; var response = UrlFetchApp.fetch(url); }
Функция принимающая входящий GET-запрос и обрабатывающая его. В ней же вложен наш шаблон сообщения. Некрасиво, но работает. Шаблон можете править по желанию. Обратите внимание, что в переменных установлены указания на ячейки, из которых скрипт берет данные. Можете поменять значения на свои.
function doGet(e) { writeToGoogleSpreadsheet(e.parameter); const income = SpreadsheetApp.openById(idTable); const sheet = income.getSheetByName('🤖 Bot'); const logsheet = income.getSheetByName('log'); const top = sheet.getRange('D8').getValue(); //Тянем из листа Bot значения D8 const kopilka = Number(sheet.getRange('D12').getValue()); // то же самое из D12. Делаем его числом. const kopilkaName = sheet.getRange('D13').getValue(); // далее также const topGeo = sheet.getRange('D16').getValue(); const topOffer = sheet.getRange('D18').getValue(); const sumAll = Number(sheet.getRange('D20').getValue()); const sumWeek = Number(sheet.getRange('D21').getValue()); const sumDay = Number(sheet.getRange('D22').getValue()); const convSum = sheet.getRange('D6').getValue(); const convGeo = sheet.getRange('D7').getValue(); const convDev = sheet.getRange('D8').getValue(); const convCity = sheet.getRange('D9').getValue(); const convOff = sheet.getRange('D10').getValue(); // разметка сообщения. Не забывайте символы окончания строк var pbMessage= '<b>🤑 [' + convOff + '] ' + convGeo + ' ❱❱❱❱❱ ' + convSum + 'lt;/b>\n' + '------------------------------\n' + '🏆 ТОP Страна: ....... \t\t' + topGeo + '\n' + ' ТOP Оффер: ....... \t\t# ' + topOffer + '\n' + ' \n' + '💰 ТОТАЛ ................. \t\t$ ' + sumAll +'\n' + ' Неделя ................ \t\t$ ' + sumWeek + '\n' + ' Дейли .................. \t\t$ ' + sumDay + '\n' + ' \n' + '✨ До ' + kopilkaName + ': $ ' + kopilka + '\n\n' sendMessage(pbMessage, 'HTML'); \\отсылаем сообщение. Не забываем указывать разметку }
Функция суточного сохранения и обнуления данных. Выставляется по таймеру(см ниже) на "раз в сутки" и очищает логи, подбивает суммы. В ячейках 20 и 21 сохраняются ИТОГО и "за неделю", обратите внимание, через добавление данных в ячейки в виде формул. По сути, раз в сутки берутся данные из ячейки и суммируются со значениями "за сегодня", а потом перезаписываются, сохраняясь таким образом. Везде стоит округление до 4 знаков.
function saveData() { const income = SpreadsheetApp.openById(idTable); const sheet = income.getSheetByName('🤖 Bot'); const value = sheet.getRange('D20').getValue(); const daily = sheet.getRange('D21').getValue(); income.getSheetByName('🤖 Bot').getRange('D20').setValue("=ROUND(SUM("+value+",D22),4)") income.getSheetByName('🤖 Bot').getRange('D21').setValue("=ROUND(SUM("+daily+",D22),4)") var sheetActive = SpreadsheetApp.openById(idTable).getSheetByName("log"); sheetActive.getRange('A:Y').clearContent(); }
Функция еженедельного обнуления и сохранения. Выставляется по таймеру (см ниже) на "раз в неделю" и сбрасывает недельную статистику.
function clearWeek() { const income = SpreadsheetApp.openById(idTable); const sheet = income.getSheetByName('🤖 Bot'); income.getSheetByName('🤖 Bot').getRange('D21').setValue("=ROUND(SUM(0,D22),4)") }
Не скриптом единым.
Кроме скрипта есть и обратная сторона медали - формулы. Давайте глянем, что у нас есть. Я очистил оформление, чтобы можно было увидеть наглядно:
Скопировал вам их в тексте, для удобства:
=LOOKUP(1, ARRAYFORMULA(1/(log!A:A<>"")),log!A1:A) =LOOKUP(1, ARRAYFORMULA(1/(log!A:A<>"")),log!B1:B) =LOOKUP(1, ARRAYFORMULA(1/(log!A:A<>"")),log!C1:C) =LOOKUP(1, ARRAYFORMULA(1/(log!A:A<>"")),log!D1:D) =LOOKUP(1, ARRAYFORMULA(1/(log!A:A<>"")),log!E1:E) =ROUND(MINUS(D14,D20),0) =ARRAYFORMULA(INDEX(log!B1:B,MATCH(MAX(COUNTIF(log!B1:B,log!B1:B)),COUNTIF(log!B1:B,log!B1:B),0))) =ARRAYFORMULA(INDEX(log!E1:E,MATCH(MAX(COUNTIF(log!E1:E,log!E1:E)),COUNTIF(log!E1:E,log!E1:E),0))) =ROUND(SUM(0,D22),4) =ROUND(SUM(0,D22),4) =ROUND(SUM(log!A1:A),2)
Первые пять формул делают поиск последней строки со значением стоимости конверсии в листе log и выводят соответствующее этой строке значение страны, оффера, устройства и т.д.
Далее идет округленная сумма, оставшаяся до вашей мечты.
Следом, две формулы, вычисляющие самое популярное гео и оффер. Они берут данные из листа log, производят поиск самых частых значений в указанном столбце и выводят самое популярное.
Три последние суммы - это вычисление дневного, недельного и общего показателей. Реализовано все через сложение "дейли" с ячейками. По срабатыванию функции saveData они по таймеру суммируются и перезаписываются. Округлено до 4 знаков. Дейли вычисляется путем сложения всех значений в столбце с суммой на листе log.
Обратите внимание: на всех ячейках с цифровыми значениями стоит форматирование "Число"
Кроме того, обязательно переключите региональные настройки таблицы в "Соединенные Штаты". Это нужно для того, чтобы правильно суммировались входящие цифры у которых точка - разделитель.
Также разрешим циклические вычисления:
В окне скриптов нажмите на часы слева и выберите "Добавление триггера"
Выставьте настройки как на скрине. Для функции saveData это будет запуск раз в день с 0 до часу ночи.
Для функции clearWeek это будет запуск раз в неделю в понедельник с 0 до часу ночи.
Разворачиваем
Для того, чтобы наш бот запустился, нам надо провести процедуру развертывания и получить наш ключ приложения - последний незаполненный параметр в нашем скрипте.
⚠️ ВНИМАНИЕ. Если что-либо меняете в коде скрипта, то операцию развертывания надо проводить при каждом изменении! Количество развертываний велико, но ограничено. Если при развертывании все висит и не работает - создайте копию проекта и работайте дальше.
Развернем наш скрипт как веб-приложение.
Далее мы выбираем "веб приложение". В открывшемся окне настроек выбираем "У кого есть доступ – Все"
Нажимаем "Начать развертывание. У нас запросят доступ к приложению. Нужно выдать.
Вас перебросит на верификацию, надо выбрать как на скрине. Это не опасно.
Далее вы должны предоставить права и если все верно, нас перекинет на окно приложения, где будет доступен нужный нам URL.
Копируем URL и вставляем в наш скрипт. Выбираем setWebhook и жмем "Выполнить".
Я бы рекомендовал повторить операцию с развертыванием дважды от начала и до конца. Не всегда с первого раза срабатывает.
Скрипт опубликован, нам выдан адрес для использования в глобальном постбеке ПП. Давайте еще раз на него взглянем:
https://script.google.com/macros/s/AKfocbxXhNCiugOiTmn1BHH6moxvNYJUS-tSpIvPZjQYq8njJh6gRvqeMs7_AOar1v98Q5ps/exec
Это первая часть ссылки, которую мы будем вставлять. Вторая часть - это:
?sum={sum}&country={geo}&dev={os}&city={city}&off={offerid}
В примере стоят макросы Трафорса, напоминаю. В итоге финальная, ссылка для постбека будет выглядеть примерно так:
https://script.google.com/macros/s/AKfocbxXhNCiugOiTxn1BHH6moxvNXzUS-tSpIvPZjQYo8njJh6gRvqeMs7_AOar1v98Q5ps/exec?sum={sum}&country={geo}&dev={os}&city={city}&off={offerid}
Ставим ее в личном кабинете партнерки.
Проверяем
У нас уже все работает. Как проверить? Перейти по ссылке постбека, подставив в нее тестовые значения из головы. Например:
https://script.google.com/macros/s/AKfocbxXhNCiugOiTmn1BHH6moxvNYJUS-tSpIvPZjQYo8njJh6gRzqeMa7_AOar1v98Q5ps/exec?sum=9.99&country=RU&dev=WIN&city=Moscow&off=222
Если все сделали правильно и все запустилось верно, то вы получите постбек в телеграм-бота. Мы справились, удачного профита!
✅ Для тех, кто не справился
📩 Вот пример той таблицы, о которой идет речь в статье. Можете скопировать ее себе, поставить свои ID и API и пользоваться (не забудьте сделать разворачивание), подогнав вывод в телеграм под себя, так-как на разных девайсах картинка будет отличаться в пробелах, символах, эмодзи и т.д. Играйтесь как нравится.
Основную канву вы поняли, надеюсь. Можно дописать сброс статистики три раза в день, вести логи конверсий и применять их как угодно. Данная статья лишь каркас и повод попробовать такой отличный бесплатный ресурс как Гугл таблицы.
Команда TraffEmpire и лично AksHolt. Всем добра и профита!
🚀 Топовые темы на нашем канале:
🔹 Нестандартные подходы в креативах на дейтинг
🔹 Выжимка по Нигерии, для тех, кто ищет подходы
🔹 ПАК ФОТО. 100 фотографий для крео с иконками под пуши
🔹 Текст в креативах. Используем сленг
🔹 PUSH.ADNOW. Странная сетка, которая работает
Подписывайся на наш канал и добавляй его в закреп,
если не хочешь отстать от индустрии.
Если вам интересен арбитраж, но вы опасаетесь стартовать в одиночку, или считаете, что ваш опыт недостаточен для уверенного заработка – самым верным путем будет вступить в нашу команду.
🧨 Предлагаем отличные условия!
Мы одна из немногих команд, которые работают с пуш-трафиком, а это значит, что вы навсегда забудете про штормы в Фейсбуке, баны аккаунтов, поиск расходки, карт, авторегов и прочего мусора и сможете спокойно и без нервов лить трафик, получая максимальную прибыль.
💰 Что вы получаете:
🔹 Топовые связки на самых профитных гео
🔹 Стабильный заработок и спокойная работа
🔹 Гарантированные высокие выплаты
🔹 Полностью отлаженная инфраструктура
🔹 Опытные кураторы и наставники
Если наше предложение вас заинтересовало, пишите @aksholt, проходите простое собеседование и вступайте в наши ряды. Мы рады всем, и опытным ребятам и тем, кто только начинает познавать азы арбитража.
Давайте работать и зарабатывать вместе!
Все статьи авторские и основаны на личном опыте.
По всем вопросам можете писать @aksholt.
Traff Empire © 2021 год