Аутентификация
TargetAds External API использует Bearer Token аутентификацию для всех запросов.
Токен предоставляет доступ к данным конкретного проекта с учетом настроенных прав доступа.
Получение токена
Токены выдаются администратором проекта через веб-интерфейс TargetAds. Каждый токен привязан к:
- Конкретному проекту (project_id)
- Набору разрешений (доступ к кампаниям, метрикам)
- Уровню доступа (администратор или пользователь)
Использование токена
HTTP заголовок
Все запросы к API должны содержать заголовок авторизации:
Authorization: Bearer YOUR_TOKEN_HERE
Пример запроса
curl -X GET "https://api.targetads.io/v1/meta/campaigns?project_id=12486" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Python пример
import requests

API_URL = "https://api.targetads.io"
TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

headers = {
    "Authorization": f"Bearer {TOKEN}",
    "Content-Type": "application/json"
}

response = requests.get(
    f"{API_URL}/v1/meta/campaigns",
    params={"project_id": 12486},
    headers=headers
)
Валидация токена
Вы можете проверить валидность токена и получить информацию о правах доступа:
Endpoint
GET /v1/meta/token_validate?project_id={project_id}
Пример запроса
curl -X GET "https://api.targetads.io/v1/meta/token_validate?project_id=12486" \
  -H "Authorization: Bearer YOUR_TOKEN"
Успешный ответ
{
  "valid": true,
  "project_id": 12486,
  "is_admin": false,
  "campaign_access": [12345, 12346, 12347],
  "expires_at": "2025-12-31T23:59:59Z"
}
Ошибка валидации
{
  "ErrorCode": 401,
  "ErrorMessage": "invalid or expired token"
}
Права доступа
Администраторы:
- Полный доступ ко всем данным проекта
- Доступ ко всем кампаниям
- Возможность видеть все метрики

Обычные пользова
- Доступ только к разрешенным кампаниям
- Фильтрация данных по доступным кампаниям автоматическая
- Запросы к недоступным кампаниям вернут пустой результат

Безопасность токенов
Рекомендации
__________________________________________________________________________________
1. Храните токены безопасно
  - Не коммитьте токены в git
  - Используйте переменные окружения
  - Храните в секретах CI/CD систем

2. Ротация токенов
  - Регулярно обновляйте токены
  - Удаляйте неиспользуемые токены
  - Создавайте отдельные токены для разных систем

3. Ограничение прав
  - Выдавайте минимально необходимые права
  - Используйте токены пользователя вместо администратора где возможно

Пример хранения в окружении
# .env файл (НЕ коммитить!)
TARGETADS_API_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
TARGETADS_PROJECT_ID=12486
import os
from dotenv import load_dotenv

load_dotenv()

TOKEN = os.getenv("TARGETADS_API_TOKEN")
PROJECT_ID = os.getenv("TARGETADS_PROJECT_ID")
Обработка ошибок аутентификации
401 Unauthorized
Токен отсутствует, невалиден или истек:
{
  "ErrorCode": 401,
  "ErrorMessage": "invalid or expired token"
}
Решение: Проверьте токен, убедитесь что он не истек, запросите новый токен у администратора.

403 Forbidden
Токен валиден, но нет доступа к запрошенным данным:
{
  "ErrorCode": 403,
  "ErrorMessage": "access denied to project"
}
Решение: Убедитесь что используете правильный project_id и у токена есть доступ к проекту.

Срок действия токенов
__________________________________________________________________________________
- Токены имеют ограниченный срок действия (обычно 1 год)
- При истечении токена API вернет ошибку 401
- Администратор может аннулировать токен в любое время
- Рекомендуется проверять срок действия через `/v1/meta/token_validate`
Мониторинг использования
__________________________________________________________________________________
Рекомендуется логировать:
- Все запросы с токеном
- Ошибки аутентификации
- Время последнего использования токена

Это поможет быстро обнаружить проблемы с токенами и обновить их до истечения срока.