Anuncios de vuelos: catálogos y listas

Si quieres promocionar tu inventario de vuelos en Facebook, debes compartir la información correspondiente mediante la plataforma. Para ello, crea un catálogo de vuelos y rellénalo con las rutas correspondientes. Puedes rellenar tu catálogo y mantenerlo actualizado de tres formas.

  1. Cargar archivos CSV o XML de "listas de vuelos" con el inventario de vuelos
  2. Utilizar la actividad de eventos para rellenar automáticamente el catálogo
  3. Combinar una lista de vuelos con los vuelos generados automáticamente

Puedes crear y administrar tus catálogos de vuelos en Commerce Manager:

  1. Crear un catálogo de vuelos
  2. Subir la lista a Facebook
  3. Crear conjuntos de productos fuera del catálogo de vuelos
  4. Asociar el catálogo a los orígenes de eventos

Lista de vuelos: subir tus vuelos a Facebook

Una lista de vuelos es un archivo que contiene tu inventario. Cada línea o artículo del archivo representa una sola ruta. Puedes usar una o varias listas de vuelos, siempre que el conjunto de todas ellas abarque tu inventario al completo.

Formatos de la lista de vuelos compatibles

CSV > Ejemplo - Descripción

CSV de muestra | TSV de muestra (aplanado)

  • La primera fila debe enumerar los nombres de campos elegidos en el mismo orden en que se proporcionarán los valores. A continuación, las filas siguientes proporcionarán los valores correspondientes de cada vuelo.
  • Los campos que contienen espacios en blancos o comas deben ir entre "comillas dobles".
  • Los campos anidados o con varios valores, como image, se pueden representar con valores cifrados mediante JSON o un conjunto de columnas “aplanadas” de texto sin formato etiquetadas con sintaxis de ruta JSON (por ejemplo, image[0].url, image[0].tag[0] y image[0].tag[1]). Se pueden utilizar ambas convenciones indistintamente en el mismo archivo.

XML > Ejemplo - Descripción

XML de muestra

  • Un nodo XML raíz <listings> contiene un conjunto de nodos <listing>, cada uno de los cuales representa un vuelo.
  • El archivo debe comenzar con una etiqueta de declaración <?xml válida.

El analizador de listas detecta automáticamente las codificaciones de texto UTF8, UTF16 o UTF32, y adopta de forma predeterminada la codificación LATIN1 si encuentra una secuencia de bytes inesperada. Puedes proporcionar texto en cualquier idioma en los valores de los campos, pero los nombres de estos deben facilitarse tal y como se indica a continuación, en inglés.

Campos admitidos: anuncios de vuelos

Los siguientes campos admitidos se han diseñado para los artículos que añades al catálogo de productos.

En el caso de catálogos localizados, consulta los campos admitidos para anuncios de vuelos.

Campo y tipoDescripción

origin_airport

Tipo: cadena

Obligatorio.

Código IATA del origen. Se admiten códigos IATA de aeropuertos y ciudades. Utiliza la búsqueda de códigos IATA para validar tus códigos IATA. Sugerencia: Para mejorar el rendimiento, evita utilizar un espacio para este campo de identificador único.

Ejemplo: SFO

destination_airport

Tipo: cadena

Obligatorio.

Código IATA del destino Se admiten códigos IATA de aeropuertos y ciudades. Utiliza la búsqueda de códigos IATA para validar tus códigos IATA. Sugerencia: Para mejorar el rendimiento, evita utilizar un espacio para este campo de identificador único.

Ejemplo: JFK

image

Tipo: objeto

Obligatorio.

Máximo de elementos: 20.

Datos de imagen para este vuelo. Puedes proporcionar hasta 20 imágenes del vuelo. Cada imagen contiene dos campos: url y tag. Puedes tener varias etiquetas asociadas a una imagen. Debes proporcionar un campo image como mínimo. Tamaño máximo por imagen: 4 MB.

Consulta Parámetros del objeto “image”

description

Tipo: cadena

Obligatorio.

Tamaño máximo: 5000

Párrafo breve en el que se describe la ruta.

url

Tipo: cadena

Obligatorio solo si no especificas un enlace profundo en el nivel de anuncio. Puedes utilizar el campo Deep Link en el administrador de anuncios, o bien template_url_spec en la API.

Enlace al sitio externo donde puedes ver el vuelo. Si se especifica un enlace profundo en el nivel de anuncio, este tendrá prioridad.

origin_city

Tipo: cadena

Nombre de la ciudad de origen.

Ejemplo: San Francisco

destination_city

Tipo: cadena

Nombre de la ciudad de destino.

Ejemplo: New York

price

Tipo: cadena

Precio del vuelo. Debes especificar el valor con una divisa.

Ejemplo: 99.99 USD

applink

Tipo: elemento

Establece un enlace profundo a la página de detalles del vuelo en tu aplicación para móviles mediante App Links. Puedes especificar enlaces profundos (por orden de prioridad, de la más alta a la más baja) de las siguientes formas:

  1. en el nivel de anuncio mediante template_url_spec
  2. aquí en la lista mediante un objeto “Applink”
  3. mediante la adición de metaetiquetas de App Links a tu sitio web.

one_way_price

Tipo: cadena

Precio del vuelo de ida. Debes especificar el valor con una divisa.

Ejemplo: 99.99 USD

priority

Tipo: entero

Prioridad del vuelo. Valor de 0 (prioridad más baja) a 5 (prioridad más alta). Un vuelo sin este valor tendrá una prioridad igual a 0.

Ejemplo: 5

status

Tipo: cadena

Controla si un artículo está activo o archivado en el catálogo. Solo los artículos activos aparecen en los anuncios, las tiendas y otros canales. Valores admitidos: active y archived. Los artículos están activos de manera predeterminada. Obtén más información sobre cómo archivar artículos.


Ejemplo: active


Nota: Es posible que algunas plataformas de socios, como Shopify, sincronicen los artículos con tu catálogo con un estado denominado provisional, que se comporta igual que archived.

Anteriormente, este campo se llamaba visibility. Aunque todavía admitimos el nombre antiguo, te recomendamos que utilices el nuevo.

Parámetros del objeto “image”

Nombre y tipo del campoDescripción

url

Tipo: cadena

Obligatorio.

URL de la imagen del vuelo. Sigue estas especificaciones de imagen:

  • Todas las imágenes deben tener el formato JPG, GIF o PNG.

  • En el caso de los anuncios por secuencia y los de colección, las imágenes se muestran en formato cuadrado (1:1). El tamaño mínimo de imagen es de 500 × 500 píxeles. Para obtener la máxima calidad, recomendamos el formato de 1024 x 1024 px.

  • En el caso de los anuncios de una sola imagen, estas presentan una relación de aspecto de 1.91:1. El tamaño de imagen mínimo es de 500 x 500 px. Se recomienda un tamaño de 1200 x 628 píxeles para conseguir la mejor calidad de imagen.

tag

Tipo: cadena

Cadena que representa el contenido de la imagen. Puede haber varias etiquetas asociadas con una imagen.

Ejemplos:

  • Fitness Center
  • Swimming Pool

Opcional. INSTAGRAM_STANDARD_PREFERRED: permite a los anunciantes etiquetar una imagen específica en su sección de noticias como la imagen predeterminada que se utilizará para Instagram. Esta etiqueta distingue mayúsculas de minúsculas.

Si tienes aplicaciones independientes para iPhone y iPad, proporciona la información específica para estos dispositivos. Si no las tienes, especifica únicamente la información para iOS.

Nombre y tipo del campoDescripción

ios_url

Tipo: string

Esquema personalizado destinado a la aplicación para iOS.

Ejemplo: example-ios://electronic.

ios_app_store_id

Tipo: string

Identificador de la aplicación en App Store.

Ejemplo: 1234.

ios_app_name

Tipo: string

Nombre de la aplicación (debe ser apropiado para mostrarse).

Ejemplo: Electronic Example iOS.

iphone_url

Tipo: string

Esquema personalizado destinado a la aplicación para iPhone.

Ejemplo: example-iphone://electronic.

iphone_app_store_id

Tipo: string

Identificador de la aplicación en App Store.

Ejemplo: 5678.

iphone_app_name

Tipo: string

Nombre de la aplicación (debe ser apropiado para mostrarse).

Ejemplo: Electronic Example iPhone.

ipad_url

Tipo: string

Esquema personalizado destinado a la aplicación para iPhone.

Ejemplo: example-ipad://electronic.

ipad_app_store_id

Tipo: string

Identificador de la aplicación en App Store.

Ejemplo: 9010.

ipad_app_name

Tipo: string

Nombre de la aplicación (debe ser apropiado para mostrarse).

Ejemplo: Electronic Example iPad.

android_url

Tipo: string

Esquema personalizado destinado a la aplicación para Android.

Ejemplo: example-android://electronic.

android_package

Tipo: string

Nombre completo de un paquete para la generación de intención.

Ejemplo: com.electronic.

android_class

Tipo: string

Nombre completo de una clase “Activity” para la generación de intención.

Ejemplo: com.electronic.Example.

android_app_name

Tipo: string

Nombre de la aplicación (debe ser apropiado para mostrarse).

Ejemplo: Electronic Example Android.

Enlaces profundos de productos

Proporcionar enlaces profundos en una sección de noticias de acuerdo con la especificación de App Links. La información de enlaces profundos de la sección de noticias tiene prioridad frente a cualquier información que Facebook recopile con metadatos de App Links con el rastreador web.

Si ya tienes información de enlaces profundos de App Links, no es necesario que especifiques estos datos. Facebook usa la información de App Links para mostrar el enlace profundo correcto. Para mostrar enlaces profundos en tus anuncios, consulta Anuncios de catálogo de Advantage+, Plantilla de anuncio.

Generar vuelos automáticamente: añadir rutas al catálogo de forma automática a partir de la actividad de los eventos

Facebook puede añadir automáticamente rutas a tu catálogo en función de la actividad de los eventos de la aplicación y del píxel. Cada vez que se recibe un evento con una ruta que todavía no existe en el catálogo, esta puede añadirse de forma automática. Esto te permite utilizar anuncios de vuelos para todos tus vuelos sin tener que utilizar listas.

Para activar esta opción, envía una solicitud POST a tu catálogo de vuelos y establece generate_items_from_events en true.

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

Las rutas que se añaden de forma automática no incluyen ninguna imagen para mostrar en el anuncio. Por lo tanto, tienes que facilitar una imagen genérica para usarla con todas las rutas que se generen automáticamente.

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

Tu catálogo se empieza a rellenar en cuanto se asocia a un píxel o una aplicación y recibe eventos de anuncios de vuelos. Para verificarlo, consulta el catálogo.

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

Uso combinado: utilizar las listas de vuelos con los vuelos generados automáticamente

Puedes combinar la carga de una lista de vuelos con las rutas generadas de forma automática. Al combinar estas opciones podrás utilizar los anuncios de vuelos para todos tus vuelos y, al mismo tiempo, facilitar imágenes personalizadas para las rutas más importantes a través de una lista de vuelos.

Para ello, solo tienes que combinar los pasos para subir una lista de vuelos y rellenar automáticamente el catálogo.

Las secciones siguientes solo son relevantes si quieres administrar tus catálogos con esta API.

Crear un catálogo de vuelos mediante la API

Documentos de referencia

Un catálogo de vuelos es un contenedor para tu inventario. Para utilizar la API de catálogo, asegúrate de tener el nivel de acceso a la API de marketing adecuado y de haber aceptado las Condiciones del servicio. Para ello, crea tu primer catálogo a través de Business Manager.

Para crear un catálogo de vuelos para anuncios de vuelos, establece vertical en 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

Subir las listas de vuelos mediante la API

Una vez que hayas creado el catálogo, debes subir tus listas de vuelos a Facebook. Utiliza la API para crear un objeto “feed” para cada lista que quieras subir. Admitimos subidas programadas y directas.

Filtrar el catálogo para obtener conjuntos de vuelos

Documentos de referencia

Un conjunto de vuelos es un subconjunto del catálogo. Si quieres configurar anuncios de vuelos, debes crear, como mínimo, un conjunto de vuelos.

Los conjuntos de vuelos se definen por los filtros que se aplican al catálogo. Por ejemplo, puedes crear un conjunto de vuelos que incluya todas las rutas que salen de Londres. Ten en cuenta que también puedes crear un conjunto de vuelos sin aplicar ningún filtro. En este caso, el conjunto incluirá todos los vuelos de tu catálogo.

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

El parámetro filter anterior está formado por los operadores y datos siguientes:

OperadoresTipo de filtro

i_contains

Contiene subcadena. No distingue mayúsculas de minúsculas.

i_not_contains

No contiene subcadena. No distingue mayúsculas de minúsculas.

contains

Contiene subcadena. No distingue mayúsculas de minúsculas.

not_contains

No contiene subcadena. No distingue mayúsculas de minúsculas.

eq

Igual a. No distingue mayúsculas de minúsculas.

neq

No es igual a. No distingue mayúsculas de minúsculas.

lt

Menor que. Solo para campos numéricos.

lte

Menor o igual que. Solo para campos numéricos.

gt

Mayor que. Solo para campos numéricos.

gte

Mayor o igual que. Solo para campos numéricos.

DatosDatos que se filtran

origin_airport

Código IATA del origen.

destination_airport

Código IATA del destino.

price

Precio del vuelo. El precio se indica en céntimos de la divisa correspondiente.

description

Párrafo breve en el que se describe la ruta.