13 KiB
Учетные данные Facebook для запуска рекламы
Обзор
Для запуска рекламных кампаний в Facebook через Marketing API (ранее Ads API) требуются специальные учетные данные, которые отличаются от простого Access Token для публикации постов.
Необходимые учетные данные
1. Access Token (обязательно)
Access Token с расширенными разрешениями для управления рекламой.
Требуемые разрешения (Permissions):
ads_management- Управление рекламными кампаниямиads_read- Чтение данных о рекламеbusiness_management- Управление бизнес-аккаунтомpages_read_engagement- Чтение данных страниц (опционально)
Типы токенов:
- User Access Token - краткосрочный (1-2 часа)
- Long-Lived User Access Token - долгосрочный (60 дней)
- Page Access Token - для управления страницами
- System User Access Token - для серверных приложений (рекомендуется для продакшена)
2. Ad Account ID (обязательно)
ID рекламного аккаунта Facebook, в котором будут создаваться кампании.
Формат: act_XXXXXXXXX (например: act_123456789)
Где найти:
- Перейдите в Facebook Ads Manager
- В настройках аккаунта найдите "Account ID"
- Или используйте API:
GET /me/adaccounts
3. App ID и App Secret (обязательно для серверных приложений)
Учетные данные Facebook приложения.
Где найти:
- Перейдите на Facebook Developers
- Выберите ваше приложение
- В разделе "Settings" → "Basic" найдите:
- App ID
- App Secret (нажмите "Show" для отображения)
Важно: App Secret должен храниться в безопасности и никогда не передаваться на клиент.
4. Page ID (опционально, но рекомендуется)
ID страницы Facebook, связанной с рекламным аккаунтом.
Где найти:
- Перейдите на вашу страницу Facebook
- В настройках страницы найдите "Page ID"
- Или используйте API:
GET /me/accounts
Пошаговая инструкция получения учетных данных
Шаг 1: Создание Facebook приложения
- Перейдите на Facebook Developers
- Нажмите "My Apps" → "Create App"
- Выберите тип приложения: "Business" или "Other"
- Заполните название и контактный email
- Нажмите "Create App"
Шаг 2: Добавление продукта "Marketing API"
- В панели управления приложением найдите раздел "Add Products"
- Найдите "Marketing API" и нажмите "Set Up"
- Следуйте инструкциям для настройки
Шаг 3: Получение App ID и App Secret
- В левом меню выберите "Settings" → "Basic"
- Скопируйте App ID
- Нажмите "Show" рядом с App Secret и скопируйте его
- Сохраните эти данные в безопасном месте
Шаг 4: Настройка разрешений (Permissions)
- В левом меню выберите "Settings" → "Advanced"
- Добавьте в "Valid OAuth Redirect URIs" ваш callback URL
- В разделе "Permissions and Features" запросите:
ads_managementads_readbusiness_managementpages_read_engagement
Шаг 5: Получение Access Token
Вариант A: User Access Token (для тестирования)
- Перейдите в Graph API Explorer
- Выберите ваше приложение
- Нажмите "Generate Access Token"
- Выберите необходимые разрешения
- Скопируйте полученный токен
Вариант B: Long-Lived Token (для разработки)
# Обмен краткосрочного токена на долгосрочный
curl -X GET "https://graph.facebook.com/v18.0/oauth/access_token?grant_type=fb_exchange_token&client_id={app-id}&client_secret={app-secret}&fb_exchange_token={short-lived-token}"
Вариант C: System User Token (для продакшена - рекомендуется)
- В панели управления приложением перейдите в "Business Settings"
- Создайте System User
- Назначьте ему доступ к рекламному аккаунту
- Сгенерируйте токен для System User
Шаг 6: Получение Ad Account ID
Через Ads Manager:
- Перейдите в Facebook Ads Manager
- В настройках аккаунта найдите "Account ID"
Через API:
curl -X GET "https://graph.facebook.com/v18.0/me/adaccounts?access_token={access-token}"
Ответ будет содержать массив с id в формате act_XXXXXXXXX.
Структура учетных данных для вашего API
Для интеграции с вашей системой, учетные данные Facebook для рекламы должны быть сохранены в следующем формате:
Формат JSON для сохранения credentials
{
"platform": "facebook_ads",
"credentials": {
"accessToken": "EAABwzLix...",
"adAccountId": "act_123456789",
"appId": "1234567890123456",
"appSecret": "your-app-secret-here",
"pageId": "1234567890123456",
"tokenType": "LONG_LIVED",
"expiresAt": "2024-12-31T23:59:59Z"
}
}
Пример сохранения через API
const facebookAdsCredentials = {
platform: 'facebook_ads',
credentials: JSON.stringify({
accessToken: 'EAABwzLix...',
adAccountId: 'act_123456789',
appId: '1234567890123456',
appSecret: 'your-app-secret-here',
pageId: '1234567890123456',
tokenType: 'LONG_LIVED',
expiresAt: '2024-12-31T23:59:59Z',
}),
};
// Сохранение через ваш API
const response = await fetch('/api/social-media/credentials', {
method: 'POST',
headers: {
Authorization: `Bearer ${jwtToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(facebookAdsCredentials),
});
Требования и ограничения
Ограничения Facebook Marketing API
-
Rate Limits:
- 200 вызовов в час на пользователя
- 4800 вызовов в час на приложение
-
Минимальные требования:
- Рекламный аккаунт должен быть активен
- У пользователя должны быть права администратора на аккаунте
- Приложение должно пройти ревью Facebook (для продакшена)
-
Версия API:
- Текущая версия: v18.0
- Facebook регулярно обновляет API, следите за изменениями
Безопасность
- Никогда не храните App Secret в открытом виде
- Используйте шифрование для хранения credentials (ваша система уже использует шифрование)
- Регулярно обновляйте токены (Long-Lived токены истекают через 60 дней)
- Используйте System User Token для продакшена вместо User Token
Проверка учетных данных
Проверка Access Token
curl -X GET "https://graph.facebook.com/v18.0/me?access_token={access-token}"
Если токен валиден, вы получите информацию о пользователе.
Проверка доступа к Ad Account
curl -X GET "https://graph.facebook.com/v18.0/{ad-account-id}?access_token={access-token}&fields=id,name,account_id"
Если доступ есть, вы получите информацию об аккаунте.
Проверка разрешений
curl -X GET "https://graph.facebook.com/v18.0/me/permissions?access_token={access-token}"
Проверьте, что в ответе есть:
ads_managementсо статусомgrantedads_readсо статусомgrantedbusiness_managementсо статусомgranted
Примеры использования для создания рекламной кампании
Создание кампании
curl -X POST "https://graph.facebook.com/v18.0/{ad-account-id}/campaigns" \
-d "name=Test Campaign" \
-d "objective=OUTCOME_TRAFFIC" \
-d "status=PAUSED" \
-d "access_token={access-token}"
Создание Ad Set
curl -X POST "https://graph.facebook.com/v18.0/{ad-account-id}/adsets" \
-d "name=Test Ad Set" \
-d "campaign_id={campaign-id}" \
-d "billing_event=IMPRESSIONS" \
-d "optimization_goal=REACH" \
-d "bid_amount=100" \
-d "daily_budget=1000" \
-d "targeting={'geo_locations':{'countries':['KZ']}}" \
-d "access_token={access-token}"
Обновление токенов
Access Token имеет срок действия. Для автоматического обновления:
- Отслеживайте срок действия токена (
expiresAt) - Используйте refresh token (если доступен)
- Или запросите новый токен перед истечением старого
Обмен краткосрочного токена на долгосрочный
async function exchangeToken(shortLivedToken, appId, appSecret) {
const response = await fetch(
`https://graph.facebook.com/v18.0/oauth/access_token?grant_type=fb_exchange_token&client_id=${appId}&client_secret=${appSecret}&fb_exchange_token=${shortLivedToken}`
);
const data = await response.json();
return {
accessToken: data.access_token,
expiresIn: data.expires_in, // в секундах
expiresAt: new Date(Date.now() + data.expires_in * 1000).toISOString(),
};
}
Рекомендации
- Для разработки: Используйте Long-Lived User Access Token
- Для продакшена: Используйте System User Access Token
- Храните credentials в зашифрованном виде (ваша система уже это делает)
- Реализуйте автоматическое обновление токенов
- Логируйте все операции с рекламой для отладки
- Обрабатывайте ошибки API (rate limits, invalid tokens, etc.)
Полезные ссылки
- Facebook Marketing API Documentation
- Facebook Graph API Explorer
- Facebook Business Settings
- Facebook Ads Manager
- Access Token Debugger
Поддержка
При возникновении проблем с получением или использованием учетных данных:
- Проверьте документацию Facebook Marketing API
- Используйте Access Token Debugger для проверки токена
- Убедитесь, что все разрешения запрошены и одобрены
- Проверьте, что рекламный аккаунт активен и имеет необходимые права