Sage Mode | AI & Affiliate Marketing
560 subscribers
39 photos
5 videos
2 files
47 links
AI, tracking і автоматизація в Affiliate Marketing.

Зв'язок: @techwithsagemode
Download Telegram
салют
планую ділитись мануальчиками, скриптами і думками по ринку

here we go
🔥1
🤖 Конверсії з Keitaro в Telegram за 2 хвилини
Замість того, щоб кожну хвилину оновлювати статку в трекері — зроби бота, який буде відбивати конверсії в чат в телеграмі.

1. Створюєш бота (BotFather)

Шукаєш @BotFather, тиснеш /newbot та слідуєш інструкціям. Отримуєш API Token (виглядає як довгий набір літер та цифр).
Важливо: Обов'язково перейди в бота і натисни Start.

2. Chat ID
Тепер треба вказати боту, куди саме слати твої конверсії. Перед цим тобі потрібно створити групу і додати свого бота туди.
Щоб швидко дізнатися ID свого профілю, каналу або, в нашому випадку, групи — використовуй Get My ID.

3. Налаштування в Keitaro
Кампанія → S2S Postbacks і тиснеш Add a postback:

Method: GET
Statuses: Обираєш потрібні (наприклад Deposit).
URL: Вставляєш цей шаблон:
https://api.telegram.org/bot[TOKEN]/sendMessage?chat_id=[ID]&parse_mode=HTML&text=🔥 <b>ОПА, ДЕПЧИК!</b>%0A%0A<b>Campaign:</b> {campaign_name}%0A<b>Offer:</b> {offer_name}%0A<b>Revenue:</b> {revenue}


💡 Заміни: [TOKEN] — на токен від BotFather, а [ID] — на id чата, який ти отримав з Get My ID.

4. Результат

Тепер кожний депчик падає тобі в тг. Макроси {campaign_name}, {offer_name} та {revenue} автоматично підтягнуть дані з трекера (текст і макроси можеш змінити під себе).

Далі — більше! 🫡
🔥8
поки готую для вас крутий, а головне, безкоштовний (всі ж люблять халяву😉) сервіс, яким ви точно будете користуватись, дайте фідбек хто заливає гугОл, у вас теж ніби все занадто гарно йде?
Як ти відносишся до унікалізаторів креативів?

У всіх різні думки, але як не дивно, на ринку вони дуже популярні. 100500 різних унікалізаторів, але чи на стільки вони хороші?
Летс факін чек іт аут!

Я взяв фото з Unsplash (1.jpg), прогнав його через свій унікалізатор (2.jpg), згенерував схожу картинку через AI (3.png), а також прогнав оригінал через паблік-унікалізатор (1OCmBx5zkYBiaze.jpg).

Потім витягнув метадані картинок і закинув цю всю справу в ChatGPT, Grok, Gemini.

Результат:
1) Сток (1.jpg) — апрувнули всі шайтан-машини (воно і не дивно).
2) Мій унікалізатор (2.jpg) — хоча я і затираю більшість метаданих, всі як один говорять що такий креатив виглядає максимально ads-friendly і це типовий “Save for Web” варіант.
3) AI (3.png) — C2PA+AI маркування.
4) Паблік-унікалізатор (10CmBx5zkYBiaze.jpg) — пупупу, gd-jpeg / нетиповий експорт / серверна генерація.

Висновки зроби сам, але пам'ятай про бога рандома і що унікалізатори це не магічна кнопка, а інструмент який трошки пришвидшує твою роботу.
👍9
🔥 WHITE PAGES 🔥

Створюємо white pages для проходу модерації та стабільного запуску реклами в Google.

💰 Ціна — $6

Що ти отримуєш:
Багатосторінковий HTML сайт
(кожен сайт містить декілька додаткових сторінок з послугами)
Cookie Policy / Privacy Policy / Terms of Service
(усе відповідно до політик рекламних платформ)
Унікальний та чистий HTML-код
(без сміття, обфускації та шаблонів)
Підстановка назви домена в логотип і тексти
Без CMS і без конструкторів
⚡️ Максимально швидка видача

🌍 Будь-яке популярне GEO
🗣 Будь-яка популярна мова

🎯 Тематика:
— по твоєму ТЗ
— або зробимо самі, на базі того, що реально зараз працює під Google

📩 Пиши в особисті — зробимо швидко і без зайвих питань 🚀
👏4👍2
Як лити по графіку в Google Ads і не отримати “Compromised Site”? 🤔

В різних гуглових чатах гуляє інфа, що якщо лити виключно по графіку роботи КЦ, шанс отримати “compromised” вищий, ніж у повністю аналогічного сетапу, але 24/7. Можна звісно запускати й так, а потім інжектити ліди — але бренди навряд чи зрадіють що ти їм зливаєш холодку та й CR у тебе явно просяде😉

То що робити?
Все просто: графік сетапимо через скрипт, а не руками 🫡

🛠 Як запустити (2 хв)

Google Ads → Tools & Settings → Bulk actions → Scripts
+ New script → вставляєш скопійований код → Authorize → Preview (чекни лог) → Run

Час береться по таймзоні акаунта (виводиться в логах). Ну а графік можеш налаштовувати під себе, розберешся🤝

А якщо хочеш забути як виглядає “compromised” — раджу затестити наші White Pages.
Ціна нижче ринку, а якість перевірена тисячами запусків 👌

function main() {
const CLEAR_EXISTING = true;

// Розклад: Пн–Пт 09:00–18:00
const schedules = [
{ dayOfWeek: "MONDAY", startHour: 9, startMinute: 0, endHour: 18, endMinute: 0, bidModifier: 1.0 },
{ dayOfWeek: "TUESDAY", startHour: 9, startMinute: 0, endHour: 18, endMinute: 0, bidModifier: 1.0 },
{ dayOfWeek: "WEDNESDAY", startHour: 9, startMinute: 0, endHour: 18, endMinute: 0, bidModifier: 1.0 },
{ dayOfWeek: "THURSDAY", startHour: 9, startMinute: 0, endHour: 18, endMinute: 0, bidModifier: 1.0 },
{ dayOfWeek: "FRIDAY", startHour: 9, startMinute: 0, endHour: 18, endMinute: 0, bidModifier: 1.0 },
];

Logger.log("Account timezone: " + AdsApp.currentAccount().getTimeZone());

// 1) Стандартні кампанії
applyToAllEnabled(
AdsApp.campaigns().withCondition("campaign.status = 'ENABLED'").get(),
schedules,
CLEAR_EXISTING
);

// 2) Performance Max
applyToAllEnabled(
AdsApp.performanceMaxCampaigns().withCondition("campaign.status = 'ENABLED'").get(),
schedules,
CLEAR_EXISTING
);
}

function applyToAllEnabled(iterator, schedules, clearExisting) {
while (iterator.hasNext()) {
const campaign = iterator.next();

if (clearExisting) {
const existing = campaign.targeting().adSchedules().get();
while (existing.hasNext()) existing.next().remove();
}

schedules.forEach(s => campaign.addAdSchedule(s));
Logger.log(" Updated: " + campaign.getName());
}
}
16🔥2
Як зменшити кількість трешу і не придумувати велосипед?

Перебираючи ленди зі спая, помітив що овер дохуя людей ігнорують валідацію на формі, або ліплять костилі, які живуть до першого апдейта.
Думав що вже всі знають про intl-tel-input 🤷‍♂️

✔️ Авто GEO
✔️ Адекватна валідація
✔️ Один плагін замість if-else-if-else і regex на 100500 символів

Тому тримай короткий мануальчик, як його використовувати:

1. Підключи CDN (CSS в <head>, JS перед </body>)

<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/intl-tel-input@18/build/css/intlTelInput.css">
<script src="https://cdn.jsdelivr.net/npm/intl-tel-input@18/build/js/intlTelInput.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/intl-tel-input@18/build/js/utils.js"></script>


2. Додай форму
<form id="lead-form" action="thank-you.html" method="GET">
<input type="tel" id="phone" name="phone" placeholder="+48 123 456 789">
<button type="submit">Відправити</button>
</form>


3. Ініціалізація (нижче CDN-скриптів, перед </body>
)
<script>
const phoneInput = document.querySelector("#phone");

const iti = window.intlTelInput(phoneInput, {
initialCountry: "auto",
separateDialCode: true,
geoIpLookup: cb => {
fetch("https://ipapi.co/json")
.then(r => r.json())
.then(d => cb((d && d.country_code) ? d.country_code.toLowerCase() : "pl"))
.catch(() => cb("pl"));
},
utilsScript: "https://cdn.jsdelivr.net/npm/intl-tel-input@18/build/js/utils.js",
});
</script>


4. Перевірка (нижче ініціалізації, теж перед </body>)
<script>
const form = document.querySelector("#lead-form");

form.addEventListener("submit", (e) => {
if (!iti.isValidNumber()) {
e.preventDefault();
alert("Spierdalaj do Polski");
phoneInput.classList.add("input-error");
return;
}

phoneInput.value = iti.getNumber(); // E.164, тільки так
});
</script>


Звісно це базова варіація, яку можна модифікувати під себе. Але навіть так працювати буде краще ніж те, що я бачу на лендах.

Якщо було корисно — дай реакцію на пост 🤝
🔥8👍3👏2
🔧 Тех-сетап по Demand Gen (Google | FX/Crypto)

В мене вже був схожий пост на каналі, але періодично летіли запити в особисті. А так як я скупий на консультації, тому трошки більше деталей дам в цьому пості.

🖥 VPS

Тобі ж потрібно кудись повісити домени зі всіма гадостями на борту. Береш мінімальну конфігурацію, наприклад:

1 vCPU
2.5 GB RAM
20 GB SSD
Ubuntu 22.04

На таку впску вішаєш 5-15 доменів (але не забувай прокинути їх через Cloudflare та підрубити проксювання).

🧰 Panels (якщо ти у мами не девопс)

ISPmanager або
HestiaCP або
CyberPanel або
aaPanel або...
ок, чатеГПТ, які є панелі керування на VPS

🌍 Domains

.world
.info
.eu (пів року тому показувати себе найкраще, але за останні декілька місяців різницю взагалі не бачу)

Ну а якщо ти дуже віруючий — бери .com, але як на мене це просто + кост, воно тобі потрібно?)

🧱 White Pages

Ми воркаємо на своїх вайтах (HTML/CSS + JS). Я компромісів не бачив з початку року. Бізнес-практики вилітають рідко. Тому переставай гратись в промпт-інженера, а просто візьми вайт за $6 і займайся тим, чим займається тру баєр: кури кальян і чекай статку.

🛡 Cloaking

Ну тут просто. Якщо є гроші — Adspect, якщо немає — Palladium.
Якщо дуже розумний — напиши свою.

Ну і як завжди, окремо дякую за реакції, це прям сильно пушить писати щось ще 🫡
👍9👏2
15 березня шторм Google Ads закінчиться? 🌪

Я не знаю нікого, хто за останній місяць не мав проблем із запусками. І зараз гуляє інфа, що 15.03 Google відпустить, і трава стане зеленішою.

Навіть є кілька причин, чому називають саме середину місяця:

1. Технічні дедлайни API:
У березні Google завершує кілька етапів міграції на нові протоколи: зміни в PAL SDK та підготовку до повного переходу на Data Manager API. Деякі сервісні оновлення мають дедлайни до 10–15 березня.

2. Зміна логіки роботи з lookalike-аудиторіями:
Google переводить lookalike в режим signal замість constraint і дата завершення припадає орієнтовно на середину місяця.

Звучить як аргумент, але я думаю, що ми більше видаємо бажане за дійсне. Я не вірю, що в один день сотні акаунтів вийдуть з холда і ми знову почнемо заробляти свої 200 грн.

Тому питання не в тому чи 15.03 реально відпустить, а в тому, що ти будеш робити, якщо ні.

Якісні white pages під Google Ads можна замовити тут.
👍6
⚡️ Апдейт унікалізатора креативів

Тепер можна отримати до 50 унікальних креативів за одну ітерацію:

— до 5 зображень за раз
— до 10 копій кожного зображення

Декілька кліків і у тебе пачка креосів під тести.

Бот тут:
👉 @your_uniquizer_bot

До речі, в мене був пост, в якому я:
порівняв сток → свій унікалізатор → AI генерацію → паблік унікалізатор, витягнув метадані і скормив це все ChatGPT / Grok / Gemini.

Про результати почитати можна тут:
https://t.me/affsagemode/185
4👍2