Fluganzeigen – Katalog und Feed

Um deine Flugelemente auf Facebook zu bewerben, musst du Facebook Informationen zu deinen Flügen mitteilen. Hierfür erstellst du einen Flugkatalog und trägst Flüge ein. Es gibt drei Möglichkeiten, den Katalog zu füllen und aktuell zu halten.

  1. CSV- oder XML-Dateien für Flug-Feeds mit deinen Flugelementen hochladen
  2. Event-Aktivitäten nutzen, um den Katalog automatisch zu füllen
  3. Flug-Feed mit automatisch generierten Flügen kombinieren

Du kannst deine Flugkataloge in deinem Commerce Manager erstellen und verwalten:

  1. Flugkatalog erstellen
  2. Feed auf Facebook hochladen
  3. Produktpaletten aus dem Flugkatalog erstellen
  4. Katalog deinen Event-Quellen zuordnen

Flug-Feed – Hochladen deiner Flüge auf Facebook

Ein Flug-Feed ist eine Datei, die deine Flugelemente enthält. Hierbei steht jede Zeile bzw. jedes Element in der Datei für eine Route. Du kannst einen oder mehrere Flug-Feeds verwenden, solange alle Feeds gemeinsam alle Flugelemente enthalten.

Unterstützte Formate für Flug-Feeds

CSV > Beispiel – Beschreibung

CSV-Beispiel | TSV-Beispiel (Flat File)

  • Die erste Zeile muss die gewählten Feldnamen in der Reihenfolge enthalten, in der die Werte angegeben werden. Die darauffolgenden Zeilen geben dann die jeweiligen Werte für jeden Flug an.
  • Felder mit Leerzeichen oder Kommas sollten in "doppelte Anführungszeichen" gesetzt werden.
  • Verschachtelte Felder oder Felder mit mehreren Werten, wie z. B. image, können mithilfe von JSON-codierten Werten oder durch eine Gruppe reiner Textspalten im Flat-Format dargestellt werden, die mit der JSON-Pfadsyntax, wie z. B. image[0].url, image[0].tag[0] oder image[0].tag[1], gekennzeichnet wurden. Du kannst beide Konventionen in einer Datei verwenden.

XML > Beispiel – Beschreibung

XML-Beispiel

  • Ein <listings>-XML-Stamm-Node umfasst eine Gruppe von <listing>-Nodes, von denen jeder für einen Flug steht.
  • Die Datei muss mit einem gültigen <?xml-Deklarations-Tag beginnen.

Der Feed-Parser erkennt automatisch UTF8-, UTF16- oder UTF32-Textkodierungen und verwendet standardmäßig LATIN1, wenn eine unerwartete Byte-Sequenz erkannt wird. Du kannst Text in Feldwerten in jeder beliebigen Sprache angeben. Die Feldnamen müssen jedoch wie unten beschrieben auf Englisch angegeben werden.

Unterstützte Felder – Flight Ads

Die folgenden unterstützten Felder sind für Elemente vorgesehen, die du deinem Produktkatalog hinzufügst.

Lokalisierte Kataloge findest du in den unterstützten Feldern für Flights Ads.

Feld und TypBeschreibung

origin_airport

Typ: String

Erforderlich.

Der IATA-Code des Startflughafens. Unterstützt IATA-Codes für Flughäfen und Städte. Verwende die IATA-Codesuche, um deine IATA-Codes zu überprüfen. Tipp: Für eine bessere Performance solltest du kein Leerzeichen für dieses eindeutige ID-Feld verwenden.

Beispiel: SFO

destination_airport

Typ: String

Erforderlich.

Der IATA-Code des Zielflughafens. Unterstützt IATA-Codes für Flughäfen und Städte. Verwende die IATA-Codesuche, um deine IATA-Codes zu überprüfen. Tipp: Für eine bessere Performance solltest du kein Leerzeichen für dieses eindeutige ID-Feld verwenden.

Beispiel: JFK

image

Typ: Objekt

Erforderlich.

Max. Anzahl: 20

Bilddaten für diesen Flug. Du kannst bis zu 20 Bilder für den Flug angeben. Jedes Bild enthält zwei Felder: url und tag. Mit jedem Bild können mehrere Tags verknüpft werden. Du musst mindestens ein image bereitstellen. Jedes Bild kann bis zu 4 MB groß sein.

Siehe Parameter des Objekts „image“

description

Typ: String

Erforderlich.

Max. Größe: 5.000

Eine kurze Beschreibung der Route.

url

Typ: String

Nur erforderlich, wenn du keinen Deep Link auf Anzeigenebene angibst. Du kannst das Feld Deep Link im Werbeanzeigenmanager oder template_url_spec in der API verwenden).

Link zur externen Webseite, auf der der Flug gebucht werden kann. Wenn ein Deep Link auf Werbeanzeigenebene angegeben wurde, hat dieser Vorrang.

origin_city

Typ: String

Der Name der Stadt, in der der Startflughafen liegt.

Beispiel: San Francisco

destination_city

Typ: String

Der Name der Stadt, in der der Zielflughafen liegt.

Beispiel: New York

price

Typ: String

Preis des Flugs. Du musst den Wert mit einer Währung angeben.

Beispiel: 99.99 USD

applink

Typ: Element

Deep Link direkt zur Seite mit Flugdetails in deiner mobilen App mithilfe von App-Links. Du kannst Deep Links in folgender Rangfolge angeben (von höchster zu niedrigster):

  1. auf Werbeanzeigenebene mithilfe von template_url_spec
  2. hier im Feed mithilfe eines „applink“-Objekts
  3. durch Hinzufügen von App-Link-Meta-Tags zu deiner Webseite

one_way_price

Typ: String

Preis für den Einzelflug. Du musst den Wert mit einer Währung angeben.

Beispiel: 99.99 USD

priority

Typ: Ganzzahl

Priorität des Flugs. Wert zwischen 0 (niedrigste Priorität) und 5 (höchste Priorität). Flüge ohne diesen Wert haben eine Priorität von 0.

Beispiel: 5

status

Typ: String

Damit kontrollierst du, ob ein Artikel in deinem Katalog aktiv oder archiviert ist. Nur aktive Artikel werden unseren Nutzer*innen in deinen Werbeanzeigen, Shops oder auf anderen Kanälen angezeigt. Unterstützte Werte: active, archived. Standardmäßig sind die Artikel aktiviert. Weitere Informationen findest du unter Artikel archivieren.


Beispiel: active


Hinweis: Bei einigen Partner-Plattformen wie Shopify heißt der Status möglicherweise Staging, aber wenn dein Katalog synchronisiert wird, verhält sich dieser genauso wie archived.

Dieses Feld hieß zuvor visibility. Wir unterstützen weiterhin die ehemalige Feldbezeichnung. Dennoch empfehlen wir dir, die neue Bezeichnung zu verwenden.

Parameter des Objekts „image“

Feldname und -typBeschreibung

url

Typ: String

Erforderlich.

URL des Flugbilds. Beachte die folgenden Spezifikationen für Bilder:

  • Alle Bilder müssen im Dateiformat JPG, GIF oder PNG vorliegen.

  • Für Carousel Ads und Collection Ads: Bilder werden im quadratischen Format (1:1) dargestellt. Die minimale Bildgröße beträgt 500 x 500 Pixel. Wir empfehlen 1.024 x 1.024 Pixel für die beste Qualität.

  • Für Single Image Ads: Bilder werden in einem Seitenverhältnis von 1,91:1 angezeigt. Die minimale Bildgröße beträgt 500 x 500 Pixel. Wir empfehlen 1.200 x 628 Pixel für die beste Qualität.

tag

Typ: String

Ein String, der beschreibt, was auf dem Bild zu sehen ist. Du kannst mehrere Tags mit einem Bild verknüpfen.

Beispiele:

  • Fitness Center
  • Swimming Pool

Optional. INSTAGRAM_STANDARD_PREFERRED: Werbekunden können damit ein bestimmtes Bild in ihrem Feed als Standardbild für Instagram markieren. Beim Tag für die Markierung wird zwischen Groß- und Kleinschreibung unterschieden.

Wenn du für iPhone und iPad separate Apps anbietest, gib iPhone- bzw. iPad-spezifische Informationen an. Andernfalls musst du nur iOS-Informationen angeben.

Feldname und -typBeschreibung

ios_url

Typ: string

Ein benutzerdefiniertes Schema für die iOS-App.

Beispiel: example-ios://electronic

ios_app_store_id

Typ: string

Die App-ID für den App Store.

Beispiel: 1234

ios_app_name

Typ: string

Der Name der App (geeignet zur Anzeige).

Beispiel: Electronic Example iOS

iphone_url

Typ: string

Ein benutzerdefiniertes Schema für die iPhone-App.

Beispiel: example-iphone://electronic

iphone_app_store_id

Typ: string

Die App-ID für den App Store.

Beispiel: 5678

iphone_app_name

Typ: string

Der Name der App (geeignet zur Anzeige).

Beispiel: Electronic Example iPhone

ipad_url

Typ: string

Ein benutzerdefiniertes Schema für die iPhone-App.

Beispiel: example-ipad://electronic

ipad_app_store_id

Typ: string

Die App-ID für den App Store.

Beispiel: 9010

ipad_app_name

Typ: string

Der Name der App (geeignet zur Anzeige).

Beispiel: Electronic Example iPad

android_url

Typ: string

Ein benutzerdefiniertes Schema für die Android-App.

Beispiel: example-android://electronic

android_package

Typ: string

Ein vollständig qualifizierter Paketname für die Absichtsgenerierung.

Beispiel: com.electronic

android_class

Typ: string

Ein vollständig qualifizierter Aktivitätsklassenname für die Absichtsgenerierung.

Beispiel: com.electronic.Example

android_app_name

Typ: string

Der Name der App (geeignet zur Anzeige).

Beispiel: Electronic Example Android

Deep Links für Produkte

Gib Deep Links im Feed an und befolge dabei die App-Links-Spezifikation. Deep Link-Informationen im Feed haben Vorrang vor Informationen, die Facebook mit App-Links-Metadaten mit dem Webcrawler sammelt.

Wenn du bereits Deep Link-Informationen aus App-Links hast, musst du diese Daten nicht angeben. Facebook verwendet Informationen aus App-Links, um den richtigen Deep Link anzuzeigen. Wie du Deep Links in deinen Anzeigen einblendest, erfährst du in Advantage+ Catalog Ads, Anzeigenvorlage.

Flüge automatisch generieren – Routen mithilfe von Event-Aktivitäten automatisch zum Katalog hinzufügen

Facebook kann Routen basierend auf Pixel- und App-Event-Aktivitäten automatisch zu deinem Katalog hinzufügen. Hierbei wird jedes Mal, wenn ein Event mit einer Route eingeht, die noch nicht im Katalog enthalten ist, die entsprechende Route automatisch hinzugefügt. So kannst du Fluganzeigen für alle Flüge verwenden, ohne dich um Flug-Feeds kümmern zu müssen.

Um diese Funktion zu aktivieren, sende eine POST-Anfrage an deinen Flugkatalog und setze generate_items_from_events auf true.

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

Automatisch hinzugefügte Routen verfügen über kein Bild, das in der Werbeanzeige angezeigt werden könnte. Deshalb musst du ein allgemeines Bild angeben, das für automatisch generierte Routen verwendet werden kann.

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

Sobald dein Katalog mit einem Pixel und/oder einer App verknüpft ist und Events für Fluganzeigen empfängt, wird dein Katalog gefüllt. Du kannst diesen Vorgang überprüfen, indem du den Katalog abfragst.

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

Kombiniert – Flug-Feeds mit automatisch generierten Flügen nutzen

Du kannst manuell hochgeladene Flug-Feeds mit automatisch generierten Routen kombinieren. Hierdurch kannst du Fluganzeigen für all deine Flüge verwenden und trotzdem über einen Flug-Feed individuelle Bilder für die wichtigsten Routen bereitstellen.

Wenn du beide Optionen nutzen möchtest, kombiniere einfach die Schritte zum Hochladen eines Flug-Feeds mit den Schritten zum automatischen Füllen deines Katalogs.

Die folgenden Abschnitte sind nur relevant, wenn du deine Kataloge mithilfe dieser API verwalten möchtest.

Flugkatalog mit der API erstellen

Referenzdokumentation

Ein Flugkatalog ist ein Container für deine Flugelemente. Um die Catalog API zu verwenden, benötigst du die erforderlichen Marketing API-Zugriffsberechtigungen und musst die Nutzungsbedingungen akzeptieren, indem du deinen ersten Katalog über den Business Manager erstellst.

Um einen Flugkatalog für Flight Ads zu erstellen, setze vertical auf 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

Flug-Feeds über die API hochladen

Sobald du den Katalog erstellt hast, musst du deine(n) Flug-Feed(s) auf Facebook hochladen. Verwende die API, um ein Feed-Objekt für jeden Feed zu erstellen, den du hochladen möchtest. Wir unterstützen geplante und direkte Uploads.

Flugkatalog zu Flugauswahl filtern

Referenzdokumentation

Eine Flugauswahl ist eine Untergruppe deines Katalogs. Um Fluganzeigen einzurichten, musst du mindestens eine Flugauswahl erstellen.

Flugauswahlen werden durch Filter definiert, die auf den Flugkatalog angewendet werden. Du kannst beispielsweise eine Flugauswahl mit allen Routen erstellen, die in London starten. Du kannst auch ohne Filter eine Flugauswahl erstellen. In diesem Fall enthält die Flugauswahl alle Flüge deines Katalogs.

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

Der filter-Parameter besteht aus folgenden Operatoren und Daten:

OperatorenFiltertyp

i_contains

Enthält Substring. Beim Operator muss die Groß- und Kleinschreibung nicht beachtet werden.

i_not_contains

Enthält keinen Substring. Beim Operator muss die Groß- und Kleinschreibung nicht beachtet werden.

contains

Enthält Substring. Beim Operator muss die Groß- und Kleinschreibung nicht beachtet werden.

not_contains

Enthält keinen Substring. Beim Operator muss die Groß- und Kleinschreibung nicht beachtet werden.

eq

Gleich. Beim Operator muss die Groß- und Kleinschreibung nicht beachtet werden.

neq

Ungleich. Beim Operator muss die Groß- und Kleinschreibung nicht beachtet werden.

lt

Kleiner als. Nur für numerische Felder.

lte

Kleiner oder gleich. Nur für numerische Felder.

gt

Größer als. Nur für numerische Felder.

gte

Größer oder gleich. Nur für numerische Felder.

DatenDie gefilterten Daten

origin_airport

Der IATA-Code des Startflughafens.

destination_airport

Der IATA-Code des Zielflughafens.

price

Preis des Flugs. Der Preis wird in Cent angegeben.

description

Eine kurze Beschreibung der Route.