Les enchères pour les applications mobiles ne sont actuellement accessibles qu’à certain·es éditeur·ices.

Enchères de serveur à serveur

La médiation interne n’est pas publique

La médiation interne avec Audience Network est actuellement en version bêta fermée et n’est pas publique. Nous procéderons à une mise à jour en cas de changement.

En attendant, vous pouvez accéder aux enchères de l’Audience Network par le biais de l’une des plates-formes de médiation avec lesquelles nous sommes partenaires.

Sur cette page :

L’Audience Network de Facebook prend en charge les enchères dans les applications mobiles et sur les sites web mobiles. Les intégrations d’enchères dans les applications mobiles peuvent s’effectuer entre un client mobile et notre serveur ou entre votre serveur et le nôtre. Cette présentation aborde les concepts généraux liés aux enchères pour les applications.

Introduction

Présentation des enchères pour les applications

Grâce aux enchères pour les applications, les éditeur·ices peuvent établir un système d’enchères impartial et ouvert pour leur inventaire publicitaire en proposant chaque opportunité publicitaire à plusieurs sources de demande en temps réel. Chaque source de demande a la possibilité de concourir et de remporter chaque impression, lorsque la valeur est au plus haut.

Pourquoi avoir recours aux enchères pour les applications ?

  • Opportunité d’optimiser chaque requête publicitaire avec une enchère en temps réel.
  • Visibilité sur la valeur réelle de votre inventaire publicitaire.
  • Gestion simplifiée et moins d’opérations nécessaires sur les ressources publicitaires.

Architectures d’intégration

Les enchères pour les applications fonctionnent par le biais d’un point de terminaison utilisant le protocole d’enchères ouvertes en temps réel (Open Real-Time Bidding, ORTB) afin de proposer des enchères sur différentes opportunités d’impression individuelle. Le SDK Audience Network est nécessaire pour effectuer les actions suivantes dans le cadre des enchères pour les applications :

  • Obtenir le buyeruid (nommé bidderToken dans le SDK Audience Network). Ce token est un champ obligatoire dans la demande d’enchère, et il est unique à l’utilisateur·ice et à l’application. Il n’est valide pour aucun·e autre utilisateur·ice et aucune autre application.
  • Charger la réponse d’enchère et afficher une publicité si l’enchérisseur remporte l’enchère.
  • Enregistrer les impressions et les clics.

Étapes-clés de la procédure d’enchère

  1. Obtenir le token de l’enchérisseur : Audience Network a besoin de cette chaîne opaque pour répondre à une demande d’enchère.
  2. Envoyer la demande d’enchère et obtenir la réponse : il s’agit de l’interaction principale avec le point de terminaison des enchères. Au cours de cette étape, vous envoyez une demande d’enchère ORTB et vous recevez soit une réponse d’enchère valide, soit une erreur.
  3. Exécuter l’enchère : exécutez une enchère, puis sélectionnez un gagnant parmi les réponses reçues. Dans la plupart des cas, les enchères comparent les enchères en temps réel aux CPM estimés provenant d’autres sources de demande (par exemple, les CPM moyens historiques), car certaines sources de demande ne prennent pas en charge les enchères en temps réel. Les enchères peuvent être exécutées par l’un des éléments suivants :
    • Un serveur interne exécutant votre propre logique d’enchère
    • Un serveur d’enchère tiers
    • Le client, sur l’appareil de l’utilisateur·ice
  4. Récupérer la publicité avec la réponse à l’enchère : si Audience Network remporte l’enchère, chargez la publicité en transmettant le champ adm de la réponse à l’enchère au SDK Audience Network sur l’appareil de l’utilisateur·ice. Notez que le champ adm ne contient pas la publicité elle-même, mais les informations permettant au SDK de la récupérer sur le serveur Audience Network.

Types d’intégration

Lors de l’exécution de l’enchère (la troisième étape de la procédure d’enchères ci-dessus), l’enchère peut être hébergée côté client ou côté serveur. Vous trouverez ci-dessous trois types d’intégration différents :

Architecture d’intégration de serveur à serveur

Dans une intégration serveur à serveur, le serveur de vente aux enchères appelle le point de terminaison d’enchères de l’Audience Network de Facebook et toutes les autres sources de demande afin d’obtenir des réponses d’enchères. Le serveur de vente aux enchères conduit ensuite la vente et sélectionne le vainqueur des enchères. Le serveur de vente aux enchères peut être un serveur interne exécutant une logique de vente aux enchères que vous avez mise en place ou un serveur tiers intégré à la fonction d’enchères sur app de l’Audience Network. Cette fonction vous permet d’utiliser les ressources du serveur et le réseau disponible pour appeler les points de terminaison d’enchères des sources de demande. Elle vous permet également d’apporter des modifications aux intégrations de ces points de terminaison sans impliquer nécessairement de mise à jour du client.


Intégration via un serveur publicitaire externe

L’intégration sur serveur publicitaire externe vous permet de faire le lien entre l’univers de la médiation en cascade actuel et celui des enchères sur app. Ceci s’effectue en réalisant une intégration serveur à serveur avec les sources de demande prenant en charge les enchères sur app, puis en transmettant le vainqueur de l’enchère à la plate-forme de médiation qui exécute la cascade et sélectionne la source de demande gagnante. Cette intégration se veut un lien temporaire entre l’univers de la médiation en cascade et celui des enchères sur app. Avec ce type d’intégration, vous n’avez pas besoin de rédiger votre propre logique d’enchères.

Requête/réponse ORTB et formats publicitaires pris en charge

Requête ORTB

Notre point de terminaison d’enchère prend en charge un sous-ensemble du protocole OpenRTB version 2.5.

Remarque : reportez-vous à l’exemple de requête complète dans le Guide de configuration d’un serveur d’enchères

'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

Formats publicitaires pris en charge

Nous prenons actuellement en charge quatre types de publicités qui peuvent être demandées via OpenRTB : bannière, native (publicité native ou bannière native), vidéo (avec récompense ou intégrée) et interstitielle. Remarque : la bannière, et les objets natifs et vidéo s’excluent mutuellement, mais l’un d’eux est requis.

Voici une liste des formats publicitaires pris en charge dans les demandes d’enchère :

Format publicitaire Paramètres de la demande d’enchère

Publicité native

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

Bannière native

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

Publicité interstitielle

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

Vidéo avec récompense

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

Publicité interstitielle avec récompense

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

Bannière - Hauteur : 50

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

Bannière - Hauteur : 250*

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

* Vous pouvez créer une bannière ou un placement rectangulaire de taille moyenne dans le Gestionnaire de monétisation pour ce format publicitaire

Réponse ORTB

Une réponse à l’enchère reste valide pendant 30 minutes. Vous pouvez demander la publicité à tout moment dans les 30 minutes suivant la réception de la réponse à l’enchère. Une impression fondée sur une enchère de plus de 30 minutes ne sera pas rémunérée.

Remarque : lorsque vous demandez une publicité avec une réponse à l’enchère, la publicité peut être mise en cache sur le client, mais doit être diffusée dans les 60 minutes suivant son chargement. Une impression fondée sur une publicité mise en cache plus de 60 minutes ne sera pas rémunérée.

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

Notifications de gain/perte/facturation/expiration

Nous demandons des notifications de gain, de perte, de facturation et d’expiration accompagnée des codes de perte correspondants, comme défini dans l’ORTB. La nurl, la lurl et la burl ORTB sont fournies dans la réponse d’enchère. Consultez la section précédente pour un exemple de réponse d’enchère. En cas d’expiration de l’enchère, nous vous proposons une autre démarche de signalement.

Notification du gagnant

La nurl gagnante sera fournie dans la réponse d’enchère. Vous devez renseigner le prix d’adjudication dans la nurl :

"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} : cette variable doit être remplacée par le prix d’adjudication de la vente aux enchères dans la même devise que notre enchère (USD sur une base CPM).

Notification de perte

Notre lurl de perte contient deux indicateurs que vous devez renseigner :

"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} : cette variable doit être remplacée par le code de perte ORTB.
  • ${AUCTION_PRICE} : cette variable doit être remplacée par le prix d’adjudication de la vente aux enchères dans la même devise que notre enchère (USD sur une base CPM).

Vous trouverez ci-dessous une liste des différents codes de perte et des motifs de perte correspondants.

Motif de perteDescriptionCode de perte ORTB version 2.5

Réponse d’enchère non valide

L’enchère n’est pas valide (mais a été effectuée dans les temps, n’est pas une absence d’enchère et reste suffisamment valide pour pouvoir en extraire la nurl)

3

Expiration de l’enchère*

La réponse d’enchère a été reçue, mais trop tard pour la coupure de la vente aux enchères

2

Absence d’enchères

Les absences d’enchères sont indiquées par le code HTTP 204 (pas de nurl à appeler), mais vous pouvez interpréter notre réponse comme une absence d’enchères (probablement un problème d’intégration) Vous pouvez également demander des enchères pour plusieurs impressions ; nous enchérirons sur certains, mais pas sur toutes.

9

N’est pas le plus fort enchérisseur RTB

Un autre enchérisseur participant à la même vente aux enchères nous a battus, enchérisseurs synthétiques compris (échanges non RTB).

102

L’inventaire ne s’est pas matérialisé

Notre enchère a remporté la vente, mais l’impression ne s’est pas matérialisée (la page n’était pas assez longue pour inclure cet emplacement ou l’utilisateur a quitté l’app avant la diffusion de la publicité mise en cache). Tous les partenaires ne peuvent pas fournir ce motif (c’est un non-évènement), nous partirons donc du principe que le motif n’est pas fourni.

4902

Envoyé au serveur publicitaire

Envoyez ceci si le dernier point de contact que vous avez avec le processus de décision envoie notre enchère haute au serveur publicitaire. L’impression peut toujours être perdue du fait de lignes manquantes, du serveur publicitaire passant outre la vente aux enchères ou d’une absence de matérialisation de l’inventaire.

4900

Gagnant RTB non sélectionné par le serveur publicitaire

Nous avons remporté la vente aux enchères RTB, mais le serveur est passé outre la vente (direct).

4903

Gain

Nous avons remporté l’intégralité de l’arbre de décision et une balise a été placée sur la page (web) ou un objet publicitaire mis en cache (app). Il est possible que cette situation n’engendre pas d’impression visible.

0

Notification facturable

Nous demandons une notification facturable en cas de rappel d’impression déclenché dans le SDK Audience Network. Vous devez renseigner le prix d’adjudication dans la burl :

"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} : cette variable doit être remplacée par le prix d’adjudication de la vente aux enchères dans la même devise que notre enchère (USD sur une base CPM).

Notification d’expiration

En cas d’expiration de l’enchère, nous vous proposons une autre démarche de signalement. Il s’agit de la nurl générique qui pourrait être appelée sans devoir attendre l’arrivée de l’enchère. Le format est le suivant :

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

Remarque : les champs ${PARTNER_FBID}, ${APP_FBID} et ${AUCTION_ID} doivent être renseignés avec les valeurs appropriées. Le tableau ci-dessous fournit une explication de ces valeurs.

ParamètreTypeDescription

PARTNER_FBID

entier

ID de serveur de vente aux enchères publicitaire émis par Facebook. Utilisez votre ID d’app ici si vous n’avez pas de partenaire de vente aux enchères publicitaire dédié.

APP_FBID

entier

ID émis par Facebook de l’application/l’entreprise à l’initiative de la vente aux enchères.

AUCTION_ID

Chaîne

ID généré par le client de la vente aux enchères utilisée pour émettre une demande d’enchère.

Paiements, enchères, visibilité et latence

Prix et paiements

Les prix sont exprimés en USD sur une base CPM (4,25 signifie par exemple que nous paierons 4,25 USD/1000 impressions si nous remportons l’enchère). La même devise doit être utilisée pour le prix d’adjudication dans la nurl et la lurl. Les paiements sont effectués directement à l’éditeur·ice.

Mécanismes d’enchère

Nous enchérissons toujours sur la base du premier prix, ce qui signifie que nous payons le montant de l’enchère et que nous enchérissons en partant du principe que nous paierons le montant total. Ceci implique que nous sommes désavantagés dans une enchère au second prix, dans laquelle les autres enchérisseurs enchérissent en partant du principe qu’ils paieront moins que le montant de l’enchère.

Visibilité

Pour les impressions d’applications, nous ne payons que si l’impression est vue, indépendamment de notre statut ou non de premier enchérisseur.

Latence

  • Pour une latence minimale, n’effectuez qu’une seule demande d’enchère par appel d’API (par exemple, si vous mettez cinq emplacements aux enchères, appelez cinq fois l’API, c’est-à-dire une fois par enchère).
  • Nous ne proposons pas de point de terminaison spécifique par région. L’infrastructure Facebook acheminera la demande d’enchère vers le data center le plus proche.
  • Utilisez des connexions persistantes HTTP/2.
  • Renseignez le champ ORTB tmax de la demande d’enchère avec le délai d’expiration de l’enchère, et nous choisirons une stratégie d’enchère équilibrant la latence et les performances. (Consultez l’exemple de demande d’enchère ci-dessus pour plus d’informations sur la valeur tmax.)
  • Afin de répondre aux objectifs de latence, nous pourrions différer une partie du traitement au moment du rendu (un processus d’enchère plus rapide pourrait signifier une publicité au rendu plus lent et des résultats d’enchère plus lents pour une publicité au rendu plus rapide).
  • Nous travaillons activement à l’amélioration de la latence. À l’heure actuelle, nous recommandons un délai d’expiration de 800 ms pour des enchères de serveur à serveur.