Конфигурация
Полное руководство по настройке и конфигурации виджета.
AdQuest.init({ siteKey: string, // Ваш Site Key из dashboard container: HTMLElement // DOM элемент для виджета});interface AdQuestConfig { // Обязательные siteKey: string; container: HTMLElement;
// Опциональные apiBaseURL?: string; // По умолчанию: 'https://api.ad-quest.ru' mode?: 'advertisement' | 'captcha' | 'invisible'; // По умолчанию: 'advertisement' theme?: 'light' | 'dark'; // По умолчанию: 'light' language?: 'ru' | 'en'; // По умолчанию: 'ru' hideOnSuccess?: boolean; // По умолчанию: false tokenTTL?: number; // В секундах, по умолчанию: 3600
// Callbacks onSuccess?: (token: string) => void; onError?: (error: Error) => void; onExpire?: () => void; onLoad?: () => void;}AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha')});AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha'), apiBaseURL: 'https://api.ad-quest.ru', mode: 'advertisement', theme: 'light', language: 'ru', hideOnSuccess: true, tokenTTL: 3600,
onSuccess: (token) => { console.log('Токен получен:', token); // Отправьте токен на сервер },
onError: (error) => { console.error('Ошибка:', error); // Обработайте ошибку },
onExpire: () => { console.log('Токен истек'); // Обновите виджет },
onLoad: () => { console.log('Виджет загружен'); }});Основной режим с показом рекламы:
AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha'), mode: 'advertisement'});Fallback режим с обычной CAPTCHA:
AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha'), mode: 'captcha'});Автоматическая проверка без UI:
AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha'), mode: 'invisible'});Когда использовать Invisible Mode
Invisible Mode подходит для:
- Страниц с низким риском
- Авторизованных пользователей
- API endpoints с дополнительной защитой
Не рекомендуется для:
- Форм регистрации
- Платежных форм
- Публичных API
AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha'), theme: 'light'});AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha'), theme: 'dark'});const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha'), theme: prefersDark ? 'dark' : 'light'});Поддерживаемые языки:
ru- Русский (по умолчанию)en- English
AdQuest.init({ siteKey: 'YOUR_SITE_KEY', container: document.getElementById('adquest-captcha'), language: 'en'});AdQuest включает встроенные механизмы защиты:
- Rate Limiting: Ограничение количества запросов с одного IP
- Fingerprinting: Идентификация браузера и устройства
- Behavioral Analysis: Анализ поведения пользователя
- Token Validation: Проверка токена на сервере
Для разработки используйте тестовые ключи из dashboard:
// Тестовый Site Key (работает на localhost)const TEST_SITE_KEY = 'test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
AdQuest.init({ siteKey: TEST_SITE_KEY, container: document.getElementById('adquest-captcha')});Важно о тестовых ключах
- Работают только на
localhostи тестовых доменах - Не используйте в production
- Всегда показывают тестовую рекламу
- Токены не проходят полную валидацию
Рекомендуется хранить Site Key в переменных окружения:
// .envADQUEST_SITE_KEY=your_site_key_here
// В кодеAdQuest.init({ siteKey: process.env.ADQUEST_SITE_KEY, container: document.getElementById('adquest-captcha')});- API Reference - изучите доступные методы
- Примеры интеграции - готовые решения
- Troubleshooting - решение проблем