Privacy Sandbox est disponible dans Android Preview développeur. Découvrez comment faire vos premiers pas et continuez à envoyer des commentaires.

Prise en charge des enchères multivendeurs avec lFLEDGE Mediation

Stay organized with collections Save and categorize content based on your preferences.

Envoyer un commentaire

Les plates-formes publicitaires côté vente diversifient généralement leurs sources de demande d'annonces afin d'optimiser les revenus publicitaires. Avec la médiation publicitaire, un réseau ou service publicitaire appelle plusieurs réseaux publicitaires pour déterminer la meilleure annonce pour un espace publicitaire donné. Cette proposition explique comment FLEDGE sur Android peut être étendu pour implémenter une fonctionnalité de médiation en cascade tout en préservant la confidentialité. Aujourd'hui, les réseaux publicitaires offrent aux développeurs d'applications différents moyens d'arbitrer les enchères publicitaires à partir de plusieurs vendeurs publicitaires :

  1. Médiation en cascade : les développeurs d'applications définissent une liste numérotée de réseaux publicitaires, souvent classés en fonction de l'eCPM historique pour le réseau donné. Cette liste est appelée chaîne de médiation. La plate-forme de médiation du développeur de l'application utilise cette liste pour appeler les réseaux publicitaires dans l'ordre dans lequel ils apparaissent afin de déterminer les sources de demande d'annonces pertinentes.
  2. Médiation programmatique : le développeur d'application configure plusieurs réseaux publicitaires pour prendre part aux enchères sur les opportunités d'annonces. Ces réseaux sont autorisés à enchérir en temps réel en fonction de la valeur de l'opportunité.
  3. Médiation hybride : combinaison des techniques de cascade d'annonces et de médiation programmatique.

Médiation en cascade

Dans la médiation en cascade, lorsqu'une opportunité publicitaire se présente, un SDK publicitaire envoie une demande à son serveur backend. Au lieu de répondre à la demande avec une création d'annonces gagnantes, le serveur répond avec une chaîne de médiation contenant une liste de réseaux publicitaires classés en fonction de l'historique de l'eCPM.

Diagramme du modèle de médiation en cascade
Figure 1 : modèle de médiation en cascade.

Dans le modèle de cascade d'annonces traditionnel, un SDK publicitaire appelle chaque réseau publicitaire (ou son propre SDK d'enchères) dans l'ordre spécifié par la chaîne de médiation. Si un réseau publicitaire peut répondre à la demande d'annonce, il affiche l'annonce. Sinon, la requête est envoyée au prochain réseau de la chaîne. Ce processus est répété jusqu'à ce que la requête soit traitée ou que la chaîne soit épuisée.

La médiation en cascade est souvent optimisée en réorganisant régulièrement la chaîne de médiation en fonction de la réévaluation de l'eCPM à partir des sources de demande d'annonce propriétaires.

Médiation programmatique

La médiation programmatique (également appelée "enchères d'en-tête" (header bidding)) constitue une alternative à l'utilisation de l'eCPM historique pour déterminer quel réseau publicitaire peut diffuser une demande d'annonce. Avec la médiation programmatique, les fournisseurs utilisent les valeurs d'enchères en temps réel pour identifier l'annonce gagnante.

Diagramme du modèle de médiation programmatique
Figure 2 : modèle de médiation programmatique.

Médiation hybride

Certaines solutions de médiation programmatique combinent des réseaux publicitaires en un mode hybride de cascade d'annonces et d'enchères pour fournir plus de contrôle sur l'annonce tout en profitant de l'avantage d'utiliser des eCPM en direct pour maximiser les revenus des réseaux publicitaires participants.

Dans les modèles de médiation hybride, les réseaux publicitaires et les fournisseurs de médiation peuvent offrir une plus grande flexibilité aux développeurs d'applications en combinant des éléments de cascade d'annonces et des enchères en temps réel. Les modèles hybrides permettent aux développeurs d'applications de configurer des réseaux publicitaires en fonction des eCPM historiques. Ils peuvent ainsi diffuser une annonce avant d'exécuter des enchères en temps réel sur les réseaux participants pour remplir les opportunités d'annonces.

Médiation en cascade FLEDGE

FLEDGE pour Android prend en charge la médiation en cascade en disposant de plusieurs enchères FLEDGE, chacune pour un nœud individuel dans le graphique de médiation. S'il n'y a pas de mise en concurrence, le prochain nœud de mise aux enchères du réseau est appelé jusqu'à ce que la chaîne soit épuisée. Le processus de médiation en cascade se déroule comme suit :

  1. Le SDK de médiation récupère la chaîne de médiation à partir du point de terminaison de l'ad server contextuel, qui peut renvoyer des annonces contextuelles ou des chaînes de médiation.
  2. Si le point de terminaison de l'ad server renvoie une chaîne de médiation, le SDK de médiation parcourt chaque élément de la chaîne dans l'ordre, en appelant le SDK du réseau publicitaire participant pour qu'il sélectionne une annonce contextuelle et une annonce de remarketing. Chaque élément de la chaîne représente une requête de réseau publicitaire pour l'achat d'espace publicitaire à un prix spécifique pour un nombre spécifique d'impressions, de clics ou pour une durée d'annonce déterminée.
  3. Si aucun élément de campagne de la chaîne ne sélectionne une annonce gagnante, le SDK de médiation peut diffuser une annonce de son propre réseau publicitaire en exécutant une sélection d'annonces FLEDGE qui prend en compte les annonces de remarketing et contextuelles.

Diagramme du flux de médiation en cascade de FLEDGE
Figure 3 : médiation en cascade avec FLEDGE.

Le diagramme ci-dessus représente un exemple d'algorithme de médiation en cascade qu'un SDK de médiation peut implémenter, mais sans que le réseau publicitaire propriétaire ne puisse l'optimiser. FLEDGE prend en charge l'optimisation des réseaux publicitaires propriétaires en autorisant l'enchaînement de workflows de sélection des annonces et en créant des rapports sur les impressions gagnantes.

Résultat AdSelection

Le type renvoyé pour runAdSelection() est un objet AdSelectionOutcome. AdSelectionOutcome contient l'URI de rendu de l'annonce gagnante et un AdSelectionId, un entier opaque qui identifie la création de l'élément de campagne gagnant.

AdSelectionOutcome {
  Uri renderUri;
  Long AdSelectionId;
}

AdSelectionId agit comme un pointeur vers AdSelectionOutcome. Aujourd'hui, AdSelectionId est transmis à la méthode reportResult() en tant que paramètre ReportImpressionInput pour faciliter l'identification des annonces correctes à partir desquelles les méthodes reportWin() et reportResult() sont appelées.

Proposition de sélection des annonces en chaîne

Nous proposons d'étendre RunAdSelection pour prendre en compte les résultats des précédentes exécutions de sélection d'annonces afin de sélectionner une annonce gagnante à l'aide de l'objet AdSelectionOutcome. Cela permet aux réseaux publicitaires d'exécuter une médiation qui prend en compte les annonces contextuelles et les annonces de remarketing de plusieurs réseaux publicitaires.

ChainedAdSelections est ajouté en tant que paramètre facultatif à AdSelectionConfig. ChainedAdSelections. Il peut contenir une liste des résultats de la sélection d'annonces provenant d'appels précédents de la méthode runAdSelection() dans la chaîne de médiation. Dans l'exemple suivant, un SDK exécute AdSelection à l'aide des résultats des SDK A et B de l'appareil. Les SDK A et B partagent tous deux explicitement l'AdSelectionOutcome à partir de leurs appels runAdSelection() respectifs au SDK qui exécute la sélection d'annonces enchaînées.

AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig {
    Seller = "example-ssp1.com",
    DecisionLogicURL = Uri.parse("https://..."),
    CustomAudienceBuyerList = Arrays.asList("example-dsp1.com","example-dsp2.com"),
    AdSelectionSignals = "{"min_price": 10,"auction_attempts": 3}"
    SellerSignals = "{"seller_type": "news", "content_category": "sports","mature_ads_accepted" :"false"}"
    PerBuyerSignals = "{"example-dsp1.com": {"key1" : "value1"},
                        "example-dsp2.com": {"key1" : "value1", "key2" : "value2"}"
    ChainedAdSelections = {network_a_selection_outcome, network_b_selection_outcome}
};

// Invoke ad services API to initiate ad selection workflow.
AdSelectionOutcome winningAd = runAdSelection(myAdSelectionConfig);

Diagramme de sélections d'annonces en chaîne
Figure 4 : sélection d'annonces en chaîne avec RunAdSelection().

Notez que la valeur renvoyée par cet appel runAdSelection() est un autre objet AdSelectionOutcome.

  • Une valeur null est renvoyée si aucune annonce n'est sélectionnée.
  • Un nouvel objet AdSelectionOutcome est renvoyé si l'une des annonces désignées par ChainedAdSelections n'est pas l'annonce gagnante.
  • L'un des résultats transmis dans AdSelection est renvoyé s'il s'agit de l'annonce sélectionnée.

Rapporter les impressions gagnantes

En l'absence de gagnant lors de la sélection d'annonces en chaîne, aucune impression gagnante ne doit être rapportée.

Si l'un des objets AdSelectionOutcome transmis dans AdSelectionConfig est sélectionné, le SDK qui exécute la sélection d'annonces en chaîne doit communiquer avec le SDK publicitaire gagnant au sujet du résultat. Le SDK publicitaire gagnant peut ensuite appeler le rapport sur les impressions gagnantes comme il le ferait après avoir exécuté sa propre AdSelection. Cela garantit que le JavaScript de la décision du SDK de l'annonce gagnante est utilisé pour rapporter le résultat. Dans ce scénario, le SDK qui exécute la sélection d'annonces en chaîne peut indiquer quel SDK publicitaire a remporté l'impression.

Si aucun des résultats AdSelectionOutcome n'est sélectionné, le SDK qui exécute la sélection d'annonces en chaîne appelle son rapport sur les impressions gagnantes.

Exécuter une médiation en cascade

Comme il est possible de lier des instances d'AdSelectionOutcome, comme décrit précédemment sur cette page, un SDK de médiation peut exécuter une médiation en cascade, tout en permettant à un réseau publicitaire propriétaire de l'optimiser. Ce processus est résumé ci-dessous :

  1. Le SDK de médiation obtient une chaîne de médiation auprès du serveur de médiation à l'aide d'une demande d'annonce contextuelle.
  2. Le SDK de médiation exécute une sélection d'annonces qui prend en compte à la fois les annonces de remarketing et les annonces contextuelles.
  3. Le SDK de médiation exécute un système d'enchères qui tient compte du résultat de la sélection d'annonces propriétaires et de l'eCPM historique du premier élément éligible de la chaîne de médiation.

  4. Si une annonce est sélectionnée, l'annonce qui l'emporte est déterminée et le processus se termine.

  5. Si aucune annonce n'est sélectionnée, le SDK de médiation sélectionne le premier élément éligible de la chaîne de médiation, puis appelle le SDK correspondant pour exécuter une sélection d'annonces contextuelle et de remarketing.

  6. Si une annonce est sélectionnée, elle s'affiche et le processus se termine.

  7. Si aucune annonce n'est sélectionnée, alors l'élément suivant de la chaîne est pris en compte, et l'étape 3 est exécutée.

  8. S'il n'y a plus d'éléments dans la chaîne, le SDK de médiation diffuse une annonce propriétaire en exécutant la sélection d'annonces FLEDGE qui prend à la fois en compte les annonces de remarketing et les annonces contextuelles, comme lors de l'étape 2.

Processus de médiation en cascade de FLEDGE
Figure 5 : processus de médiation en cascade de FLEDGE

Bonnes pratiques

Effectuer des enchères contextuelles avant l'optimisation propriétaire

La demande de remarketing peut engendrer des enchères élevées qui peuvent générer des résultats gagnants dans une chaîne de médiation. La troncation est le processus souvent utilisé pour optimiser les données propriétaires en affinant la liste d'audience de remarketing.

La demande de remarketing FLEDGE n'est disponible que côté client avec les enchères FLEDGE. Il peut donc être difficile d'activer l'optimisation propriétaire côté serveur. Pour limiter les problèmes liés à l'optimisation propriétaire, commencez par exécuter les enchères contextuelles, puis effectuez l'optimisation propriétaire en fonction du résultat de la mise aux enchères, comme décrit précédemment sur cette page.

Limiter la taille de vos chaînes de médiation sur l'appareil

Pour des performances optimales, les chaînes de médiation sur l'appareil doivent rester petites. Le coût de calcul pour l'exécution sur l'appareil peut être linéaire pour le nombre d'enchères évaluées dans le cadre de la chaîne de médiation. En d'autres termes, plus de nœuds entraînent des exigences de cycle de calcul plus élevées et une latence accrue. Tenez compte de l'impact de la latence sur les revenus lorsque vous transmettez des nœuds à l'évaluation de la médiation sur l'appareil.

Facteurs supplémentaires

Cette proposition de médiation FLEDGE est en cours de développement. Vos commentaires sont les bienvenus.

FLEDGE n'offre pas de solution complète pour la médiation de plusieurs espaces publicitaires. Chaque espace publicitaire doit être traité indépendamment.

L'API FLEDGE Mediation est actuellement compatible avec la médiation en cascade et la médiation programmatique limitée. Nous vous communiquerons bientôt plus d'informations sur la prise en charge d'autres cas d'utilisation de la médiation programmatique.

Étant donné que la sélection d'annonces FLEDGE s'exécute une fois les annonces contextuelles récupérées, appeler FLEDGE peut avoir un impact sur la latence de bout en bout des demandes d'annonces.