Настройка каталога

Для настройки динамической рекламы требуются каталог, ленты каталога и группы продуктов.

Каталог — это структурированный файл данных со списком рекламируемых продуктов. Каждая строка содержит всю информацию, необходимую для создания динамической рекламы. Ленты продуктов обеспечивают динамическую загрузку данных для поддержания каталога в актуальном состоянии.

В этом документе приводятся пошаговые инструкции по настройке каталога:

См. также статью Динамическая реклама и статью, посвященную настройке динамической рекламы в пользовательском интерфейсе.

Шаг 1. Создание каталога

Чтобы создать каталог для динамической рекламы, используйте следующий код:

use FacebookAds\Object\ProductCatalog;
use FacebookAds\Object\Fields\ProductCatalogFields;

$product_catalog = new ProductCatalog(null, <BUSINESS_ID>);

$product_catalog->setData(array(
  ProductCatalogFields::NAME => "Catalog",
));

$product_catalog->create();
from facebookads.adobjects.productcatalog import ProductCatalog

product_catalog = ProductCatalog(parent_id=<BUSINESS_ID>)

product_catalog[ProductCatalog.Field.name] = 'Catalog'

product_catalog.remote_create()
ProductCatalog catalog = new Business(<BUSINESS_ID>, context).createProductCatalog()
  .setName("Catalog")
  .execute();
String catalog_id = catalog.getId();
curl \
  -F 'name=Catalog' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<BUSINESS_ID>/product_catalogs

Для использования API каталога требуется соответствующий уровень доступа к API Marketing. Кроме того, необходимо принять Условия обслуживания в процессе создания первого каталога в Business Manager. См. справочник по каталогу.

Шаг 2. Настройка ленты

Лента — это набор позиций, загружаемых вашей компанией или получаемых от нее с целью обновления каталога продуктов. Под товарной позицией здесь понимается отдельный товар в вашем интернет-магазине, например SKU. Товары в каталоге могут быть представлены одной лентой продуктов или несколькими. Во втором случае каждая лента содержит товары для одной страны или от одного подразделения. См. справочник по ленте и справочник по позициям.

Создав каталог продуктов, используйте catalog id для создания и планирования ленты продуктов:

use FacebookAds\Object\ProductFeed;
use FacebookAds\Object\Fields\ProductFeedFields;
use FacebookAds\Object\Fields\ProductFeedScheduleFields;

$product_feed = new ProductFeed(null, <PRODUCT_CATALOG_ID>);

$product_feed->setData(array(
  ProductFeedFields::NAME => 'Test Feed',
  ProductFeedFields::SCHEDULE => array(
    ProductFeedScheduleFields::INTERVAL => 'DAILY',
    ProductFeedScheduleFields::URL =>'http://www.example.com/sample_feed.tsv',
    ProductFeedScheduleFields::HOUR => 22,
  ),
));

$product_feed->create();
from facebookads.adobjects.productfeed import ProductFeed

product_feed = ProductFeed(parent_id=<PRODUCT_CATALOG_ID>)

product_feed[ProductFeed.Field.name] = 'Test Feed'
product_feed[ProductFeed.Field.schedule] = {
    'interval': 'DAILY',
    'url': 'http://www.example.com/sample_feed.tsv',
    'hour': 22,
}

product_feed.remote_create()
ProductFeed productFeed = new ProductCatalog(<PRODUCT_CATALOG_ID>, context).createProductFeed()
  .setName("Test Feed")
  .setSchedule("{\"interval\":\"DAILY\",\"url\":\"http://www.example.com/sample_feed.tsv\",\"hour\":\"22\"}")
  .execute();
String product_feed_id = productFeed.getId();
curl \
  -F 'name=Test Feed' \
  -F 'schedule={ 
    "interval": "DAILY", 
    "url": "http:\/\/www.example.com\/sample_feed.tsv", 
    "hour": 22 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/product_feeds

Поддерживаемые форматы

Ленту продуктов следует предоставлять в одном из представленных ниже форматов.

Формат ленты Описание Пример ленты

CSV

Значения с разделителями-запятыми. Первая строка содержит заголовки столбцов. Поля, в которых используются запятые, следует заключать в "двойные кавычки".

Скачать (щелкните по ссылке правой кнопкой мыши и выберите команду «Сохранить ссылку как»)

TSV

Значения с разделением знаками табуляции. Первая строка содержит заголовки столбцов. Поля, в которых используются запятые, следует заключать в "двойные кавычки".

Скачать (щелкните по ссылке правой кнопкой мыши и выберите команду «Сохранить ссылку как»)

RSS XML

Как правило, создается системами автоматического формирования лент или веб-серверами. Список продуктов представлен в виде набора узлов XML, который начинается с тега объявления <?xml.

Скачать (щелкните по ссылке правой кнопкой мыши и выберите команду «Сохранить ссылку как»)

ATOM XML

Как правило, создается системами автоматического формирования лент или веб-серверами. Список продуктов представлен в виде набора узлов XML, который начинается с тега объявления <?xml.

Скачать (щелкните по ссылке правой кнопкой мыши и выберите команду «Сохранить ссылку как»)

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

Названия столбцов должны указываться на английском языке.

Имя Тип Описание

id


Максимальный размер: 100

string

Уникальный ID позиции. Может представлять разновидность товара. Если один и тот же ID встречается несколько раз, все экземпляры игнорируются. После импорта продукта сопоставляется с retailer_id.

availability

string

Имеется ли товар в наличии. Допустимые значения:


in stock — товар может быть отправлен немедленно.


out of stock — возобновление запасов не планируется.


preorder — будет доступен в будущем.


available for order — может быть отправлен в течение 1–2 недель.


discontinued — снят с производства.


condition

string

Состояние товара: new, refurbished или used

description


Максимальный размер: 5000

string

Краткое описание товара.

image_link


string

Ссылка на изображение товара, используемое в рекламе. В формате кольцевой галереи используются квадратные изображения с соотношением сторон 1:1 (600 x 600 пикселей), а в рекламе отдельных товаров — изображения с соотношением сторон 1,91:1 (1200 x 630 пикселей). Предоставьте соответствующие изображения.

link


string

Ссылка на сайт продавца, где можно купить товар.

title


Максимальный размер: 100

string

Название товара.

price

string

Цена товара и валюта. Валюта указывается в виде кода согласно стандарту ISO 4217, например 9.99 USD

gtin, mpn или brand


Максимальный размер: 70

string

gtin — глобальный номер товара (GTIN); может включать номер UPC, EAN, JAN или ISBN.



mpn — уникальный ID товара, назначенный изготовителем.



brand — наименование торговой марки.



Одно из полей (gtin, mpn или brand) должно быть задано обязательно.

Необязательные поля, диплинки на продукты

Диплинки должны указываться в ленте продуктов согласно спецификации App Links. Информация о диплинках в ленте продуктов имеет приоритет над любой другой информацией, собранной на основе метаданных App Links веб-краулером Facebook.

Если у вас уже есть информация о диплинках из App Links, предоставлять эти данные не нужно. Facebook использует информацию из App Links для правильного отображения диплинков. Чтобы узнать, как отображать диплинки в рекламе, обратитесь к разделу, посвященному шаблону рекламы, в статье Управление рекламой.

Имя Описание Пример

ios_url

Индивидуально настроенная схема для приложения iOS в виде URL

example-ios://electronic

ios_app_store_id

ID приложения для App Store

1234

ios_app_name

Отображаемое имя приложения

Electronic Example iOS

iphone_url

Индивидуально настроенная схема для приложения iPhone в виде URL

example-iphone://electronic

iphone_app_store_id

ID приложения для App Store

5678

iphone_app_name

Отображаемое имя приложения

Electronic Example iPhone

ipad_url

Индивидуально настроенная схема для приложения iPad

example-ipad://electronic

ipad_app_store_id

ID приложения для App Store

9010

ipad_app_name

Отображаемое имя приложения

Electronic Example iPad

android_url

Индивидуально настроенная схема для приложения Android в виде URL

example-android://electronic

android_package

Полное имя пакета для формирования намерения

com.electronic

android_app_name

Отображаемое имя приложения

Electronic Example Android

windows_phone_url

Индивидуально настроенная схема для приложения Windows Phone в виде URL

example-windows://electronic

windows_phone_app_id

ID приложения для магазина приложений в виде GUID

ee728e01-7727-4168-9c8f-85c7eef40112

windows_phone_app_name

Отображаемое имя приложения

Electronic Example Windows

Указывать информацию о приложении для iPhone или iPad следует только в том случае, если она отличается от информации об универсальном приложении для iOS.

Для объединения разновидностей товара используются наборы продуктов. В набор продуктов включаются товары, которые практически идентичны и отличаются лишь такими признаками, как цвет, материал, размер или узор. С их помощью проще рекламировать разновидности товара. Все элементы в наборе продуктов имеют одно и то же значение item_group_id. При показе динамической рекламы выбирается только один элемент из набора в соответствии с сигналом, полученным от Пикселя или из приложения.

Ниже перечислены необязательные поля.

Имя Тип Максимальный размер

additional_image_link


Максимальный размер: 2000

string

Можно указать до 10 дополнительных изображений в виде списка URL с разделителями-запятыми.

age_group

string

Возрастная группа, для которой предназначен товар. Допустимые значения: newborn, infant, toddler, kids и adult.

color


Максимальный размер: 100

string

Цвет товара.

expiration_date

ISO-8601 (ГГГГ-ММ-ДД)

Срок годности товара. Если срок годности товара истекает, он исключается в Facebook из всех групп продуктов и его реклама не показывается.

gender

string

Возможные значения: male, female и unisex

item_group_id

string

Для всех разновидностей одного товара указывайте одно и то же значение item_group_id. Например, «Красная рубашка поло» является разновидностью товара «Рубашка поло». После получения вашей ленты это значение будет сопоставлено в Facebook с retailer_product_group_id. При показе динамической рекламы выбирается только один элемент из набора в соответствии с сигналом, полученным от Пикселя или из приложения.

google_product_category


Максимальный размер: 250

string

Установленные значения из классификации товаров Google. Пример: Apparel & Accessories > Clothing > Dresses

material


Максимальный размер: 200

string

Материал, из которого изготовлен товар, например leather, denim или cotton.

pattern


Максимальный размер: 100

string

Узор или графическое изображение на товаре.

product_type


Максимальный размер: 750

string

Категория товара, установленная распространителем.

Пример в файле TSV:
Home & Garden > Kitchen & Dining > Appliances > Refrigerators

Пример в файле XML: <product_type>Home & Garden > Kitchen & Dining > Appliances > Refrigerators</product_type>

sale_price

string

Цена со скидкой на товар, участвующий в распродаже. Валюта должна указываться в виде кода согласно стандарту ISO 4217. Пример: 9,99 USD

sale_price_effective_date

ISO-8601 (ГГГГ-ММ-ДД)

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


2014-11-01T12:00-0300/2014-12-01T00:00-0300

shipping

string

BLOB-объект с ценами для разных стран и регионов. Названия регионов разделяются запятыми. Формат: COUNTRY:STATE:SHIPPING_TYPE:PRICE.

Пример:

US:CA:Ground:9.99 USD,US:NY:Air:15.99 USD

shipping_weight

string

Транспортировочный вес товара. Допускаются только следующие единицы измерения веса: lb, oz, g, kg. Пример: 3 lbs

size

string

Размер товара. Например, рубашка может иметь размер Small или XL.

custom_label_0


Максимальный размер: 100

string

Дополнительная информация о товаре.

custom_label_1


Максимальный размер: 100

string

Дополнительная информация о товаре.

custom_label_2


Максимальный размер: 100

string

Дополнительная информация о товаре.

custom_label_3


Максимальный размер: 100

string

Дополнительная информация о товаре.

custom_label_4


Максимальный размер: 100

string

Дополнительная информация о товаре.

Протестируйте ленту продуктов на странице отладчика ленты. Если вы используете файл CSV или TSV, скопируйте первую строку (с заголовками столбцов) и несколько строк с информацией о продуктах. Если вы используете файл XML, скопируйте несколько записей. Затем вставьте эти строки в текстовую область и нажмите кнопку «Проверка».

Шаг 3. Способы обновления

Обновлять информацию о продуктах можно следующими способами:

  1. Получение ленты продуктов по расписанию
  2. Загрузка ленты продуктов напрямую
  3. Обновление продукта

Получение ленты продуктов по расписанию

Facebook получает ленты продуктов из вашей системы по настроенному вами расписанию. Каждая операция получения приводит к полному обновлению ленты. Удаляются продукты, отсутствующие в файле, обновляются существующие и создаются новые.

use FacebookAds\Object\ProductFeed;
use FacebookAds\Object\Fields\ProductFeedFields;
use FacebookAds\Object\Fields\ProductFeedScheduleFields;

$product_feed = new ProductFeed(null, <PRODUCT_CATALOG_ID>);

$product_feed->setData(array(
  ProductFeedFields::NAME => 'Test Feed',
  ProductFeedFields::SCHEDULE => array(
    ProductFeedScheduleFields::INTERVAL => 'DAILY',
    ProductFeedScheduleFields::URL =>'http://www.example.com/sample_feed.tsv',
    ProductFeedScheduleFields::HOUR => 22,
  ),
));

$product_feed->create();
from facebookads.adobjects.productfeed import ProductFeed

product_feed = ProductFeed(parent_id=<PRODUCT_CATALOG_ID>)

product_feed[ProductFeed.Field.name] = 'Test Feed'
product_feed[ProductFeed.Field.schedule] = {
    'interval': 'DAILY',
    'url': 'http://www.example.com/sample_feed.tsv',
    'hour': 22,
}

product_feed.remote_create()
ProductFeed productFeed = new ProductCatalog(<PRODUCT_CATALOG_ID>, context).createProductFeed()
  .setName("Test Feed")
  .setSchedule("{\"interval\":\"DAILY\",\"url\":\"http://www.example.com/sample_feed.tsv\",\"hour\":\"22\"}")
  .execute();
String product_feed_id = productFeed.getId();
curl \
  -F 'name=Test Feed' \
  -F 'schedule={ 
    "interval": "DAILY", 
    "url": "http:\/\/www.example.com\/sample_feed.tsv", 
    "hour": 22 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/product_feeds

Ответ:

{ "id" : {PRODUCT_FEED_ID} }

См. справочник по расписанию обновления для ленты продуктов.


Загрузка ленты продуктов напрямую

Помимо получения ленты по расписанию, вы можете загружать ее вручную:

curl \
-F "url=http://www.example.com/sample_feed.xml" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

При необходимости параметру update_only можно присвоить значение true. При этом создаются новые элементы и обновляются существующие, но удаления элементов из ленты не происходит. Для обновления существующих элементов необходимо указать только id. Таким образом на получение и обработку файла будет тратиться меньше времени.

Предположим, вам нужно обновить только цены и индивидуально настроенные метки для 100 элементов в ленте путем загрузки напрямую. Предоставьте файл, содержащий только поля id, price и custom_label_0 для этих элементов, и используйте параметр update_only со значением true. Мы поддерживаем все перечисленные выше форматы файлов. Наиболее распространенные из них — TSV и CSV.

Примеры файлов:

Формат ленты Назначение Пример ленты

CSV

Обновление полей price и availability для подмножества элементов.

Скачать

TSV

Сброс поля sale_price и обновление поля custom_label_0 для подмножества элементов.

Скачать

См. справку по загрузке вручную.

Если в ленте продуктов возникают ошибки, обратитесь к справочнику по ошибкам при загрузке ленты продуктов.


Обновление отдельного продукта

Вы можете обновлять данные отдельного продукта в режиме реального времени. Включите обновляемые поля в запрос HTTP POST:

https://graph.facebook.com/catalog:{PRODUCT_CATALOG_ID}:{base64urlencode(retailer_id)}

Здесь retailer_id — ID продукта в ленте продуктов. Он должен быть закодирован по стандарту Base64 для URL. Информацию об изменяемых полях продуктов можно найти в справочнике по продуктам в каталоге продуктов.

Не обновляйте, не создавайте и не удаляйте отдельные продукты в ленте продуктов с помощью API. Это может привести к неправильному обновлению или удалению элементов, созданных с помощью API, так как такие операции в ленте не отслеживаются.

См. также следующие статьи: справочник по получению ленты по расписанию, справочник по загрузке ленты напрямую, справочник по ленте продуктов, Лента продуктов в каталоге, справочник по товарным позициям, Поиск продуктов в каталоге.

Массовая загрузка для больших каталогов

Этот способ позволяет загружать очень большие каталоги с миллионами товаров, ассортимент которых быстро меняется. Вы можете создавать, обновлять и удалять большое количество товаров с помощью одного запроса HTTP. Для этого в API имеется два эндпойнта:

  • POST [/{product_catalog_id}/batch](#send-batch-request) — отправка пакета запросов на создание, обновление и удаление элементов в каталоге;
  • GET [/{product_catalog_id}/check_batch_request_status](#batch-request-status) — проверка состояния запроса.

Обновление продуктов

Чтобы создать, обновить или удалить продукты в каталоге, выполните запрос HTTP POST, указав нужные изменения. За один вызов можно внести не более 500 изменений. Для каждого каталога можно выполнять не более 100 вызовов в час.

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$requests =  array(
    array(
        'method' => 'CREATE',
        'retailer_id' => 'retailer-product-id-123',
        'data' => array(
          'availability' => 'in stock',
          'brand' => 'Niky',
          'category' => 't-shirts',
          'currency' => 'USD',
          'description' => 'This is the product description.',
          'image_url' => 'http://www.images.example.com/t-shirts/1.png',
          'name' => 'My product name',
          'price' => '100',
          'url' => 'http://www.example.com/t-shirts/1.html',
        ),
    ),
);


$data = Api::instance()->call(
  '/'.<CATALOG_ID>.'/batch',
  RequestInterface::METHOD_POST,
  array('requests' => $requests))->getContent();
curl \
  -F 'requests=[ 
    { 
      "method": "CREATE", 
      "retailer_id": "retailer-product-id-123", 
      "data": { 
        "availability": "in stock", 
        "brand": "Niky", 
        "category": "t-shirts", 
        "currency": "USD", 
        "description": "This is the product description.", 
        "image_url": "http:\/\/www.images.example.com\/t-shirts\/1.png", 
        "name": "My product name", 
        "price": "100", 
        "url": "http:\/\/www.example.com\/t-shirts\/1.html" 
      } 
    } 
  ]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<CATALOG_ID>/batch

Вызов возвращает дескриптор, с помощью которого можно проверять состояние пакетного запроса. См. раздел Получение состояния запроса.

{
  "handles": ["AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I"]
}
Параметр Тип Описание

requests

Object

Объект JSON, содержащий все запросы.

requests.method

string

Возможные значения: CREATE, UPDATE или DELETE.

requests.retailer_id

string

id товара, заданный распространителем.

requests.data

Object

Объект JSON, содержащий поля и значения для товара. Если параметр method имеет значение CREATE, этот параметр должен содержать все обязательные для товара поля. Если параметр method имеет значение UPDATE, этот параметр может содержать любые поля. В Facebook обновляются только предоставленные поля.

При выполнении операций CREATE и UPDATE в поле data поддерживаются следующие значения:

  • additional_image_urls
  • availability
  • age_group
  • applinks
  • brand
  • category
  • color
  • condition
  • currency
  • custom_label_0
  • custom_label_1
  • custom_label_2
  • custom_label_3
  • custom_label_4
  • description
  • gender
  • gtin
  • image_url
  • manufacturer_part_number
  • name
  • pattern
  • price
  • product_type
  • sale_price
  • sale_price_end_date
  • sale_price_start_date
  • shipping
  • size
  • url

С помощью applinks можно указывать информацию о диплинках. Это аналогично использованию диплинков на продукты. Формат:

"applinks" : {
  "ios": [{
    "url":"example-ios://electronic",
    "app_store_id":42,
    "app_name":"Electronic Example iOS"
  }],
  "iphone": [{
    "url":"example-iphone://electronic",
     "app_store_id":43,
     "app_name":"Electronic Example iPhone"
  }],
  "ipad": [{
    "url":"example-ipad://electronic",
     "app_store_id":44,
     "app_name":"Electronic Example iPad"
  }],
  "android": [{
    "url":"example-android://electronic",
     "package":"com.electronic",
     "class":"com.electronic.Example",
     "app_name":"Electronic Example Android",
  }],
  "windows_phone": [{
    "url":"example-windows://electronic",
     "app_id":"64ec0d1b-5b3b-4c77-a86b-5e12d465edc0",
     "app_name":"Electronic Example Windows"
  }]
}

См. справочник по созданию каталога продуктов.

Получение состояния запроса

Чтобы получить состояние пакетного запроса, используйте дескриптор, возвращенный в результате вызова к {product_catalog_id}/batch:

curl -G \
-d 'handle=AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I'
-d 'access_token={ACCESS_TOKEN}'
https://graph.facebook.com/{API_VERSION}/{PRODUCT_CATALOG_ID}/check_batch_request_status

Ответ:

{
  "data": [
    {
      "handle": "AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26Q",
      "status": "finished",
      "errors_total_count": 1,
      "errors": [
        {
          "line": 0,
          "id": "retailer-4",
          "message": "Invalid value: Value passed at position 0 (id=retailer-199) is invalid: \"You cannot create a EntProductItem without required field Availability\""
        }
      ]
    }
  ]
}

См. статью Проверка состояния пакетного запроса к каталогу продуктов.

Правила для ленты продуктов

С помощью правил можно устранять ошибки в процессе загрузки ленты и предотвращать их. Предоставленные вами правила применяются в Facebook к каждой операции загрузки ленты. Для настройки правила нужно указать атрибут (столбец), к которому оно должно применяться, тип правила и параметры. Использовать правила с API Batch в настоящее время невозможно. Вы можете определить следующие типы правил:

  • Правило сопоставления — сравнивает атрибуты (названия столбцов) в файле ленты с распознаваемыми атрибутами.
  • Правило сопоставления значений — сравнивает поля (значения столбцов) в файле ленты с распознаваемыми полями.
  • Правило регистра букв — меняет регистр букв в поле. Например, все прописные буквы в описании меняются на строчные.

Правила сопоставления и правила сопоставления значений позволяют:

  • исправить опечатку типа gavailability на availability;
  • заменить неизвестное значение перечисления InStock известным in stock;
  • изменить формат цены с 45$ на 45.00 USD;
  • изменить Condition: Neu на Condition: New.

Правила регистра букв позволяют:

  • изменить описания с написанием прописными буквами BRAND NEW WITH LEATHER DETAIL... на Brand new with leather detail...;
  • заменить название FACEBOOK T-SHIRT названием Facebook T-shirt.

Рекомендуемые правила

Facebook предлагает рекомендуемые правила для исправления ошибок в ленте. Чтобы просмотреть рекомендуемые правила для сеанса загрузки, выполните указанные ниже действия.

  • Получите сеансы загрузки:
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads
  • Получите ошибки, возникшие во время сеанса загрузки:
https://graph.facebook.com/{API_VERSION}/{UPLOAD_SESSION_ID}/errors
  • Получите рекомендуемые правила для исправления ошибки загрузки:
curl -i -X GET 
 "https://graph.facebook.com/{API_VERSION}/{UPLOAD_ERROR_ID}/suggested_rules?access_token={ACCESS_TOKEN}

Пример ответа с рекомендацией выглядит так:

"data": [
  
    "attribute": "description",
    "type": "letter_case_rule",
    "params": [
      
        "key": "type",
        "value": "capitalize_first"
      
    ]
  
]

Подробную информацию можно найти в справочнике по API рекомендуемых правил.

Эндпойнты

Добавление правил к лентам

Чтобы применить правило к ленте, необходимо связать его с ней. Выполните вызов HTTP POST к следующему адресу:

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules?attribute={ATTRIBUTE}&amp;rule_type={RULE_TYPE}&amp;params={PARAMS}

Пример:

curl -i -X POST 
 -d "attribute=google_product_category" 
 -d "rule_type=mapping_rule" 
 -d "params=%7B'map_from'%3A%20'gcategory'%7D" 
 -d "access_token={ACCESS_TOKEN}" 
 "https://graph.facebook.com/v2.9/{PRODUCT_FEED_ID}/rules" 
 // sample response
 
  "id": "{RULE_ID}"

Элемент params должен иметь следующий формат:

Тип правила Формат Пример Примечания

Правило сопоставления

"map_from": <строка>

"map_from": "gavailability"

Правило сопоставления значений

<строка> : <строка>

"InStock": "in stock"

Для правила сопоставления значений максимальное число сопоставлений — 10, длина строк — 20.

Правило регистра букв

"type": "capitalize_first", "capitalize_all", "to_upper" или "to_lower"

"type": "capitalize_first"

Подробную информацию можно найти в справочнике по API правил для ленты продуктов.

Получение текущих правил

Чтобы получить список всех связанных с лентой правил, выполните вызов HTTP GET к следующему адресу:

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules

Подробную информацию можно найти в справочнике по API правил для ленты продуктов.

Изменение и удаление правил

Чтобы изменить связанное с лентой правило, выполните вызов HTTP POST. Чтобы удалить его, выполните вызов HTTP DELETE. Изменять можно только параметры. Если вы хотите изменить attribute или rule_type, нужно удалить правило и создать его заново.

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_RULE_ID}?params={PARAMS}

Подробную информацию можно найти в справочнике по API правил для ленты продуктов.

Далее: сбор сигналов аудитории и формирование аудитории продукта

Создание аудиторий продуктов