Реклама авиарейсов: каталог и лента

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

  1. Загрузка CSV- или XML-файлов с лентами авиарейсов.
  2. Автоматическое заполнение каталога на основе событий.
  3. Объединение ленты авиарейсов с автоматически генерируемыми данными об авиарейсах.

Создать каталог авиарейсов и управлять им можно в Commerce Manager.

  1. Создание каталога авиарейсов.
  2. Загрузка ленты Facebook.
  3. Создание групп товаров на основе каталога авиарейсов.
  4. Связывание каталога с источниками событий.

Лента авиарейсов: загрузка авиарейсов на Facebook

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

Поддерживаемые форматы лент авиарейсов

CSV: пример и описание

Пример файла CSV | Пример файла TSV (упрощенный)

  • Первая строка должна содержать список выбранных имен полей в том порядке, в котором будут указаны значения. В последующих строках будут представлены соответствующие значения для каждого авиарейса.
  • Поля, содержащие пробелы или запятые, должны заключаться в двойные кавычки ("").
  • Вложенные поля или поля со множественными значениями, например image, могут представляться с использованием значений в кодировке JSON либо в виде группой "упрощенных" столбцов с простым текстом, обозначенных с помощью синтаксиса пути JSON (например, image[0].url, image[0].tag[0], image[0].tag[1]). Оба способа записи можно использовать в одном и том же файле.

XML: пример и описание

Пример файла XML

  • Корневой XML-узел <listings> включает в себя набор узлов <listing>, каждый из которых представляет авиарейс.
  • Файл должен начинаться с допустимого тега объявления <?xml.

Анализатор лент автоматически определяет кодировки UTF8, UTF16 или UTF32. При обнаружении неожиданной последовательности байтов используется кодировка по умолчанию — LATIN1. Текст в значениях полей может быть на любом языке, но названия правил должны быть написаны на английском языке в точности, как показано ниже.

Поддерживаемые поля: реклама авиарейсов

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

Список полей для локализованных каталогов см. здесь.

Имя и тип поляОписание

origin_airport

Тип: строка

Обязательный параметр.

Код IATA аэропорта отправления. Поддерживаются коды IATA для аэропортов и городов. Для проверки кодов используйте средство поиска кодов IATA. Совет. Чтобы проверка прошла успешно, рекомендуем убрать из этого уникального идентификатора пробелы.

Example: SFO.

destination_airport

Тип: строка

Обязательный параметр.

Код IATA аэропорта прибытия. Поддерживаются коды IATA для аэропортов и городов. Для проверки кодов используйте средство поиска кодов IATA. Совет. Чтобы проверка прошла успешно, рекомендуем убрать из этого уникального идентификатора пробелы.

Example: JFK.

image

Тип: объект

Обязательный параметр.

Максимальное количество объектов: 20.

Данные об изображениях для этого авиарейса. Для авиарейса можно предоставить до 20 изображений. Каждое изображение содержит два поля: url и tag. С одним изображением может быть связано несколько меток. Необходимо предоставить хотя бы один элемент image (изображение). Размер каждого изображения не должен превышать 4 МБ.

См. параметры объектов image.

description

Тип: строка

Обязательный параметр.

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

Краткое описание маршрута.

url

Тип: строка

Обязательный параметр, только если не указана глубокая ссылка на уровне объявления. Можно использовать поле Deep Link в Ads Manager или template_url_spec в API.

Ссылка на внешний сайт, на котором можно получить информацию об авиарейсе. Приоритет имеет глубокая ссылка на уровне объявления.

origin_city

Тип: строка

Название города вылета.

Пример: San Francisco.

destination_city

Тип: строка

Название города прибытия.

Пример: New York.

price

Тип: строка

Цена билета. Значение должно указываться вместе с валютой.

Пример: 99.99 USD.

applink

Тип: элемент

Добавьте глубокую ссылку на страницу сведений о гостинице в мобильном приложении, используя App Links. Вы можете указать глубокие ссылки (в порядке убывания значимости):

  1. На уровне объявления при помощи template_url_spec.
  2. В ленте при помощи объекта Applink.
  3. Путем добавления на сайт метатегов App Links.

one_way_price

Тип: строка

Цена билета в одну сторону. Значение должно указываться вместе с валютой.

Пример: 99.99 USD.

priority

Тип: целое число

Приоритет авиарейса. Возможные варианты: от 0 (самый низкий) до 5 (самый высокий). Если это значение не указано, авиарейс имеет приоритет 0.

Пример: 5.

status

Тип: строка

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


Пример: active.


Примечание. Некоторые партнерские платформы могут синхронизировать позиции со статусом Перенос, который аналогичен статусу archived.

Раньше это поле называлось visibility. Предыдущее название до сих пор поддерживается, но мы рекомендуем использовать новое.

Параметры объектов image

Имя и тип поляОписание

url

Тип: строка

Обязательный параметр.

URL изображения авиарейса. Изображения должны соответствовать перечисленным ниже условиям.

  • Все изображения должны быть в формате .jpg, .gif или .png.

  • Для рекламы с кольцевой галереей и рекламных подборок: изображения выводятся в квадратном формате (1:1). Минимальный размер изображения — 500 × 500 пикселей. Для оптимального качества рекомендуется размер 1 024 x 1 024 пикселей.

  • Для рекламы с одним изображением: изображения выводятся с соотношением сторон 1,91:1. Минимальный размер изображения — 500 x 500 пикселей. Рекомендуется использовать изображения размером 1 200 × 628 пикселей.

tag

Тип: строка

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

Примеры:

  • Fitness Center
  • Swimming Pool

Необязательно. Метка INSTAGRAM_STANDARD_PREFERRED позволяет рекламодателю отметить определенное изображение в ленте как используемое по умолчанию в Instagram. В метках учитывается регистр символов.

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

Название и тип поляОписание

ios_url

тип: строка

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

Пример: example-ios://electronic

ios_app_store_id

тип: строка

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

Пример: 1234

ios_app_name

тип: строка

Название приложения (подходящее для показа пользователям).

Пример: Electronic Example iOS

iphone_url

тип: строка

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

Пример: example-iphone://electronic

iphone_app_store_id

тип: строка

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

Пример: 5678

iphone_app_name

тип: строка

Название приложения (подходящее для показа пользователям).

Пример: Electronic Example iPhone

ipad_url

тип: строка

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

Пример: example-ipad://electronic

ipad_app_store_id

тип: строка

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

Пример: 9010

ipad_app_name

тип: строка

Название приложения (подходящее для показа пользователям).

Пример: Electronic Example iPad

android_url

тип: строка

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

Пример: example-android://electronic

android_package

тип: строка

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

Пример: com.electronic

android_class

тип: строка

Полностью определенное название класса Activity для формирования намерений.

Пример: com.electronic.Example

android_app_name

тип: строка

Название приложения (подходящее для показа пользователям).

Пример: Electronic Example Android

Глубокие ссылки на товары

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

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

Автоматическая генерация данных об авиарейсах: автоматическое добавление маршрутов в каталог с использованием информации о событиях

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

Чтобы включить эту функцию, отправьте к своему каталогу авиарейсов запрос POST и задайте для параметра generate_items_from_events значение true.

curl \
  -F 'flight_catalog_settings={generate_items_from_events:1}' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CATALOG_ID>

У маршрутов, которые добавляются автоматически, нет изображения (которое демонстрировалось бы в объявлении). Таким образом, необходимо предоставить стандартное изображение, которое будет использоваться для всех автоматически добавляемых авиарейсов.

curl \
  -F 'fallback_image_url=http://example.com/some.image_1.jpg' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CATALOG_ID>

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

curl \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<VERSION>/<CATALOG_ID>/flights

Объединенный вариант: использование лент авиарейсов в сочетании с автоматически генерируемыми данными об авиарейсах

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

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

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

Создание каталога авиарейсов через API

Справочная документация

Каталог авиарейсов представляет собой контейнер вашего ассортимента авиарейсов. Чтобы использовать API, убедитесь, что у вас есть нужный уровень доступа к API Marketing и вы приняли пользовательское соглашение при создании первого каталога в Business Manager.

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

curl -X POST \
  -F 'name="Test Flight Catalog"' \
  -F 'vertical="flights"' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v10.0/{business-id}/owned_product_catalogs

Загрузка ленты авиарейсов через API

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

Фильтрация каталога авиарейсов по группам авиарейсов

Справочная документация

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

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

use FacebookAds\Object\ProductSet;
use FacebookAds\Object\Fields\ProductSetFields;

$flight_set = new ProductSet(null, <PRODUCT_CATALOG_ID>);

$flight_set->setData(array(
  ProductSetFields::NAME => 'Test Flight Set',
  ProductSetFields::FILTER => array(
    'origin_airport' => array(
      'eq' => 'LHR',
    ),
  ),
));

$flight_set->create();
from facebookads.adobjects.productset import ProductSet

flight_set = ProductSet(None, <PRODUCT_CATALOG_ID>)

flight_set[ProductSet.Field.name] = 'Test Flights Set'
flight_set[ProductSet.Field.filter] = {
    'origin_airport': {
        'eq': 'SFO',
    },
}

flight_set.remote_create()
curl \
  -F 'name=Test Flight Set' \
  -F 'filter={"origin_airport":{"eq":"LHR"}}' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/product_sets

Параметр filter содержит следующие операторы и данные:

ОператорыТип фильтра

i_contains

Содержит подстроку. Оператор нечувствителен к регистру.

i_not_contains

Не содержит подстроку. Оператор нечувствителен к регистру.

contains

Содержит подстроку. Оператор нечувствителен к регистру.

not_contains

Не содержит подстроку. Оператор нечувствителен к регистру.

eq

Равно. Оператор нечувствителен к регистру.

neq

Не равно. Оператор нечувствителен к регистру.

lt

Меньше. Только числовые поля.

lte

Меньше или равно. Только числовые поля.

gt

Больше. Только числовые поля.

gte

Больше или равно. Только числовые поля.

ДанныеФильтруемые данные

origin_airport

Код IATA аэропорта отправления.

destination_airport

Код IATA аэропорта прибытия.

price

Цена билета. Указывается в центах.

description

Краткое описание маршрута.