Mobile App-Gebote sind zurzeit nur für ausgewählte Publisher verfügbar.

Server-zu-Server-Gebote

Die interne Mediation ist nicht öffentlich verfügbar

Interne Gebote mit Audience Network befinden sich aktuell in der Geschlossenen Beta-Phase und sind nicht öffentlich verfügbar. Sollte sich dies ändern, werden wir dies bekanntgeben.

Du kannst alternativ über eine der Mediationsplattformen, mit denen wir eine Partnerschaft unterhalten, auf Gebote im Audience Network zugreifen.

Auf dieser Seite:

Das Facebook Audience Network unterstützt Gebote in mobilen Apps und in mobilen Webseiten. Gebote in mobilen Apps können entweder vom mobilen Client zu unserem Server oder von deinem Server zu unserem Server integriert werden. In dieser Übersicht werden die allgemeinen Konzepte von App-Geboten beschrieben.

Einführung

Was sind App-Gebote?

Mit App-Geboten können Publisher eine unparteiische und offene Auktion ihres Werbeanzeigenbestands eröffnen, indem sie jede Werbegelegenheit mehreren Bedarfsquellen in Echtzeit bereitstellen. Jede Bedarfsquelle kann für jede einzelne Impression bieten und diese gewinnen, wenn das Gebot hoch genug ist.

Warum App-Gebote?

  • Echtzeit-Auktionen sind eine Optimierungsmöglichkeit für alle Werbeanzeigenanfragen.
  • App-Gebote ermöglichen Einblicke in den tatsächlichen Wert deines Werbeanzeigenbestands.
  • Einfache Wartung und weniger benötigte Ressourcen für den Werbebetrieb.

Integrationsarchitekturen

App-Gebote werden über einen Endpunkt angeboten, der das Open Real-Time Bidding-Protokoll (ORTB) implementiert, um Gebote auf einzelne Impression-Möglichkeiten zu ermöglichen. Das Audience Network-SDK ist für App-Gebote erforderlich, um die folgenden Aktionen durchzuführen:

  • Abrufen der buyeruid ( bidderToken im Audience Network-SDK). Dieses Token ist ein Pflichtfeld in der Gebotsanfrage. Es ist pro Nutzer*in und App individuell und nicht für andere Nutzer*innen oder Apps gültig.
  • Laden der Gebotsantwort und Anzeigen einer Werbeanzeige, wenn der*die Bieter*in die Auktion gewinnt.
  • Erfassen von Impressionen und Klicks.

Wichtige Schritte im Gebotsablauf

  1. Erhalte das Bieter*in-Token. Das Audience Network benötigt diesen verdeckten String, um auf eine Gebotsanfrage zu antworten.
  2. Sende die Gebotsanfrage und erhalte die Gebotsantwort. Dies ist die Hauptinteraktion mit dem Gebotsendpunkt. In diesem Schritt sendest du eine Anfrage für ein ORTB-Gebot und anschließend erhältst du entweder eine gültige Gebotsantwort oder einen Fehler.
  3. Führe die Auktion durch. Führe eine Auktion aus und wähle einen Gewinner unter den Gebotsantworten aus. Die meisten Auktionen vergleichen Echtzeitgebote mit geschätzten CPMs von anderen Nachfragequellen (z. B. basierend auf durchschnittlichen CPMs aus der Vergangenheit), weil einige Nachfragequellen keine Echtzeitgebote unterstützen. Auktionen können über eine der folgenden Komponenten durchgeführt werden:
    • Einen internen Server mit deiner eigenen Auktionslogik
    • Einen Auktionsserver eines Drittanbieters
    • Den Client auf dem Gerät des*der Nutzer*in
  4. Rufe die Werbeanzeige mit der Gebotsantwort ab. Wenn das Audience Network die Auktion gewinnt, lade die Werbeanzeige, indem du das adm -Feld von der Gebotsantwort an das Audience Network-SDK auf dem Gerät des*der Nutzer*in übergibst. Beachte, dass das adm -Feld nicht die Werbeanzeige selbst enthält, sondern Informationen, mit denen das SDK die Werbeanzeige vom Audience Network abrufen kann.

Integrationstypen

Die eigentliche Auktion (der dritte Schritt im oben beschriebenen Gebotsablauf) kann entweder auf dem Client oder auf dem Server gehostet werden. Die folgenden drei Integrationstypen werden unterstützt:

Server-zu-Server-Integrationsarchitektur

Bei der Server-zu-Server-Integration ruft ein Auktionsserver den Gebotsendpunkt des Facebook Audience Network und alle anderen Bedarfsquellen auf, um Gebotsantworten zu erhalten. Anschließend führt der Auktionsserver die Auktion durch und wählt das Siegergebot aus. Der Auktionsserver ist entweder ein interner Server mit deiner eigenen Auktionslogik oder ein Server eines Drittanbieters, der mit den Audience Network-App-Geboten integriert ist. Auf diese Weise kannst du die Ressourcen und das verfügbare Netzwerk des Servers nutzen, um die Gebotsendpunkte der Bedarfsquellen aufzurufen. Außerdem kannst du Änderungen an den Endpunktintegrationen vornehmen, ohne zwangsläufig die Clients aktualisieren zu müssen.


Integration mit externem Werbeanzeigenserver

Mit einem externem Werbeanzeigenserver kannst du die heutige Welt der Wasserfallvermittlung mit App-Geboten kombinieren. Dazu brauchst du eine Server-zu-Server-Integration mit den Bedarfsquellen, die App-Gebote unterstützen. Anschließend wird der Auktionsgewinner an die Wasserfall-Vermittlungsplattform übergeben, die den Wasserfall ausführt und den endgültigen Gewinner auswählt. Diese Integration dient als Überbrückung zwischen der Wasserfallvermittlung und den App-Geboten. Mit diesem Integrationstyp musst du keine eigene Auktionslogik schreiben.

ORTB-Anfrage/-Antwort und unterstützte Anzeigenformate

ORTB-Anfrage

Unser Gebotsendpunkt unterstützt eine Teilmenge des OpenRTB-Protokolls v2.5.

Hinweis: Du findest eine vollständige Beispielanfrage unter Einrichtungsleitfaden für den Auktionsserver.

'id' => string, // platform's auction identifier,
'imp' => vec< // slots to bid on
shape(
'id' => string, // platform's identifier for this slot auction
// only for banner impression opportunities
'banner' => shape(
'w' => int, // width
'h' => int, // height
),
// only for native impression opportunities
'native' => shape(
'w' => int, // width 
'h' => int, // height 
),
// only for video impression opportunities
'video' => shape(
'w' => int, // width
'h' => int, // height
'linearity' => int, // 1 = instream, optional
'ext' => shape(
'videotype' => string, // 'rewarded' for Rewarded Video impression opportunities, optional
),
),
'tagid' => string, // Placement ID
'instl' => int, // interstitial flag, 1 = On, 0 = Off, optional
)
>,
// app details (in-app bidding only)
'app' => shape( 
'publisher' => shape(
'id' => string, // publisher app ID
),
),
'device' => shape(
'ua' => string, // device user-agent
'ifa' => string, // ID sanctioned for advertiser use
// Do not send ip or ipv6 if you are requesting bids from the client device.
// For server-side bid requests set ip or ipv6.
'ip' => string, // device IPv4
'ipv6' => string, // device IPv6
'dnt' => int, // "do not track", 1 = On, 0 = Off, optional
'lmt' => int, // "limit ad tracking", 1 = On, 0 = Off
),
'regs' => shape( // regulations object
'coppa' => int, // US FTC regulations for Children's Online Privacy Protection Act, 1 = On, 0 = Off, optional
),
'user' => shape(
'buyeruid' => string, // Audience Network Identity Token, mandatory
),
'ext' => shape(
'platformid' => string, // Mediation partner Platform ID or publisher FB app ID, mandatory
'authentication_id' => string // Authentication token to validate the originator of the request                     
),
'at' => int, // auction type: 1 = First Price, 2 = Second Price
'tmax' => int, // auction timeout in milliseconds
'test' => int, // 0 = normal, 1 = test-mode (we bid $99.99, but don't pay out), optional

Unterstützte Werbeanzeigenformate

Es werden derzeit vier Arten von Anzeigen unterstützt, die du über OpenRTB anfordern kannst: Banner Ads, Native Ads (Native oder Native Banner Ads) und Video (Rewarded Video oder In-Stream Video) sowie Interstitial Ads. Hinweis: Die Objekte Banner, Native und Video schließen einander aus, jedoch ist eines von ihnen erforderlich.

Dies ist eine Liste der unterstützten Anzeigenformate in der Gebotsanfrage:

Anzeigenformat Parameter in der Gebotsanfrage

Native

{'id': ${AUCTION_ID}, 'native': { 'h': -1, 'w': -1 }, 'tagid': ${PLACEMENT_ID}}

Native Banner

{'id': ${AUCTION_ID}, 'native': { 'h': -1, 'w': -1 }, 'tagid': ${PLACEMENT_ID}}

Interstitial

{'id': ${AUCTION_ID}, 'banner': { 'h': 0, 'w': 0 }, 'tagid': ${PLACEMENT_ID}, 'instl': 1}

Rewarded Video

{'id': ${AUCTION_ID}, 'video': { 'h': 0, 'w': 0, 'ext': { 'videotype': 'rewarded' } }, 'tagid': ${PLACEMENT_ID}}

Rewarded Interstitial

{'id': ${AUCTION_ID}, 'video': { 'h': 0, 'w': 0, 'ext': { 'videotype': 'rewarded_interstitial' } }, 'tagid': ${PLACEMENT_ID}}

Banner – Höhe: 50 (in cm: 5000)

{'id': ${AUCTION_ID}, 'banner': { 'h': 50, 'w': -1 }, 'tagid': ${PLACEMENT_ID}}

Banner – Höhe: 250*

{'id': ${AUCTION_ID}, 'banner': { 'h': 250, 'w': -1 }, 'tagid': ${PLACEMENT_ID}}

* Für dieses Anzeigenformat kannst du im Monetization Manager eine Banner- oder eine Medium Rectangle-Platzierung erstellen

ORTB-Antwort

Gebotsantworten sind 30 Minuten lang gültig. Ab dem Empfang der Gebotsantwort hast du 30 Minuten Zeit, um die Werbeanzeige anzufordern. Impressionen basierend auf Geboten, die älter als 30 Minuten sind, werden nicht bezahlt.

Hinweis: Sobald du eine Werbeanzeige mit einer Gebotsantwort anforderst, kannst du sie zwar auf dem Client zwischenspeichern, musst sie jedoch nach dem Laden innerhalb von 60 Minuten anzeigen. Impressionen für zwischengespeicherte Werbeanzeigen, die älter als 60 Minuten sind, werden nicht bezahlt.

1  
'id' => string // platform's request identifier
'seatbid' => vec<
    shape(
        'bid' => vec<
            shape(
                'id' => string, // Our identifier for this bid
                'impid' => string, // platform's identifier for this slot auction
                'price' => float, // Our bid price on CPM basis, in USD
                'adm' => string, // Our creative - see Rendering The Ad
                'nurl' => string, // URL to get if we win the impression
                'lurl' => string, // URL to get if we lose the impression
            )
        >,
    ),
>,
'bidid' => string, // Our identifier for this response
'cur' => string, // bid currency: USD

Gewinn-, Verlust-, Rechnungs- und Zeitüberlaufbenachrichtigungen

Wir benötigenGewinn-, Verlust-, Rechnungs- und Zeitüberlaufbenachrichtigungen mit den entsprechenden in ORTB definierten Verlustcodes. ORTB nurl, lurl und burl werden in der Gebotsantwort angegeben. Im vorherigen Abschnitt findest du ein Beispiel für eine Gebotsantwort. Im Fall einer Zeitüberschreitung erhältst du von uns eine alternative Meldungsroute.

Gewinnerbenachrichtigung

Die Gewinn-nurl wird in der Gebotsantwort angegeben. Du musst den Vergabepreis in der nurl ausfüllen:

"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=0&clearing_price=${AUCTION_PRICE}"
  • ${AUCTION_PRICE}: Ersetze diesen Wert durch den Vergabepreis für die Auktion in der gleichen Währung wie unser Gebot (z. B. USD auf CPM-Basis).

Verlustbenachrichtigung

Unsere Verlust-lurl enthält zwei Flags, die ausgefüllt werden müssen:

"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=${AUCTION_LOSS}&clearing_price=${AUCTION_PRICE}"
  • ${AUCTION_LOSS}: Ersetze dieses Flag durch den ORTB-Verlustcode.
  • ${AUCTION_PRICE}: Ersetze diesen Wert durch den Vergabepreis für die Auktion in der gleichen Währung wie unser Gebot (z. B. USD auf CPM-Basis).

Die folgende Liste enthält verschiedene Verlustcodes und entsprechende Begründungen.

VerlustgrundBeschreibungORTB v2.5-Verlustcode

Ungültige Gebotsantwort

Gebot ist ungültig (jedoch pünktlich, kein nicht-Gebot und hinreichend gültig, um die nurl zu extrahieren)

3

Zeitüberschreitung bei Gebot *

Gebotsantwort erhalten, aber erst nach Auktionsende

2

Nicht-Gebot

Nicht-Gebote sind als HTTP 204 definiert (keine aufrufbare nurl), aber du kannst unsere Antwort als nicht-Gebot interpretieren (vermutlich ein Integrationsproblem). Möglicherweise hast du Gebote für mehrere Impressionen angefordert, und wir haben nicht für alle Impressionen Gebote abgegeben.

9

Nicht höchster RTB-Bieter

Wir wurden überboten, inklusive synthetischer Gebote (z. B. nicht-RTB-Vorgänge), falls diese in derselben Auktion abgegeben wurden.

102

Bestand hat sich nicht konkretisiert

Unser Gebot hat die Auktion gewonnen, aber die Impression hat sich nicht konkretisiert (z. B. Seite war nicht lang genug für den Slot, oder ein Benutzer hat die App verlassen, bevor eine zwischengespeicherte Werbeanzeige verwendet wurde). Diese Antwort (ein nicht-Event) wird nicht von jedem Partner geliefert und wird daher abgeleitet falls nicht angegeben.

4902

An Werbeanzeigenserver gesendet

Sende diese Antwort, wenn die Übermittlung unseres höchsten Gebots an den Werbeanzeigenserver dein letzter Berührungspunkt mit dem Entscheidungsprozess ist. Die Impression kann immer noch verloren gehen, wenn Einzelpositionen fehlen, der Auktionsserver das Auktionsergebnis aufhebt oder sich der Bestand nicht konkretisiert.

4900

RTB-Gewinner nicht vom Werbeanzeigenserver ausgewählt

Wir haben die RTB-Auktion gewonnen, aber der Werbeanzeigenserver hat die Auktion aufgehoben (z. B. direkt).

4903

Gewinner

Wir haben den kompletten Entscheidungsbaum gewonnen und ein Tag wurde auf der Seite platziert (Web) bzw. ein Werbeanzeigenobjekt wurde zwischengespeichert (App). Diese Nachricht garantiert immer noch keine sichtbare Impression.

0

Rechnungsbenachrichtigung

Wir benötigen eine Rechnungsbenachrichtigung, wenn der Impression-Rückruf im Audience Network-SDK aufgerufen wird. Du musst den Vergabepreis in der burl ausfüllen:

"https://www.facebook.com/audiencenetwork/burl/?partner=${PARTNER_FBID}&app=${APP_FBID}&placement=${PLACEMENT_FBID}&auction=${AUCTION_ID}&impression=${IMPRESSION_ID}&request=${BID_REQUEST_ID}&bid=${BID_ID}&ortb_loss_code=0&clearing_price=${AUCTION_PRICE}"
  • ${AUCTION_PRICE}: Ersetze diesen Wert durch den Vergabepreis für die Auktion in der gleichen Währung wie unser Gebot (z. B. USD auf CPM-Basis).

Zeitüberlaufbenachrichtigung

Bei einer Zeitüberschreitung erhältst du von uns eine alternative Meldungsroute. Diese generische nurl kann aufgerufen werden, bevor das Gebot eintrifft. Das Format sieht folgendermaßen aus:

"https://www.facebook.com/audiencenetwork/nurl/?partner=${PARTNER_FBID}&app=${APP_FBID}&auction=${AUCTION_ID}&ortb_loss_code=2"

Hinweis:${PARTNER_FBID}, ${APP_FBID} und ${AUCTION_ID} müssen mit den passenden Werten ausgefüllt werden. Die folgende Tabelle enthält eine Erklärung dieser Werte.

ParameterTypBeschreibung

PARTNER_FBID

Int

Werbeanzeigenserver-ID wird von Facebook ausgestellt. Gib hier deine App-ID an, wenn du keinen dedizierten Partner für Anzeigenauktionen hast.

APP_FBID

Int

Von Facebook ausgestellte ID der App bzw. des Unternehmens, das eine Auktion gestartet hat.

AUCTION_ID

String

Vom Client generierte ID der Auktion, die du in deiner Gebotsanfrage verwendet hast.

Auszahlungen, Auktionen, Sichtbarkeit und Latenz

Preise und Auszahlungen

Preise werden in USD auf CPM-Basis angegeben (4,25 bedeutet beispielsweise, dass wir $4,25/1000 Impressionen bezahlen, falls wir gewinnen). Dieselbe Einheit muss für den Vergabepreis in nurl und lurl verwendet werden. Auszahlungen erfolgen direkt an den Publisher.

Auktionsmechaniken

Wir bieten immer auf Erstpreisbasis, d. h. wir bezahlen den gebotenen Betrag und bieten unter der Annahme, dass wir den vollen Betrag bezahlen. Daher sind wir in Zweitpreisauktionen benachteiligt, bei denen andere Bieter*innen unter der Annahme bieten können, dass sie weniger als den gebotenen Betrag bezahlen werden.

Sichtbarkeit

Wir bezahlen nur für App-Impressionen, wenn die Impression angesehen wurde, unabhängig davon, ob wir das höchste Gebot abgegeben haben.

Latenz

  • Fordere pro API-Aufruf ein einzelnes Gebot an, um die Latenz zu minimieren (falls du fünf Slots versteigerst, rufst du die API also fünfmal auf, je einmal pro Gebot).
  • Wir bieten keine regionsspezifischen Endpunkte an. Die Facebook-Infrastruktur leitet die Gebotsanfrage an das nächstgelegene Rechenzentrum weiter.
  • Verwende persistente HTTP/2-Verbindungen.
  • Wenn du das Feld „ORTB tmax“ in der Gebotsanfrage mit der Zeitüberschreitung für die Auktion ausfüllst, wählen wir eine Gebotsstrategie für ausgeglichene Latenz und Leistung aus. (Weitere Infos zu „tmax“ findest du oben in der Beispielgebotsanfrage)
  • Um das Latenzziel zu erreichen, müssen wir unter Umständen die Renderzeit verkürzen (d. h. Werbeanzeigen mit langsamerem Rendering für schnellere Gebote, und Werbeanzeigen mit schnellerem Rendering für langsamere Gebote).
  • Wir arbeiten aktiv daran, die Latenz zu verbessern. Aktuell empfehlen wir eine Zeitüberschreitung von 800 ms für Server-zu-Server-Gebote.