✅ Соответствие требованиям Яндекс Direct API
Наше приложение полностью соответствует правилам разработки приложений для взаимодействия с API
Сервиса «Яндекс.Директ», установленным по адресу:
yandex.ru/legal/direct_api_developers
📋 Регистрация и идентификация приложения
✓ Application ID и безопасность СООТВЕТСТВУЕТ
Требование Яндекс (п. 3.2-3.3): Использование Application ID и пароля приложения для доступа к API
Наша реализация:
- Приложение зарегистрировано на oauth.yandex.ru
- OAuth Client ID: a11cf2820b294356bf045c89bf6b1d30
- Client Secret хранится в зашифрованном виде на сервере
- Один Application ID используется только для одного приложения (соответствие п. 3.5)
- Предоставлена полная и актуальная информация о приложении (п. 3.4)
🔒 Безопасность и защита данных
✓ Безопасное хранение токенов СООТВЕТСТВУЕТ
Требование Яндекс (п. 3.7): Ответственность за сохранность Application ID и пароля
Наша реализация:
- OAuth токены: Хранятся в зашифрованном виде для каждого пользователя
- JWT токены: Используются для веб-сессий с ограниченным временем жизни (24 часа)
- Пароли пользователей: Хешируются с использованием bcrypt (необратимое шифрование)
- HTTPS: Все соединения защищены TLS 1.2+ шифрованием
- Изоляция данных: Каждый пользователь имеет доступ только к своим токенам
- Уведомление Яндекс: Обязуемся немедленно уведомлять о случаях неавторизованного доступа
Контакты для экстренных ситуаций:
⚙️ Технические требования API
✓ Rate Limiting (Контроль частоты запросов) СООТВЕТСТВУЕТ
Требование Яндекс (п. 3.10): Соответствие техническим требованиям API
Наша реализация:
- Лимит: 10 запросов в минуту (в соответствии с рекомендациями Яндекс)
- Минимальный интервал между запросами: 6 секунд
- Thread-safe реализация с использованием asyncio.Lock
- Автоматическое ожидание перед каждым API запросом
Код реализации:
MAX_REQUESTS_PER_MINUTE = 10
REQUEST_INTERVAL = 60.0 / MAX_REQUESTS_PER_MINUTE # 6 секунд
async def _wait_for_rate_limit(self):
async with self._request_lock:
current_time = time.time()
time_since_last_request = current_time - self.last_request_time
if time_since_last_request < self.REQUEST_INTERVAL:
wait_time = self.REQUEST_INTERVAL - time_since_last_request
await asyncio.sleep(wait_time)
self.last_request_time = time.time()
✓ Retry Logic (Обработка ошибок) СООТВЕТСТВУЕТ
Требование Яндекс: Корректная обработка временных ошибок и сбоев
Наша реализация:
- Автоматический retry при временных ошибках: 429, 500, 502, 503, 504
- Экспоненциальная задержка между попытками: 2, 4, 8 секунд
- До 3 попыток на каждый запрос
- Корректная обработка TimeoutException и RequestError
- Детальное логирование всех операций для аудита
Код реализации:
for attempt in range(retry_count):
try:
# Выполнение запроса
# Проверка на временные ошибки
if response.status_code in [429, 500, 502, 503, 504]:
if attempt < retry_count - 1:
wait_time = 2 ** attempt # Exponential backoff
await asyncio.sleep(wait_time)
continue
except httpx.TimeoutException:
# Retry с задержкой
except httpx.RequestError as e:
# Retry с задержкой
✓ Правильное использование API v5 СООТВЕТСТВУЕТ
Требование Яндекс: Соблюдение официальной спецификации API v5
Наша реализация:
- Использование Yandex.Direct API v5 (JSON протокол)
- Правильные заголовки:
Authorization: Bearer {token}
Client-Login: {login}
Accept-Language: ru
- Корректная структура запросов (method + params)
- Поддержка асинхронных отчетов (Reports API с polling механизмом)
- Timeout для Reports API: 90 секунд (для долгих отчетов)
- Timeout для обычных запросов: 60 секунд
📜 Правовое соответствие
✓ Соблюдение законодательства РФ СООТВЕТСТВУЕТ
Требование Яндекс (п. 3.8): Приложение не должно нарушать законодательство РФ
Наша реализация:
- Полное соблюдение 152-ФЗ "О персональных данных"
- Политика конфиденциальности: /privacy
- Явное согласие пользователей на обработку данных при регистрации
- Указаны полные реквизиты оператора персональных данных:
| Реквизит |
Значение |
| Оператор |
ИП Гаевский Степан Васильевич |
| ОГРНИП |
325180000011285 |
| ИНН |
182810231532 |
| Адрес |
427430, Удмуртская Респ, г. Воткинск, ул. Гастелло, д. 3 |
| Email |
tech@mobpub.ru |
✓ Интеллектуальная собственность СООТВЕТСТВУЕТ
Требование Яндекс (п. 7): Разработчик является правообладателем или лицензиатом
Наша гарантия:
- Разработчик является правообладателем всего кода приложения
- Используется открытый протокол MCP (Model Context Protocol)
- Все использованные библиотеки имеют открытые лицензии
- Не нарушаются права третьих лиц
👥 Ответственность перед пользователями
✓ Урегулирование споров СООТВЕТСТВУЕТ
Требование Яндекс (п. 3.9): Разработчик обязуется урегулировать претензии третьих лиц
Наши обязательства:
- Самостоятельное урегулирование всех споров с пользователями
- Возмещение Яндексу убытков в случае претензий, вызванных нашими нарушениями
- Техническая поддержка пользователей: tech@mobpub.ru
- Ответ на претензии в течение 30 дней
- Пользовательское соглашение: /terms
📊 Мониторинг и аудит
Мы обеспечиваем полную прозрачность работы приложения:
- Логирование: Все API запросы логируются для аудита и отладки
- Мониторинг: Отслеживание частоты запросов и соблюдения rate limits
- Аналитика: Статистика использования API доступна в личном кабинете
- Уведомления: Автоматические уведомления о превышении лимитов или ошибках
📞 Контакты для связи с Яндекс
В соответствии с требованиями Яндекс (п. 13), все вопросы и претензии направляются по адресу:
📚 Дополнительная документация
✅ Приложение полностью соответствует требованиям Яндекс Direct API
Последнее обновление: 22 ноября 2025