Неодноразово до мене звертались баєри з запитами вирішити проблему з дублями. І зазвичай все зводилось до банальних рішень: робота з куками, блок кнопки відправки форми після першого натискання, одним словом все те, що працює на рівні фронт частини ленда. І скажу відверто, такі рішення були дуже сумнівними, адже всеодно ліди умудрялись прокидати дублі заявок.
Ще тоді в мене виникла ідея зробити якийсь універсальний інструмент, з допомогою якого буде можливість практично на 100% позбутись даної проблеми.
І ось, не минуло й "овердофіга" часу, як я все таки добрався до реалізації такого "продукту", і здається вийшло щось не погане.
Єдиним логічним рішенням, яке я побачив на даний момент було наступне: зберігати всі нові заявки (а саме номери телефонів) в свою імпровізовану "базу", і на основі цієї бази робити пеевірку (якщо номер, який юзер намагається залишити в заявці вже присутній в базі - скрипт блокує відправку, повідомляючи користувача про те, що за цим номером вже залишали заявку). Чому база імпровізована? Бо не хотілось ускладнювати всю цю історію піднімаючи реальну БД, та і потреби в цьому не бачу, дане рішення націлене на соло байєрів або невеликі тіми, у великих я впевнений такі питання вже давно мають свої рішення, тому так.
Тепер до справи, як воно працює на практиці:
1. на сервері створюємо довільну папку поза всіма лендами (наприклад папка dublic) в яку завантажуємо наступні файли
2. в нашому ленді потрібно зробити підключення цих файлів, і так як нас цікавить масова перевірка з декількох лендів одночасно (через що і виносилась папка поза всі ленди), то підключати краще абсолютним шляхом (замість https://mysite.com прописується айпі сервера або домен, який прив'язано до нього).
Параметр offerId слугує для сегментації баз під різні офери. Прописуємо сюди назву офера, або будь-що інше довільне для своєї зручності, і на тих лендах, де підключено скрипт саме з цим айді, всі номери буде зберігати в файл з такою ж назвою (як на мене зручно розприділяти по оферах/гео). В папці зі скриптами згенерується додаткова папка storage, яка міститиме в собі всі файли з базами номерів, які будуть створюватись в майбутньому
3. Номер може записуватись в форму в будь-якому форматі (з пробілами 38 066.., з дужками 38 (066).., з тире 38-066-.., це ніяк не впливає на перевірку, все це буде рахуватись як один номер, тому що скриптом проводиться нормалізація, прибираються всі пробіли та спец символи, і номер записується в базу в такому вигляді:
Коли все вірно підключено, пробуємо залишити заявку. Першу ми відправимо без проблем, а ось при спробі відправки повторної з тим же номером, нам покажеться ось таке повідомлення:
На цьому наче все. Можливо в подальшому буду якось розширювати функціонал, але на даний момент можна відтестити такий варіант. Кого б зацікавило таке рішення - пишіть мені в особисті TraffCoder_adm , домовимось за установку)
З вас реакція на статтю - мені приємно 🖤
Ну і підписуйтесь на тг - TraffCoder 🤝🏼
Рекомендовані статті