Перейти к содержимому
ADQuest

Конфигурация

Конфигурация ADQuest Widget

Полное руководство по настройке и конфигурации виджета.

Параметры инициализации

Обязательные параметры

ADQuest.init({
siteKey: string, // Ваш Public Key (pk_...) из 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: 'pk_demo_1234567890abcdef1234567890abcdef', // Демо Public Key
container: document.getElementById('adquest-captcha')
});

Полная конфигурация

ADQuest.init({
siteKey: 'pk_demo_1234567890abcdef1234567890abcdef', // Демо Public 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: 'pk_demo_1234567890abcdef1234567890abcdef',
container: document.getElementById('adquest-captcha'),
mode: 'advertisement'
});

Captcha Mode

Fallback режим с обычной CAPTCHA:

ADQuest.init({
siteKey: 'pk_demo_1234567890abcdef1234567890abcdef',
container: document.getElementById('adquest-captcha'),
mode: 'captcha'
});

Invisible Mode Beta

Автоматическая проверка без UI:

ADQuest.init({
siteKey: 'pk_demo_1234567890abcdef1234567890abcdef',
container: document.getElementById('adquest-captcha'),
mode: 'invisible'
});

Когда использовать Invisible Mode

Invisible Mode подходит для:

  • Страниц с низким риском
  • Авторизованных пользователей
  • API endpoints с дополнительной защитой

Не рекомендуется для:

  • Форм регистрации
  • Платежных форм
  • Публичных API

Темы оформления

Light Theme

ADQuest.init({
siteKey: 'pk_demo_1234567890abcdef1234567890abcdef',
container: document.getElementById('adquest-captcha'),
theme: 'light'
});

Dark Theme

ADQuest.init({
siteKey: 'pk_demo_1234567890abcdef1234567890abcdef',
container: document.getElementById('adquest-captcha'),
theme: 'dark'
});

Автоматическое определение темы

const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
ADQuest.init({
siteKey: 'pk_demo_1234567890abcdef1234567890abcdef',
container: document.getElementById('adquest-captcha'),
theme: prefersDark ? 'dark' : 'light'
});

Локализация

Поддерживаемые языки:

  • ru - Русский (по умолчанию)
  • en - English
ADQuest.init({
siteKey: 'pk_demo_1234567890abcdef1234567890abcdef',
container: document.getElementById('adquest-captcha'),
language: 'en'
});

Защитные механизмы

ADQuest включает встроенные механизмы защиты:

  • Rate Limiting: Ограничение количества запросов с одного IP
  • Fingerprinting: Идентификация браузера и устройства
  • Behavioral Analysis: Анализ поведения пользователя
  • Token Validation: Проверка токена на сервере

Тестовые ключи

Для разработки и тестирования используйте демо-ключи:

Демо Public Key (для виджета):

pk_demo_1234567890abcdef1234567890abcdef

Демо Secret Key (для бэкенда):

sk_secret_demo_1234567890abcdef1234567890ab
// Пример использования демо-ключа
ADQuest.init({
siteKey: 'pk_demo_1234567890abcdef1234567890abcdef',
container: document.getElementById('adquest-captcha')
});

Важно о демо-ключах

Демо-ключи предназначены только для тестирования:

  • Работают на любом домене (включая localhost)
  • Всегда показывают тестовую рекламу
  • Токены проходят базовую валидацию
  • НЕ используйте в production!

Для production получите реальные ключи:

  1. Зарегистрируйтесь на dashboard.ad-quest.ru
  2. Добавьте ваш домен
  3. Получите уникальные Public Key и Secret Key
  4. Используйте их в вашем приложении

Переменные окружения

Рекомендуется хранить ключи в переменных окружения:

Для фронтенда (.env):

Окно терминала
# Public Key - безопасно использовать на клиенте
NEXT_PUBLIC_ADQUEST_SITE_KEY=pk_your_public_key_here

Для бэкенда (.env):

Окно терминала
# Secret Key - ТОЛЬКО для сервера, никогда не отправляйте на клиент!
ADQUEST_SECRET_KEY=sk_secret_your_secret_key_here
ADQUEST_API_URL=https://api.ad-quest.ru

Использование в коде:

// Фронтенд
ADQuest.init({
siteKey: process.env.NEXT_PUBLIC_ADQUEST_SITE_KEY,
container: document.getElementById('adquest-captcha')
});
// Бэкенд (Node.js)
const secretKey = process.env.ADQUEST_SECRET_KEY;

Следующие шаги