Начало работы с объявлениями из каталога Advantage+

Объявления из каталога Advantage+ позволяют создавать персонализированные объявления и таргетировать их на оптимальные аудитории, подобранные с учетом группы товаров.

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

Прежде чем начать

Чтобы создать кампанию с объявлениями из каталога Advantage+, вам понадобятся:

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

Шаг 1. Создание рекламной кампании

Информацию о создании рекламных кампаний см. в соответствующей документации.

На этом этапе нужно задать цель рекламы в поле objective. Для объявлений из каталога Advantage+ поддерживаются цели PRODUCT_CATALOG_SALES, CONVERSIONS, LINK_CLICKS и APP_INSTALLS. Для objective со значением CONVERSIONS, LINK_CLICKS или APP_INSTALLS поле promoted_object не требуется.

curl \
  -F 'name=Product Catalog Sales Campaign' \
  -F 'objective=PRODUCT_CATALOG_SALES' \
  -F 'promoted_object={"product_catalog_id":"<PRODUCT_CATALOG_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/campaigns

Шаг 2. Создание группы объявлений

Для продвижения товаров из определенной группы с помощью объявлений из каталога Advantage+ в поле promoted_object уровня группы объявлений необходимо указать product_set_id.

Кроме того, если целью optimization_goal является OFFSITE_CONVERSIONS, можно определить собственное событие конверсии для группы товаров, указав custom_event_type в поле promoted_object. В результате реклама будет таргетироваться на людей, инициировавших это событие в приложении или на сайте.

Например, если задать значение ADD_TO_CART, событием конверсии будет добавление в корзину. По умолчанию для custom_event_type устанавливается значение PURCHASE. Подробнее о стандартных событиях и значениях custom_event_type см. в разделе Отслеживание конверсий статьи, посвященной пикселю Meta.

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

  • присвойте параметру optimization_goal значение OFFSITE_CONVERSIONS;
  • присвойте параметру billing_event значение IMPRESSIONS.

Подробные сведения о допустимых сочетаниях значений optimization_goal и billing_event см. в статье Желаемый результат оптимизации и события биллинга.

Пример создания группы объявлений с оплатой за IMPRESSIONS и оптимизацией для OFFSITE_CONVERSIONS:

curl \
  -F 'name=Product Catalog Sales Adset' \
  -F 'bid_amount=3000' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ "geo_locations": {"countries":["US"]}, 
    "dynamic_audience_ids": ["<DYNAMIC_AUDIENCE_ID>"] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

Значение DYNAMIC_AUDIENCE_ID указывает на аудиторию товара. Параметр dynamic_audience_ids в вызове можно не указывать.

Для электронной коммерции из вызова можно убрать параметр dynamic_audience_ids и вместо него отправлять данные для таргетинга по поведению в параметрах product_audience_specs или excluded_product_audience_specs. Эти спецификации определяются с помощью тех же параметров, которые используются для создания аудитории товара.

Параметры

ИмяОписание

product_set_id

Строка цифр

Обязательный параметр.
Группа товаров, которая таргетируется на эту аудиторию.

inclusions

Объект JSON

Обязательный параметр.
Группа таргетируемых событий. Это поле необходимо задать по крайней мере один раз. В каждом поле указывается ровно одно событие event.

inclusions.retention_seconds

Целое число

Обязательный параметр.
Длительность нахождения аккаунта из Центра аккаунтов в аудитории в секундах.

inclusions.rule

Массив объектов

Обязательный параметр.
Правило пользовательской аудитории с сайта, в котором указывается одно событие event.

exclusions

Объект JSON

Необязательный параметр.
Группа событий, исключающих аккаунт из таргетинга.

exclusions.retention_seconds

Целое число

Обязательный параметр, если указано исключение.
Количество секунд для сохранения исключения.

exclusions.rule

Массив объектов

Обязательный параметр, если указано исключение.
Правило пользовательской аудитории с сайта, в котором указывается одно событие event.

Каждое правило должно содержать параметр event с оператором eq в качестве правила верхнего уровня либо части правила and верхнего уровня.

Ретаргетинг

В этом примере реклама таргетируется на людей, которые просматривали товары в последние 3–5 дней, но не купили их. Места размещения рекламы: мобильная лента и Audience Network. Создание этой аудитории:

curl \
  -F 'name=Product Catalog Sales Adset' \
  -F 'bid_amount=3000' \
  -F 'billing_event=LINK_CLICKS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "publisher_platforms": ["facebook","audience_network"], 
    "device_platforms": ["mobile"], 
    "geo_locations": {"countries":["US"]}, 
    "product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"ViewContent"}}}], 
        "exclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":259200,"rule":{"event":{"eq":"ViewContent"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":<PRODUCT_SET_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

Перекрестные или дополнительные продажи

Пример рекламы продуктов, которые пользователь не просматривал:

curl \
-F 'name=Case 1 Adset' \
-F 'bid_amount=3000' \
-F 'billing_event=IMPRESSIONS' \
-F 'status=ACTIVE' \
-F 'daily_budget=15000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting= { \
            "geo_locations": { \
            "countries":["US"], \
             }, \
            "interests":[ \
                {"id":6003397425735,"name":"Tennis"}, \
            ], \
        }' \
-F 'promoted_object={"product_set_id”:<PRODUCT_SET_ID>}' \
-F 'access_token=<ACCESS_TOKEN>’ \
https://graph.facebook.com/<API_VERSION>/act_<ACCOUNT_ID>/adsets

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

  • примените к аудитории товара правила событий, связанные с группой товаров А;
  • обеспечьте показ в рекламе товаров из группы Б, указав ее в качестве значения product_set_id на уровне рекламного креатива.

Например, компания хочет увеличить объем продаж женских сумочек из PRODUCT_SET_1, показывая их рекламу пользователям, которые проявили интерес к туфлям из PRODUCT_SET_2. Укажите PRODUCT_SET_2 (туфли) в качестве значения product_set_id в product_audience_specs, а PRODUCT_SET_1 (женские сумочки) — в качестве значения product_set_id в promoted_object.

curl \
  -F 'name=My cross sell ad set' \
  -F 'bid_amount=3000' \
  -F 'billing_event=LINK_CLICKS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "geo_locations": {"countries":["US"]}, 
    "product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_2_ID>", 
        "inclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"ViewContent"}}}], 
        "exclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_2_ID>", 
        "inclusions": [{"retention_seconds":259200,"rule":{"event":{"eq":"ViewContent"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_1_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets  

Укажите PRODUCT_SET_1 в качестве значения product_set_id в креативе.

  curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Таргетинг на широкую аудиторию

Помимо ретаргетинга и перекрестных продаж существующим клиентам, объявления из каталога Advantage+ можно использовать для таргетинга на широкие аудитории. Это позволяет продвигать соответствующие товары из каталога с учетом возраста, пола и других демографических характеристик. Таргетинг на широкую аудиторию в сочетании со ставками за конверсии вне сайта позволяет существенно расширить охват объявлений из каталога Advantage+.

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

  • создайте аудиторию на основании базовых демографических данных (например, женщины из России старше 18 лет);
  • укажите customOptimize для цели OFFSITE_CONVERSIONS с более сильными сигналами намерения, например Purchase или InitiateCheckout.

В этом примере мы создадим группу объявлений, ориентированную на женщин в возрасте от 30 до 65 лет, проживающих в США. Из их числа будут исключены те, кто совершал покупки в последние 10 дней. Мы используем ставку 8 долларов и оптимизацию OFFSITE_CONVERSIONS для событий PURCHASE.

curl \
  -F 'name=Broad Audience Targeting' \
  -F 'bid_amount=800' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "age_max": 65, 
    "age_min": 30, 
    "geo_locations": {"countries":["US"]}, 
    "genders": [2], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":864000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>","custom_event_type":"PURCHASE"}' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

Категории объявлений из каталога Advantage+

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

С категориями объявлений из каталога Advantage+ на соответствующей платформе появляются два новых параметра. С их помощью можно персонализировать креатив для покупателей, находящихся на ранних этапах принятия решения о покупке. С помощью этой функции вы можете создать второй, небольшой каталог креативов с изображениями, представляющими каждую категорию (помимо уже имеющегося у вас каталога с изображениями товаров), а мы будем сопоставлять категории товаров с людьми в ваших объявлениях так же, как сопоставляем с ними товары.

Категории объявлений из каталога Advantage+ можно использовать с любыми параметрами таргетинга в целях увеличения трафика, повышения конверсии или продаж из каталога. Если у вас нет высококачественных изображений для каких-либо категорий или брендов товаров, Facebook может автоматически сгенерировать коллаж размером 2 x 2 из самых популярных товаров в каждой группе.

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

В качестве примера в каталоге ниже в столбце Тип товара имеется пять уникальных значений. Рекламодатель может предоставить до пяти коллажей или изображений, представляющих стиль жизни: по одному для каждого из уникальных значений product_type. Тип товара является критерием категоризации, то есть именем поля в каталоге, которое используется для определения категорий. Значение поля каталога является значением критерия категории.

Категорию можно уникальным образом идентифицировать по следующим признакам:

  • ID каталога товаров;
  • критерий категоризации (бренд, тип товара или категория товаров Google);
  • значение критерия (извлекается из каталога).
Ритейлер Название Цена Тип товара Бренд Категория

prod_1

Футболка

25 долларов

Одежда

Бренд А

Категория А

prod_2

Толстовка

30 долларов

Одежда

Бренд Б

Категория А

prod_3

iPhone 6

800 долларов

Телефон

Бренд В

Категория Б

prod_4

Samsung Galaxy S5

750 долларов

Телефон

Бренд В

Категория Б

prod_5

Рисоварка

120 долларов

Бытовая техника

Бренд В

Категория В

prod_6

Диван

500 долларов

Для дома

Бренд Г

Категория Г

prod_7

Солнцезащитный крем

14 долларов

Здоровье и красота

Бренд Д

Категория Д

Каждую категорию (например, каждую группу товаров, определяемую уникальными значениями в одном из указанных выше столбцов) можно связать с объектами:

  • имя — понятное пользователям короткое название категории (до 40 символов);
  • описание — понятное пользователям описание категории (до 20 символов);
  • destination_uri — URL целевой страницы, которая открывается, когда пользователь нажимает категорию;
  • image_url — необязательный объект, URL изображения категории (если параметр image_url не указан, мы автоматически сгенерируем коллаж из наиболее популярных товаров этой категории).

На этапе показа рекламы мы динамически сопоставляем каждый аккаунт из Центра аккаунтов с категориями, на которые он, вероятнее всего, будет реагировать. Это делается на основании тех же моделей машинного обучения, которые сегодня используются в объявлениях из каталога Advantage+.

API Categories Management

Информация о категориях хранится на уровне каталога. Это означает, что разные объявления, которые рекламируют категории из одного каталога, будут использовать один набор объектов, так же как объявления, рекламирующие товары, используют общие объекты каталога. Для настройки рекламы в категориях мы поддерживаем различные параметры креатива.

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

Чтение

Запрос

  curl -G \
    -d 'fields=["criteria_value","name","description","destination_uri","image_url"]' \
    -d 'categorization_criteria=product_type' \
    -d 'filter={"price_amount":{"gt":1500}}' \ # optional
    -d 'access_token=<ACCESS_TOKEN>' \
    https://graph.facebook.com/v19.0/<PRODUCT_CATALOG_ID>/categories

Мы отправляем запрос для всех товаров (поддерживается необязательный фильтр) и находим первую 1000 категорий, упорядоченных по количеству товаров.

Пример ответа

{
  "data": [
    {
      "criteria_value": "clothes",
      "name": "Awesome clothes",
      "description": "Check out these awesome clothes!",
      "destination_uri": "http://www.example.com/clothes",
      "image_url": "http://www.example.com/clothes.jpg"
    },
    ...
    {
      "criteria_value": "shoes",
      "name": "Awesome shoes",
      "description": "Check out these awesome shoes!",
      "destination_uri": "http://www.example.com/shoes",
      "image_url": "http://www.example.com/shoes.jpg"
    }
  ]
}

Обновление

В данных можно указать информацию для нескольких категорий. Для каждой категории необходимо указать categorization_criteria и criteria_value. Поля name, description, destination_uri и image_url необязательны. При первом обновлении информации о категории необходимо указать destination_uri. Если вы хотите пропустить показ категории, достаточно задать пустой параметр destination_uri.

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

Запрос

curl \
  -F 'data=[{"categorization_criteria":"product_type","criteria_value":"product_type_value","name":"Name","description":"Description","destination_uri":"http://www.example.com/","image_url":"<IMAGE_URL>"}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/<lPRODUCT_CATALOG_ID>/categories

Создание объявлений

Создание объявлений для категорий объявлений из каталога Advantage+ аналогично созданию других видов объявлений из каталога Advantage+, однако выбор креатива несколько отличается. С помощью таких объявлений вы по-прежнему рекламируете группы товаров, однако разница заключается в том, что мы демонстрируем креативы для категорий.

curl \
  -F "name=Dynamic Category Ad Creative" \
  -F 'object_story_spec={"page_id": "<PAGE_ID>", "template_data": {"description": "{{category.description}}", "link": "https://www.example.com/", "message": "<MESSAGE>", "name": "{{category.name}}"}}' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'categorization_criteria=brand' \
  -F 'category_media_source=MIXED' \ # optional
  -F access_token=<ACCESS_TOKEN> \
  https://graph.facebook.com/v19.0/act_<ACCOUNT_ID>/adcreatives

Этот код создает рекламный креатив категории в формате кольцевой галереи:

Маркеры категорий

Поддерживаемые маркеры категорий:

  • category.name — название категории в продвигаемой группе товаров;
  • category.description — описание категории в продвигаемой группе товаров;
  • category.destination_uri — целевой URI категории;
  • category.min_price — минимальная цена для этой категории в продвигаемой группе товаров (эта информация берется из каталога).

Параметры

ИмяОписание

categorization_criteria

Указывает, какой тип категории необходимо использовать.
Значения:

  • brand
  • product_type
  • google_product_category

category_media_source

Указывает, как должна отображаться карточка галереи категории.
Значения:

  • mixed (используется по умолчанию)
    Используется изображение категории, если оно существует; в противном случае используется products_collage.
  • category
    Используется изображение категории. Пропустите эту категорию, если изображение для нее отсутствует.
  • products_collage
     Создается коллаж размером 2 x 2 с изображениями товаров этой категории.
  • products_slideshow
    Показ слайд-шоу товаров этой категории.

На этапе создания рекламного креатива категории мы ищем категории, доступные для отображения.

Примечание. Мы отфильтровываем категории без названия и целевого URL. Мы также отфильтровываем категории без изображений, если category_media_source = category.

Распространенные ошибки

Создать креатив не удастся, если количество допустимых категорий менее четырех (например, для использования категорий объявлений из каталога Advantage+ в качестве креатива для определенной кампании в соответствующем столбце файла ленты данных должно быть как минимум четыре уникальных значения).

Шаг 3. Предоставление рекламного креатива

Для создания креативов в шаблонах объявлений из каталога Advantage+ используются встроенные публикации страницы.

Создание шаблона креатива

Шаблон креатива для объявления из каталога Advantage+ создается так же, как обычный рекламный креатив. Отличие состоит в том, что можно добавить параметры шаблона, которые будут подставляться из данных ленты товаров во время выполнения.

Шаблон создается на основе объекта template_data в object_story_spec. При этом используются следующие поля:

ИмяОписаниеПринимает параметры шаблона?

call_to_action

Объект

Объект призыва к действию.
Поле value не указывается.

Нет

message

Строка

Рекламное сообщение, отображаемое в Instagram.

Да

link

Строка

Ссылка на ваш веб-сайт, которая используется для генерации подписи к объявлению.
Это поле всегда заменяется полем link из файла ленты данных, за исключением последней карточки рекламы с кольцевой галереей, для которой указывается ссылка из поля.
Примечание. Не указывайте URL Facebook.

Нет

name

Строка

Название или заголовок объявления, отображаемые в Instagram.

Да

description

Строка

Описание объявления, не отображаемое в Instagram.

Да

force_single_link

Логическое значение

Необязательный параметр.
Принудительное использование формата с одной ссылкой.
Если задано значение true, креатив будет представлять собой рекламу одного товара со ссылкой на страницу. Если значение не задано, будет использоваться реклама с кольцевой галереей. Facebook выберет оптимальное количество карточек для максимально эффективной рекламы.

Нет

show_multiple_images

Логическое значение

Отображение нескольких изображений галереи для одного товара.
Примечание. Параметрам force_single_link и multi_share_end_card необходимо присвоить значения true и false соответственно.

Нет

multi_share_end_card

Логическое значение

Необязательный параметр.
Значение по умолчанию — true.
Используйте это поле в формате кольцевой галереи. Если задано значение false, последняя карточка со значком страницы удаляется.

Нет

additional_image_index

Целое число

Указывает, какое изображение из массива дополнительных должно использоваться в объявлении. Значение представляет собой индекс в диапазоне от 0 до 19.
Если по указанному индексу нет изображения для этого товара, используется его основное изображение.
Примечание. URL дополнительных изображений должны быть уникальными: дублирующиеся URL удаляются, из-за чего изменяется порядок нумерации.

Нет

child_attachments

Массив

Позволяет предоставить одну или несколько статичных карточек в объявлении из каталога Advantage+ для формата кольцевой галереи.
Статичная карточка отображается либо до, либо после всех объявлений. Для каждой статичной карточки в child_attachments необходимо указать поле static_card со значением true.

Нет

image_layer_specs

AdCreativeLinkDataImageLayerSpecs

Определяет, какие преобразования используются для изображений, когда они отображаются пользователям в объявлении.
Для каждого слоя требуется один параметр AdCreativeLinkDataImageOverlaySpec, который определяет, как должен отображаться этот слой. Слои отображаются в том порядке, в котором они указаны в списке.
Примечание. Параметр AdCreativeLinkDataImageLayerSpec доступен с некоторыми ограничениями. Подробности уточняйте у представителя Facebook.

Нет

image_overlay_spec

AdCreativeLinkDataImageOverlaySpec

Определяет способ отображения наложений на изображение в динамическом объявлении.

Нет

preferred_image_tags

Массив

Если вы добавили к изображениям метки, укажите, какие изображения нужно использовать.
Изображения для всех товаров выбираются следующим образом: сначала получается первая метка в preferred_image_tags, для которой имеется по крайней мере одно изображение товара, а затем отображается первое изображение для этой метки. Если изображениям не назначены метки, мы показываем первое изображение.

Нет

Примеры

Создание шаблона кольцевой галереи объявления из каталога Advantage+

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Использование шаблона объявления из каталога Advantage+ с наложениями изображений

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}",
      "image_layer_specs": [
        {
          "layer_type": "image",
          "image_source": "catalog"
        },
        {
          "layer_type": "frame_overlay",
          "blending_mode": "lighten",
          "frame_image_hash": "<HASH>",
          "frame_source": "custom",
          "opacity": 100,
          "overlay_position": "center",
          "scale": 100
        },
        {
          "layer_type": "text_overlay",
          "content": {
            "type": "price"
          },
          "opacity": 100,
          "overlay_position": "top_left",
          "overlay_shape": "rectangle",
          "shape_color": "DF0005",
          "text_color": "FFFFFF",
          "text_font": "open_sans_bold"
        }
      ]
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

Создание шаблона объявления из каталога Advantage+ для одного товара с призывом к действию

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "force_single_link": true, 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Создание шаблона объявления из каталога Advantage+ с кольцевой галереей, в котором для объявления используется первое изображение из массива дополнительных изображений

Для предпросмотра объявления из каталога Advantage+ с additional_image_index необходимо передать в конечную точку /generatepreviews весь объект object_story_spec. Если передать только object_story_id, предпросмотр не генерируется.

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "additional_image_index": 0, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Создание шаблона объявления из каталога Advantage+ для одного товара с кольцевой галереей, все изображения для которой берутся из массива дополнительных изображений в каталоге

curl -X POST \
     -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
     -F 'object_story_spec={
           "page_id": <PAGE_ID>,
           "template_data": {
             "message": "Test {{product.name | titleize}}",
             "link": "<YOUR_LINK_URL>",
             "name": "Headline {{product.price}}",
             "description": "Description {{product.description}}",
             "multi_share_end_card": false,
             "force_single_link": true,
             "show_multiple_images": true,
           }
         }' \
     -F 'product_set_id=<PRODUCT_SET_ID>' \
     -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Создание шаблона объявления из каталога Advantage+ с кольцевой галереей, первая карточка в которой является статической карточкой с купоном

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "child_attachments": [ 
        { 
          "call_to_action": {"type":"SHOP_NOW"}, 
          "description": "30% off", 
          "image_hash": "<IMAGE_HASH>", 
          "link": "https:\/\/www.link.com\/coupon", 
          "name": "Coupon Static Card", 
          "static_card": true 
        }, 
        { 
          "call_to_action": {"type":"SHOP_NOW"}, 
          "description": "Description {{product.description}}", 
          "name": "Headline {{product.price}}" 
        } 
      ], 
      "link": "<LINK>", 
      "message": "Test Message" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Создание кольцевой галереи со слайд-шоу на основе шаблона объявления из каталога Advantage+

Каждая динамическая карточка в кольцевой галерее отображается в формате слайд-шоу. Каждое слайд-шоу включает в себя изображения, связанные с одним динамическим объявлением (если таких изображений несколько). Если динамическое объявление имеет только одно изображение, карточка отображается как статическое изображение.

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={
    "page_id": "PAGE_ID",
    "template_data": {
      "call_to_action": {"type":"SHOP_NOW"},
      "description": "Description {{product.description}}",
      "link": "LINK",
      "message": "Test {{product.name | titleize}}",
      "name": "Headline {{product.price}}",
      "format_option": "carousel_slideshows"
    }
  }' \
  -F 'product_set_id=PRODUCT_SET_ID' \
  -F 'access_token=ACCESS_TOKEN' \
  https://graph.facebook.com/v19.0/AD_ACCOUNT_ID/adcreatives

В ответ на эти вызовы возвращается ID нового шаблона креатива для объявления из каталога Advantage+.

{"id":"creative_id"}

Загрузка каталога

При загрузке каталога в каждом свойстве для каждого изображения можно указать метки в виде произвольного набора букв и цифр.

<listing>
 <hotel_id>hotel_1</hotel_id>
 ...
 <image>
 <url>https://media-cdn.tripadvisor.com/media/photo-o/05/ca/40/af/the-epiphany-a-joie-de.jpg (https://l.facebook.com/l.php?u=https%3A%2F%2Fmedia-cdn.tripadvisor.com%2Fmedia%2Fphoto-o%2F05%2Fca%2F40%2Faf%2Fthe-epiphany-a-joie-de.jpg&h=ATPTuLcCa7Vsnmn07cEVa0YseTFl1C2hOax9NezejmXDbR48w3CLdjLlwlpuGCRDQmuafQvk03ybGqfhk-2mBcH7xtuKAsnuuq9xKwBd8DwfuBMZkq3n1qX5MdychRKGy2bo2ax9BZQzgqVDY_AvC1EqE6aAdUEc)</url>
 <tag>exterior</tag>
 <tag>first image</tag>
 <tag>tree</tag>
 </image>
 <image>
 <url>http://www3.hilton.com/resources/media/hi/DFWANHH/en_US/img/shared/full_page_image_gallery/main/HH_exteriorview001_1270x560_FitToBoxSmallDimension_Center.jpg (http://l.facebook.com/l.php?u=http%3A%2F%2Fwww3.hilton.com%2Fresources%2Fmedia%2Fhi%2FDFWANHH%2Fen_US%2Fimg%2Fshared%2Ffull_page_image_gallery%2Fmain%2FHH_exteriorview001_1270x560_FitToBoxSmallDimension_Center.jpg&h=ATPTuLcCa7Vsnmn07cEVa0YseTFl1C2hOax9NezejmXDbR48w3CLdjLlwlpuGCRDQmuafQvk03ybGqfhk-2mBcH7xtuKAsnuuq9xKwBd8DwfuBMZkq3n1qX5MdychRKGy2bo2ax9BZQzgqVDY_AvC1EqE6aAdUEc)</url>
 <tag>skyline</tag>
 ...
 </image>
 ...
</listing>

Создание рекламного креатива

При создании рекламного креатива в object_story_spec можно передать массив preferred_image_tags.

curl \
 -F 'name=Ad Creative Test'\
 -F 'object_story_spec={
     "page_id": '<PAGE_ID>',
     "template_data": {
       "preferred_image_tags": ["skyline","exterior"],
       "call_to_action": {"type":"BOOK_TRAVEL"},
       "description": "{{hotel.description}}",
       "link": "<URL>",
        "message": "Book your stay in {{hotel.city}}",
        "name": "{{hotel.name | titleize}}"
     }
    }' \
 -F 'product_set_id=<PRODUCT_SET_ID>' \
 -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Включение видео для объявлений из каталога Advantage+

Основные действия для создания объявления из каталога Advantage+ те же. Чтобы включить видео, нужно добавить в каталог видеоданные. Изменения, которые необходимо внести при создании или обновлении каталога, перечислены ниже.

Шаг 1. Настройка каталога

В этом примере используется файл в формате XML. Для других форматов действия аналогичны.

При добавлении видео в объявление поддерживаются поля url и tag. В настоящее время для каждого товара поддерживается только одно видео.

<?xml version="1.0" encoding="utf-8"?>
<listings>
  <title>Test hotel feed</title>
  <listing>
    <hotel_id>hotel_1</hotel_id>
    <name>Test Hotel 1</name>
    <description>A very nice hotel</description>
    <brand>Facebook</brand>
    <address format="simple">
      <component name="addr1">180 Hamilton Ave</component>
      <component name="city">Palo Alto</component>
      <component name="city_id">12345</component>
      <component name="region">California</component>
      <component name="postal_code">94301</component>
      <component name="country">United States</component>
    </address>
    <latitude>37.4435997</latitude>
    <longitude>-122.1615219</longitude>
    <neighborhood>Palo Alto</neighborhood>
    <neighborhood>Silicon Valley</neighborhood>
    <margin_level>8</margin_level>
    <base_price>200.5 USD</base_price>
    <phone>+1 650 666-3311</phone>
    <star_rating>2.5</star_rating>
    <guest_rating>
      <score>7.8</score>
      <rating_system>tripAdvisor</rating_system>
      <number_of_reviewers>300</number_of_reviewers>
    </guest_rating>
    <guest_rating>
      <score>9.8</score>
      <rating_system>Hotels.com</rating_system>
      <number_of_reviewers>35000</number_of_reviewers>
    </guest_rating>
    <image>
      <url>https://media-cdn.tripadvisor.com/media/photo-o/05/ca/40/af/the-epiphany-a-joie-de.jpg</url>
      <tag>front view</tag>
      <tag>first image</tag>
    </image>
    <image>
      <url>http://www.jdvhotels.com/content/uploads/2014/06/72-1200x800.jpg</url>
      <tag>room</tag>
      <tag>bed</tag>
    </image>
    <loyalty_program>Starwood</loyalty_program>
    <url>http://www.jdvhotels.com/hotels/california/silicon-valley-hotels/the-epiphany-hotel/</url>
    <applink property="ios_url" content="example-ios://electronic"/>
    <applink property="ios_app_store_id" content="42"/>
    <applink property="ios_app_name" content="Electronic Example iOS"/>
*    <video>
      <url>http://example.com/some_video1.mp4</url>
      <tag>City</tag>
      <tag>Package</tag>
    </video>*
  </listing>
</listings>

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

Шаг 2. Получение метаданных видео для устранения неполадок с помощью API

С помощью API можно проверять загруженные данные. Для каждого элемента можно запросить метаданные видео.

Запрос
curl -i -X GET \
 "https://graph.intern.facebook.com/v19.0/1234567890?fields=videos_metadata.fields(video,tags,url)&access_token=<ACCESS TOKEN>"

Пример ответа

Шаг 3. Включение видео в креативе или рекламе

Информацию о включении видеоконтента на уровне продукта в рекламе см. в документе Создание рекламы с динамическим медиафайлом.

Отслеживание кликов и шаблоны

Если перед перенаправлением на URL страницы товара вы отслеживаете клики по ссылкам с помощью стороннего средства, в рекламном креативе можно использовать поле template_url_spec. Это позволяет добавить шаблон отслеживания кликов на уровне объявления, не задавая его жестко в коде в файле ленты товаров. Кроме того, с его помощью можно создавать шаблоны для глубоких ссылок.

В этом поле можно использовать динамические поля, например ID товара или URL его страницы. Если их значения могут содержать символы, недопустимые в URL, к ним следует применить URL-кодирование.

Пример

Пример создания шаблона для объявления из каталога Advantage+ с кольцевой галереей и настройкой template_url_spec:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<URL>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'template_url_spec={ 
    "ios": { 
      "app_store_id": "123", 
      "url": "example:\/\/link\/?nav=item.view&id={{product.retailer_id | urlencode}}&referrer=http:\/\/rover.example.com\/rover\/1\/711-198453-24755-9\/16%3Fitemid={{product.retailer_id | urlencode | urlencode}}" 
    }, 
    "web": { 
      "url": "http:\/\/clicktrack.com\/cm325?id={{product.retailer_id | urlencode}}&redirect_url={{product.url | urlencode | urlencode}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Использование данных файла ленты данных в шаблоне

При показе объявления Facebook заменяет содержимое раздела {{ }} соответствующими значениями из файла ленты данных. Допустимые значения шаблонов:

ИмяОписание

brand

Значение brand из файла ленты данных.

current_price

Форматированная цена со скидкой, если она задана для товара. Вы также можете указать даты начала и окончания распродажи для продукта. В этом случае в период действия распродажи в качестве значения current_price будет выводиться цена со скидкой. Если цена со скидкой не указана или распродажа завершилась, выводится значение из поля price.

description

Значение description из файла ленты данных.

name

Значение title из файла ленты данных.

price

Форматированное значение из столбца price (например, $1,234.56).

retailer_id

Значение id из файла ленты данных.

url

Значение link из файла ленты данных.

custom_label_0

Значение custom_label_0 из файла ленты данных.

custom_label_1

Значение custom_label_1 из файла ленты данных.

custom_label_2

Значение custom_label_2 из файла ленты данных.

custom_label_3

Значение custom_label_3 из файла ленты данных.

custom_label_4

Значение custom_label_4 из файла ленты данных.

Параметры

Некоторые значения шаблонов могут в любом порядке принимать параметры в следующем формате:

{{field option1 option2 ...}}

Доступные параметры:

ПараметрОписаниеПоддерживается значениями

raw

Символ валюты опускается.

price
current_price

strip_zeros

Если дробная часть содержит только нули, она опускается.

price
current_price

round

Цена округляется, дробная часть опускается.

Все поля цен

Преобразования

Значения в шаблонах можно преобразовывать следующим образом:

{{field | transform}}

Доступные преобразования:

ПреобразованияОписание

number_format

Представление числа в формате по умолчанию с запятой (",") в качестве разделителя разрядов и округлением до ближайшего целого (например, 1 234.56 -> 1,235). Форматируемое значение должно быть неформатированным числом (1 234, но не 1,234).

titleize

Замена строчных букв в начале слов прописными для заголовков (например, "упаковка" -> "Упаковка").

urlencode

Кодирование значения для URL.

Настройка обработки нажатий рекламы в мобильном приложении

Вы можете настроить необходимую обработку нажатий объявления при показе динамического креатива в нативном приложении Facebook. Для использования глубоких ссылок должны выполняться два требования:

  1. Нативное мобильное приложение (для iOS или Android), в которое должен переходить пользователь, должно поддерживать глубокие ссылки.
  2. Информацию о глубоких ссылках необходимо добавить в файл ленты данных или обеспечить к ней доступ через App Links.

Если оба эти требования выполняются, то при создании рекламного креатива вы можете задать способ обработки кликов объявления в поле applink_treatment.

ИмяОписание

web_only

Пользователь всегда перенаправляется на указанный URL.

deeplink_with_web_fallback

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

deeplink_with_appstore_fallback

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

Примеры

Создание шаблона для объявления из каталога Advantage+ с кольцевой галереей и призывом к действию, из которого выполняется переход в нативное приложение, если оно имеется, или на сайт в противном случае:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'applink_treatment=deeplink_with_web_fallback' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Создание шаблона для объявления из каталога Advantage+ с кольцевой галереей и включенными метками URL, из которого выполняется переход по глубокой ссылке в нативное приложение, если оно имеется, или в магазин приложений в противном случае:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'applink_treatment=deeplink_with_appstore_fallback' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Создание локализованного каталога для объявлений из каталога Advantage+

Подробнее см. в этой статье.

Шаг 4. Создание объявления

Теперь можно создать объявление. Оно ссылается на рекламный креатив.

Пример

curl -X POST \ -F 'name="My Ad"' \ -F 'adset_id="<AD_SET_ID>"' \ -F 'creative={ "creative_id": "<CREATIVE_ID>" }' \ -F 'status="PAUSED"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/ads
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const Ad = bizSdk.Ad; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_ACCOUNT_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'My Ad', 'adset_id' : '<adSetID>', 'creative' : {'creative_id':'<adCreativeID>'}, 'status' : 'PAUSED', }; const ads = (new AdAccount(id)).createAd( fields, params ); logApiCallResult('ads api call complete.', ads);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\Ad; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_ACCOUNT_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'My Ad', 'adset_id' => '<adSetID>', 'creative' => array('creative_id' => '<adCreativeID>'), 'status' => 'PAUSED', ); echo json_encode((new AdAccount($id))->createAd( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.ad import Ad from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'My Ad', 'adset_id': '<adSetID>', 'creative': {'creative_id':'<adCreativeID>'}, 'status': 'PAUSED', } print AdAccount(id).create_ad( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_ACCOUNT_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createAd() .setName(\"My Ad\") .setAdsetId(<adSetID>L) .setCreative( new AdCreative() .setFieldId(\"<adCreativeID>\") ) .setStatus(Ad.EnumStatus.VALUE_PAUSED) .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) ads = ad_account.ads.create({ name: 'My Ad', adset_id: '<adSetID>', creative: {'creative_id':'<adCreativeID>'}, status: 'PAUSED', })

Поздравляем! Вы создали свое первое объявление из каталога Advantage+. Можете начинать его показ.

При публикации в качестве историй в Instagram объявления из каталога Advantage+ обрезаются до квадрата (1:1) независимо от исходных размеров изображения.

Дальнейшие действия

Предпросмотр объявления из каталога Advantage+

С помощью конечной точки Ad Previews можно сгенерировать предпросмотр динамического креатива. Чтобы выполнить предпросмотр рекламы с кольцевой галереей, укажите параметр product_item_ids или несколько значений product_item_ids.

curl -X GET \ -d 'ad_format="DESKTOP_FEED_STANDARD"' \ -d 'product_item_ids=[ "<PRODUCT_ITEM_ID>" ]' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/<CREATIVE_ID>/previews
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdCreative = bizSdk.AdCreative; const AdPreview = bizSdk.AdPreview; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_CREATIVE_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'ad_format' : 'DESKTOP_FEED_STANDARD', 'product_item_ids' : ['<productItemID>'], }; const previewss = (new AdCreative(id)).getPreviews( fields, params ); logApiCallResult('previewss api call complete.', previewss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdCreative; use FacebookAds\Object\AdPreview; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_CREATIVE_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'ad_format' => 'DESKTOP_FEED_STANDARD', 'product_item_ids' => array('<productItemID>'), ); echo json_encode((new AdCreative($id))->getPreviews( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adcreative import AdCreative from facebook_business.adobjects.adpreview import AdPreview from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'ad_format': 'DESKTOP_FEED_STANDARD', 'product_item_ids': ['<productItemID>'], } print AdCreative(id).get_previews( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_CREATIVE_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdCreative(id, context).getPreviews() .setAdFormat(AdPreview.EnumAdFormat.VALUE_DESKTOP_FEED_STANDARD) .setProductItemIds(\"[\\"<productItemID>\\"]\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_creative = FacebookAds::AdCreative.get(id) previewss = ad_creative.previews({ fields: { }, ad_format: 'DESKTOP_FEED_STANDARD', product_item_ids: ['<productItemID>'], })

Параметры

ИмяОписание

product_item_ids

Массив строк

Список ID товаров в Facebook или маркеров ID товаров в кодировке Base64 для URL.
Каждый маркер имеет формат catalog:{catalog_id}:{base64urlencode(retailer_id)}.

Получение статистики по рекламе товара

Чтобы получить статистику по товару, выполните вызов GET к конечной точке insights. В параметр fields добавьте значение product_id.

Будет показана статистика по всем товарам из имеющихся в аккаунте групп товаров, которые отображаются в объявлении из каталога Advantage+.

Пример

В примере выше возвращаются значения clicks, actions и impressions для каждого product_id.

Запрос
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdsInsightsFields;
use FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsDatePresetValues;
use FacebookAds\Object\Values\AdsInsightsBreakdownsValues;

$account = new AdAccount('act_<AD_ACCOUNT_ID>');

$fields = array(
  AdsInsightsFields::ACCOUNT_NAME,
  AdsInsightsFields::IMPRESSIONS,
  AdsInsightsFields::ACTIONS,
);

$params = array(
  'date_preset' => AdsInsightsDatePresetValues::LAST_WEEK,
  'action_breakdowns' => array(
    AdsInsightsActionBreakdownsValues::ACTION_TYPE,
  ),
  'breakdowns' => array(
    AdsInsightsBreakdownsValues::PRODUCT_ID,
  ),
);

$stats = $account->getInsights($fields, $params);
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adsinsights import AdsInsights

account = AdAccount('act_<AD_ACCOUNT_ID>')

fields = [
    AdsInsights.Field.account_name,
    AdsInsights.Field.impressions,
    AdsInsights.Field.actions,
]

params = {
    'date_preset': 'last_week',
    'actions_group_by': ['action_type'],
    'breakdowns': [
        AdsInsights.Breakdowns.product_id,
    ],
}

stats = account.get_insights(fields=fields, params=params)
APINodeList<AdsInsights> adsInsightss = new AdAccount(act_<AD_ACCOUNT_ID>, context).getInsights()
  .setDatePreset(AdsInsights.EnumDatePreset.VALUE_LAST_WEEK)
  .setActionBreakdowns("[\"action_type\"]")
  .setBreakdowns("[\"product_id\"]")
  .requestField("account_name")
  .requestField("impressions")
  .requestField("actions")
  .execute();
curl -G \
  -d 'date_preset=last_week' \
  -d 'action_breakdowns=["action_type"]' \
  -d 'breakdowns=["product_id"]' \
  -d 'fields=account_name,impressions,actions' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/insights
Ответ
{
 "data": [ 
   {
      "account_id": "123456", 
      "product_id": "60750", 
      "date_start": "2015-02-03", 
      "date_stop": "2015-02-03", 
      "impressions": 880, 
      "clicks": 8, 
      "actions": [ 
        {
          "action_type": "link_click", 
          "value": 6
        }, 
        {
          "action_type": "offsite_conversion.other", 
          "value": 5
        },  
        {
          "action_type": "offsite_conversion", 
          "value": 5
        }
      ], 
      "account_name": "My Account"
    }, 
 ], 
...
}

Получение комментариев и отметок "Нравится"

Вы можете получать комментарии, отметки "Нравится" и product_id для опубликованного объявления из каталога Advantage+. Выполните показанный ниже вызов GET, указав post_id. Значение post_id представляет собой идентификатор effective_object_story_idрекламного креатива в формате PageID_PostID.

Примечание. С помощью этой конечной точки нельзя получать комментарии из Instagram.

curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/<POST_ID>/dynamic_posts

Эта конечная точка возвращает объекты динамических публикаций.

Получив динамические публикации, вы можете извлечь значения comments, likes, product_id и child_attachments для формата кольцевой галереи, если они имеются.

Граница контекста dynamic_posts не возвращает рекламу с кастомизированными креативами для различных мест размещения.