Создание кампании (campaigns/create)
Метод создает новую кампанию.
  1. Кампания отправляется на проверку: переходит в статус moderation.
  2. После проверки статус кампании меняется (об этом сообщает модератор):
    • verified — всё в порядке, кампанию можно запустить (campaigns/start) или она запустится по расписанию (если указан campaignStart).
    • declined — необходимо внести правки: вызвать метод campaigns/update с новыми данными и тем же partnerCampaignId.
  3. Кампания запускается: статус меняется на started.

Для кампаний с пин-кодами (campaignType=codeOnline или campaignType=codeOffline): кампания не запустится, если у нее нет пин-кодов, и остановится, если пин-коды закончатся (перейдет в статус pin-required). В этом случае пин-коды нужно загрузить (с помощью метода campaigns/add-pins).

Повторное создание кампании (вызов campaigns/update) с тем же partnerCampaignId обновляет данные об этой кампании, останавливает ее и отправляет на модерацию.
Запрос
Адрес для отправки запроса
POST https://yoomoney.ru/api/offerwall/v1/campaigns/create
Параметры
ПараметрТипОписание
partnerCampaignId
int
Идентификатор кампании. Уникальный для системы агрегатора или магазина.
Обязательный параметр
categoryId
int
Идентификатор категории ваших товаров для этой кампании по справочнику в сервисе ЮMoney. Справочник можно получить в ответ на вызов categories/get.
Обязательный параметр
campaignType
enum
Тип кампании (способ получения бонуса). Возможные значения:
  • codeOnline — пользователь получает код для онлайн-заказа (можно перенаправлять его на нужный сайт с помощью acceptUrl);
  • codeOffline — пользователь получает код, который нужно предъявить на кассе в обычном магазине;
  • promo — пользователь должен перейти в интернет-магазин по специальной меченой ссылке (задается в параметре acceptUrl).
Обязательный параметр
campaignStart
datetime
Дата старта кампании. Если не задан:
  • кампания агрегатора запускается в момент загрузки,
  • кампания магазина ждет проверки.
Необязательный параметр
campaignEnd
datetime
Дата, с которой кампания не показывается пользователям. Если не задан, можно остановить кампанию вызовом метода campaigns/stop.
Необязательный параметр
offerDuration
int
Срок в часах, в течение которого пользователь может использовать сохраненный оффер. По умолчанию 2 недели (366 часов). Задать другой срок можно в параметре offerEnd.

После того, как кампания заканчивается (если срок задан в campaignEnd), выданные офферы будут действовать еще две недели — или в течение срока, заданного в offerDuration. Магазину необходимо это учитывать и выдавать пользователям бонусы.

Необязательный параметр
pinType
enum
Тип пин-кода. Возможные значения:
  • one-off — одноразовый, то есть каждому пользователю выдается уникальный код. Набор пин-кодов загружается в запросе campaigns/add-pins;
  • reusable — многоразовый, все покупатели получают один и тот же код, например YooMoney. Такой код обязательно передается в параметре couponCode.
Обязательный, если campaignType=codeOnline или campaignType=codeOffline
pinDisplayType
string
Способы отображения пин-кода. Возможные значения:
  • text — строка, уникальная для магазина (255 любых цифр, букв и символов, подходит для любых пин-кодов);
  • ean_13 — пин-код выводится в виде штрих-кода (13 цифр).
Обязательный, если campaignType=codeOnline или campaignType=codeOffline
couponCode
string
Значение пин-кода. С его помощью пользователь сможет получить скидку в магазине.
Передается для кампаний с пин-кодами. Передается для товаров с многоразовыми пин-кодами.
Обязательный, если:
  • campaignType=codeOnline или campaignType=codeOffline;
  • pinType=reusable (многоразовый).
acceptUrl
string
Меченая ссылка, по которой пользователь может получить бонус (используется вместо пин-кода или вместе с ним).
По умолчанию к ссылке сервис ЮMoney добавляют идентификатор клика (clickId), который вам необходимо анализировать. Вы можете добавлять в ссылку параметры по шаблону. Как формировать ссылку
Обязательный, если campaignType=promo или campaignType=codeOnline
merchantDomain
string
Адрес сайта магазина без http, www и /.
Пример: example.com
Обязательный параметр
merchantLogoSvg
varchar (300)
Ссылка на логотип магазина:
  • формат SVG;
  • круглый логотип;
  • размеры: 80 X 80 px;
  • задан атрибут viewBox;
  • максимум 100 КБ.
Используется для показа на веб-страницах.
Обязательный параметр
merchantLogoPng
varchar (300)
Ссылка на логотип магазина на прозрачном фоне:
  • формат PNG;
  • круглый логотип;
  • 240 X 240 px;
  • максимум 100 КБ.
Используется для показа на веб-страницах.
Обязательный параметр
merchantName
varchar (300)
Название магазина.
Обязательный параметр
backgroundColor
varchar (30)
Цвет фона в формате #HEX (не белый и не светлый).
Обязательный параметр
backgroundImage
string
Фоновое изображение:
  • формат JPG или PNG;
  • размеры: 500 X 500 px;
  • максимум 300 КБ.
Если поле не заполнено, на фоне будет изображение, подходящее к категории этого оффера.
Необязательный параметр
fontColor
varchar (30)
Цвет шрифта в формате #HEX (контрастный фону).
Обязательный параметр
description
varchar (90)
Описание акции на русском языке.
Пример: Скидка на товары для детей в магазине «Солнышко»
Обязательный параметр
conditions
varchar (512)
Условия получения бонуса на русском языке.
Пример: Промокод действует 10 дней при заказе от 4000 рублей на сайте example.com. Его можно использовать один раз.
Обязательный параметр
discountType
varchar (30)
Тип скидки или бонуса. Возможные значения:
  • text — бонус, подарок или специальное предложение (текст передается в discount_amount);
  • fix — фиксированная сумма (числовое значение передается в discount_amount);
  • percent — скидка в процентах (числовое значение передается в discount_amount).
Обязательный параметр
discountAmount
varchar (30)
Размер скидки или описание бонуса. Если в discountType передано значение text, описание бонуса должно быть на русском языке.
Обязательный параметр
discountCurrency
CurrencyCode
Код валюты скидки. Значение по умолчанию: 643 (рубль РФ).
Для скидки на определенную сумму (discountType=fix) можно задать другое значение: 840 (доллары США).
Необязательный параметр
campaignFee
varchar (30)
Размер вознаграждения ЮMoney по данной кампании. Сумма в рублях или долларах.
Обязательно передается что-то одно: либо размер вознаграждения (campaignFee), либо его минимум и максимум (campaignFeeMin и campaignFeeMax).
campaignFeeMin
varchar (30)
Минимальный размер вознаграждения ЮMoney.
Необязательный параметр
campaignFeeMax
varchar (30)
Максимальный размер вознаграждения ЮMoney.
Необязательный параметр
feeType
varchar (30)
Тип вознаграждения ЮMoney по данной кампании. Возможные значения:
  • percent — процент от стоимости оплаченного заказа;
  • fix — фиксированное.
Обязательный параметр
feeCurrency
CurrencyCode
Код валюты вознаграждения ЮMoney.
  • 643 — рубль РФ (задается по умолчанию, если значение не передано);
  • 840 — доллар США.
Необязательный параметр
supportedPlatforms
varchar (300)
Позволяет показывать офферы только на определенных платформах. Возможные значения:
  • mobile — показывает офферы только на планшетах и смартфонах;
  • desktop — показывает офферы только на десктопных компьютерах.
Необязательный параметр
cashbackType
enum
Для компаний с кэшбэком: тип кэшбэка, который приходит в кошелек пользователя. Возможные значения:
  • bonus — пользователь получает кэшбэк бонусами;
  • money — пользователь получает кэшбэк деньгами.
Необязательный параметр
cashbackConfirmTime
long
Для компаний с кэшбэком: срок, в течение которого необходимо подтвердить использование оффера с помощью метода campaigns/redeem и начислить кэшбэк. Количество дней, целое число.
Необязательный параметр
Размер скидки описывается тремя переменными: discountType, discountAmount и discountCurrency. Например:
  • скидка 10%: discount_type=percent, discount_amount=10;
  • скидка 500 рублей: discount_type=fix, discount_amount=500; currency=643;
  • подарок за покупку: discount_type=text, discount_amount="Подарок".
Пример тела запроса
JSON
{
    "backgroundColor": "#ffffff",
    "campaignEnd": "2017-12-31T23:59:59+03:30",
    "campaignType": "code",
    "campaignFee": "1000",
    "categoryId": 39,
    "conditions": "Бонус действует 10 дней при заказе от 4000 рублей на сайте example.com",
    "description": "Скидка на деньги на сайте ЮMoney",
    "discountAmount": "100",
    "discountCurrency": 643,
    "discountType": "text",
    "feeType": "fix",
    "fontColor": "#000000",
    "merchantDomain": "example.com",
    "merchantLogoPng": "https://example.com/i/logo.png",
    "merchantLogoSvg": "https://example.com/i/logo.svg",
    "merchantName": "Магазин",
    "partnerCampaignId": 20,
    "pinType": "one-off"
 }
Пример запроса
cURL
curl -X POST \
 --header 'Content-Type: application/json' \
 --header 'Accept: application/json' \
 --header 'Authorization: Bearer <авторизационный токен>' -d '{
    "backgroundColor": "#ffffff",
    "campaignEnd": "2017-12-31T23:59:59+03:30",
    "campaignType": "code",
    "campaignFee": "1000",
    "categoryId": 39,
    "conditions": "Бонус действует 10 дней при заказе от 4000 рублей на сайте example.com",
    "description": "Скидка на деньги на сайте ЮMoney",
    "discountAmount": "100",
    "discountCurrency": 643,
    "discountType": "text",
    "feeType": "fix",
    "fontColor": "#000000",
    "merchantDomain": "example.com",
    "merchantLogoPng": "https://example.com/i/logo.png",
    "merchantLogoSvg": "https://example.com/i/logo.svg",
    "merchantName": "Магазин",
    "partnerCampaignId": 20,
    "pinType": "one-off"
  }' 'https://yoomoney.ru/api/offerwall/v1/campaigns/create'
Ответ
Параметры
ПараметрТипОписание
ymCampaignIdintУникальный идентификатор кампании в сервисе ЮMoney. Используется во всех последующих запросах.
campaignStatus
enum
Статус кампании. Возможные значения:
  • moderation — на проверке;
  • declined — отклонена (не прошла проверку, нужно обновить);
  • pin-required — закончились пин-коды (нужно загрузить);
  • started — запущена;
  • paused — остановлена;
  • finished — перенесена в архив.
Ошибки
Код ошибкиЗначениеОписание
incorrectDataНекорректные данныеВ запросе переданы некорректные данные.
repeatCampaignDataПовторное значениеКампания с таким partnerCampaignId, но с другой суммой скидки, уже существует.
Пример тела ответа
JSON
{
  "status": "success",
  "result": {
    "ymCampaignId": 34,
    "campaignStatus": "moderation"
  }
}
© 2024, ООО НКО «ЮМани»