Démarrer avec Vungle - SDK Windows version 6

Utilisez ce guide pour réaliser une intégration rapide de notre SDK dans votre application et commencer à la monétiser.

Les échantillons de code de ce guide sont présentés en C#, mais l'application modèle est fournie en C#, C++, Visual Basic et DirectX+XAML depuis notre dépôt GitHub.

Contenu

RGPD : mise en œuvre recommandée

Depuis le 25 mai, le Règlement général sur la protection des données (RGPD) est entré en vigueur dans l'Union Européenne. Les développeurs disposent de deux options pour se conformer au RGPD.

  • Option 1 (recommandée) : l'éditeur contrôle le processus de consentement au RGPD au niveau de l'utilisateur, puis communique le choix de l'utilisateur à Vungle. Pour ce faire, les développeurs peuvent obtenir le consentement de l'utilisateur via leur propre mécanisme, puis utiliser les API Vungle pour mettre à jour ou demander le statut du consentement de l'utilisateur. Consultez la section Instructions relatives à la mise en œuvre recommandée du RGPD pour plus de détails.

  • Option 2 : laisser Vungle gérer les conditions requises. Vungle affichera une boîte de dialogue de consentement avant de lire une publicité pour un utilisateur européen et mémorisera le consentement ou le rejet de l'utilisateur pour les publicités ultérieures.

Avant de commencer

  • Ce guide concerne la version 5.3.2 du SDK Windows Vungle et les versions ultérieures. Le guide d'intégration de la version 1.3.16 du SDK Windows Vungle et des versions antérieures se trouve ici : Démarrer avec Vungle - SDK Windows version 1.0 à 1.3.16.
  • L'intégration nécessite un compte Vungle, veuillez par conséquent créer un compte Vungle si vous n'en avez pas un.
  • Si vous ne l'avez pas déjà fait, rendez-vous sur notre Tableau de bord et ajoutez votre application à votre compte. Consultez la section Définition et rapport des placements pour apprendre à définir les placements dans le tableau de bord de Vungle.
  • Vous devez utiliser Visual Studio 2015 si vous voulez développer pour Windows 8.1 ou Windows Phone 8.1, car Visual Studio 2017 ne supporte plus ces versions.
  • Le bouton Retour est pris en charge sur les mobiles, mais pas sur les PC (clavier). Ceci peut entraîner des comportements et une expérience utilisateur différents selon les versions UWP.
  • Basculez l'application en mode actif si aucune publicité n'est retournée en mode test.

Téléchargez le SDK Vungle et ajoutez-le à votre projet

Il existe deux façons d'ajouter Vungle à votre projet Visual Studio : utiliser NuGet ou une intégration manuelle.

Option 1. Intégration de NuGet

  1. Dans Visual Studio, faites un clic-droit sur Projet, puis sélectionnez Gérer les packages NuGet.
  2. Cliquez sur Parcourir, saisissez "Vungle", sélectionnez SDK Vungle, puis cliquez sur Installer.

Option 2. Intégration manuelle

  1. Téléchargez le SDK Vungle pour Windows depuis le tableau de bord de Vungle.
  2. Extrayez l'archive.
  3. Dans Visual Studio, créez un nouveau projet à l'aide du bon modèle pour votre application et votre langage de programmation.
  4. Ajoutez une référence à votre projet au fichier SDK Windows Vungle que vous avez téléchargé.

Le SDK Vungle possède deux fichiers VungleSDK.windmd : pour le développement sous Windows 10 et 8.1. Utilisez le bon SDK à partir du répertoire extrait, Win10 ou Win81.

Capacité internetClient

Assurez-vous que votre projet possède la capacité internetClient dans le fichier package.appxmanifest.

Visual Studio

  1. Cliquez deux fois sur appxmanifest dans Explorateur de solutions.
  2. Sélectionnez les Capacités
  3. Confirmez que l'option Internet (client) est cochée.

Édition manuelle

Ouvrez le fichier package.appxmanifeset et ajoutez internetClient à la section Capacités.

<Capabilities>
...
<Capability Name="internetClient" />
...
</Capabilities>

Importer l'espace de noms VungleSDK

using VungleSDK;

Obtenez une instance de VungleAd

L'instance de VungleAd reçoit deux paramètres : une chaîne de caractères pour l'ID de l'application Vungle et un tableau de chaînes pour les ID des placements. Vous ne pouvez utiliser que les ID de placements que vous avez déjà inclus lorsque vous obtenez une instance. Si vous n'ajoutez pas un placement mis en cache automatiquement, le SDK vous assignera automatiquement un des vos placements non mis en cache automatiquement pour qu'il soit mis en cache automatiquement.

VungleAd sdkInstance; string appID = “app_id”; string[] placementArray = new string[] { “placement_id_1”, “placement_id_2”, “placement_id_3” };
sdkInstance = AdFactory.GetInstance(appID, placementArray);

Dans l'exemple ci-dessus, remplacez app_id par l'ID de votre application Vungle et placement_id_# par les ID de placement à utiliser dans le projet. Nous recommandons de suivre ces étapes d'initialisation dès que votre appli a chargé les composants indispensables, afin que le mise en cache automatique puisse débuter le plus tôt possible.

Créez et enregistrez un gestionnaire d'évènements

Créez un gestionnaire d'évènements pour l'évènement OnAdPlayableChanged. Ce gestionnaire d'évènements est appelé lorsque l'état de disponibilité de l'annonce change. Vous pouvez identifier le placement qui a lancé l'évènement en vérifiant e.Placement.

// Event handler for OnAdPlayableChanged event private async void SdkInstance_OnAdPlayableChanged(object sender, AdPlayableEventArgs e) { // e.Placement - placement ID in string // Run asynchronously on the UI thread await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() => methodToRun(e.Placement))); } 

Enregistrez ce gestionnaire d'évènements pour l'évènement OnAdPlayableChanged.

sdkInstance.OnAdPlayableChanged += SdkInstance_OnAdPlayableChanged; 

Charger une publicité pour un placement

Pour les placements différents du placement mis en cache automatiquement, vous devez d'abord appeler LoadAd, laisser suffisamment de temps pour le téléchargement des ressources de l'annonce, puis attendre l'appel de OnAdPlayableChanged :

sdkInstance.LoadAd(“placement_id”); 

Remarque : le placement mis en cache automatiquement tentera de télécharger une nouvelle ressource immédiatement après l'appel de PlayAdAsync, il n'est donc pas nécessaire d'appeler LoadAd.

Exemple de code :

private void OnLevelStart(Object sender, RoutedEventArgs e) { sdkInstance.LoadAd(“placement_id”); } 

Diffuser une publicité

Lancer une annonce avec la configuration par défaut :

sdkInstance.PlayAdAsync(new AdConfig(), “placement_id”); 

Exemple de code :

private async void OnLevelComplete(Object sender, RoutedEventArgs e) { await sdkInstance.PlayAdAsync(new AdConfig(), “placement_id”); } 

Vous pouvez personnaliser les annonces lues en fournissant les options à l'objet AdConfig.

Exemple de code :

private async void PlayCustomizedAd(Object sender, RoutedEventArgs e) { AdConfig adConfig = new AdConfig(); adConfig.Orientation = DisplayOrientations.Portrait; adConfig.SoundEnabled = false; await sdkInstance.PlayAdAsync(adConfig, placement2); } 

Options de personnalisation

Voici les propriétés disponibles dans l'instance de l'objet AdConfig :

Remarque : les publicités rémunérées sont parfois nommées publicités répondant au mécanisme d'incitation ; les deux termes font toujours référence au même type de publicité. Dans le code SDK et dans notre API de création, nous utilisons le terme "répondant au mécanisme d'incitation".

Options

Valeur/
type par défaut

Description

Orientation

Pivoter automatiquement

DisplayOrientations

Orientation.AutoRotate (par défaut) entraîne la rotation automatique de la publicité suivant l'orientation du périphérique.

Orientation.Portrait entraîne une lecture suivant l'orientation portrait uniquement.

Orientation.Landscape entraîne une lecture suivant l'orientation paysage uniquement.

Remarque : cette option s'applique uniquement aux applications mobiles.

SoundEnabled

true

bool

Définit l'état du son au début de la publicité.

Si la valeur est true (par défaut), l'audio respecte les paramètres de volume et de son de l'appareil.

Si la valeur est false, la vidéo se lance en mode muet mais l'utilisateur peut activer le son.

BackButtonImmediatelyEnabled

false

bool

Si la valeur est true, permet à l'utilisateur de quitter immédiatement une publicité grâce au bouton de retour.

Si la valeur est false (par défaut), l'utilisateur ne peut pas utiliser le bouton de retour pour quitter la publicité, jusqu'à ce que le bouton de fermeture à l'écran s'affiche.

Remarque : cette option s'applique uniquement aux applications mobiles.

UserId

null

string

Transmet l'ID utilisateur unique à l'application afin de vérifier que cet utilisateur doit être récompensé pour avoir regardé une publicité qui répond au mécanisme d'incitation au moment où le rappel serveur-à-serveur est utilisé pour la vérification.

Remarque : cette configuration ne s'applique que pour les placements de récompense.

IncentivizedDialogTitle

"Close this ad?"

string

Définit le titre de la boîte de dialogue de confirmation lorsqu'une publicité qui répond au mécanisme d'incitation est ignorée.

Remarque : cette configuration ne s'applique que pour les placements de récompense.

IncentivizedDialogBody

«"Are you sure you want to skip this ad? You must finish watching to claim your reward."

string

Définit le corps de la boîte de dialogue de confirmation lorsqu'une publicité qui répond au mécanisme d'incitation est ignorée.

Remarque : cette configuration ne s'applique que pour les placements de récompense.

IncentivizedDialogCloseButton

"Close"

 

string

Définit le texte du bouton d'annulation lorsqu'une publicité qui répond au mécanisme d'incitation est ignorée.

Remarque : cette configuration ne s'applique que pour les placements de récompense.

IncentivizedDialogContinueButton

"Continue"

string

Définit le texte du bouton "continuer la lecture" lorsqu'une publicité qui répond au mécanisme d'incitation est ignorée.

Remarque : cette configuration ne s'applique pas si l'annonce ne répond pas au mécanisme d'incitation.

Incentivized

-

OBSOLÈTE

Vous pouvez configurer la récompense au niveau du placement depuis le tableau de bord. Consultez Configuration et rapport sur les placements.


Remarque :
les options concernant SoundEnabled et les boîtes de dialogue d'incitation pour les publicités Dynamic Template et Flex View peuvent être configurées sur le tableau de bord. La configuration par la programmation ne s'appliquera qu'aux anciennes publicités.

Affichage du bouton Fermer

Pour contrôler si un utilisateur peut fermer une publicité, utilisez les options d'affichage forcé dans les paramètres avancés de votre application du tableau de bord Vungle.

Instructions relatives à la mise en œuvre recommandée du RGPD

// To set the user’s consent status as opted in: sdkInstance.UpdateConsentStatus(VungleConsentStatus.VungleConsentAccepted); // To set the user’s consent status as opted out: sdkInstance.UpdateConsentStatus(VungleConsentStatus.VungleConsentDenied); // To find out what the user’s current consent status is: // This will return null if the GDPR Consent status has not been set // Otherwise, it will return VungleConsentStatus.VungleConsentAccepted or // VungleConsentStatus.VungleConsentDenied UpdateConsentStatus? currentStatus = sdkInstance.GetCurrentConsentStatus(); 

Souscrire à des gestionnaires d'évènements

Le SDK Windows lance de nombreux évènements que vous pouvez gérer par la programmation. Vous pouvez utiliser ces gestionnaires pour contrôler l'appli, par exemple pour interrompre/reprendre la lecture de la musique de fond.

Remarque relative au thread IU

Les écouteurs d'évènements sont exécutés sur un thread en arrière-plan ; ainsi, toute interaction de l'interface utilisateur ou toute mise à jour provenant d'un écouteur d'événements doit être transmise au thread principal de l'interface utilisateur avant son exécution. Voici un moyen de le réaliser :

await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
new DispatchedHandler(() =>
{ // This block will be executed in the UI thread
} );

Gestionnaires d'événements VungleAd

Gestionnaires d'événements

Description

OnInitCompleted

Appelé immédiatement après l'initialisation du SDK. Vous pouvez vérifier s'il existe une publicité téléchargée depuis une session antérieure, ou charger une publicité pour les placements.

OnAdPlayableChanged

Notification au sujet du changement de disponibilité de la publicité pour le placement. Attendez que ce gestionnaire exécute une action et qu'une annonce devienne disponible après avoir été chargée pour un placement.

OnAdStart

Appelé avant la lecture d'une publicité. Vous pouvez exécuter des actions telles que l'interruption de la musique de fond.

OnAdEnd

Appelé lorsque l'utilisateur ferme l'écran de fin et que le contrôle est restitué à votre application. Si l'une des valeurs IsCompletedView et CallToActionClicked est true, alors l'utilisateur a visionné la publicité ou cliqué sur le bouton de téléchargement dans la publicité. Dans ce cas, si la publicité donne lieu à une récompense, alors l'utilisateur doit être récompensé. Vous pouvez exécuter des actions telles que la reprise des fonctionnalités de la publicité.

Diagnostic

Appelé lorsque le SDK est sur le point d'imprimer les journaux de diagnostic.

Exemple de code :

//Register event handlers sdkInstance.OnInitCompleted += SdkInstance_OnInitCompleted; sdkInstance.OnAdPlayableChanged += SdkInstance_OnAdPlayableChanged; sdkInstance.OnAdStart += SdkInstance_OnAdStart; sdkInstance.OnAdEnd += SdkInstance_OnAdEnd; sdkInstance.Diagnostic += SdkInstance_Diagnostic; ... // OnInitCompleted // e.Initialized - true if initialization succeeded, false if failed // e.ErrorMessage - reason for failure when e.Initialized is false private async void SdkInstance_OnInitCompleted(object sender, ConfigEventArgs e) { var placementsInfo = "OnInitCompleted: " + e.Initialized; // Initilization was success if (e.Initialized == true) { // Print out list of placements for (var i = 0; i < e.Placements.Length; i++) { placementsInfo += "\n\tPlacement" + (i + 1) + ": " + e.Placements[i].ReferenceId; if (e.Placements[i].IsAutoCached == true) placementsInfo += " (Auto-Cached)"; } } // Initilization failed else { placementsInfo += "\n\t" + e.ErrorMessage; } System.Diagnostics.Debug.WriteLine(placementsInfo); await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() => NotifyInitialization(e.Initialized))); } // OnAdPlayableAdPlayable // e.AdPlayable - true if an ad is available to play, false otherwise // e.Placement - placement ID in string private async void SdkInstance_OnAdPlayableChanged(object sender, AdPlayableEventArgs e) { System.Diagnostics.Debug.WriteLine("OnAdPlayable(" + e.Placement + ") - " + e.AdPlayable); await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() => NotifyWatcher(e.AdPlayable, e.Placement))); } // OnAdStart // e.Id - Vungle app ID in string // e.Placement - placement ID in string private void SdkInstance_OnAdStart(object sender, AdEventArgs e) { System.Diagnostics.Debug.WriteLine("OnAdStart(" + e.Id + "): " + e.Placement); } // OnAdEnd // e.Id - Vungle app ID in string // e.Placement - placement ID in string // e.IsCompletedView- true when 80% or more of the video was watched // e.CallToActionClicked - true when the user has clicked download button on end card // e.WatchedDuration - DEPRECATED private void SdkInstance_OnAdEnd(object sender, AdEndEventArgs e) { System.Diagnostics.Debug.WriteLine("OnVideoEnd(" + e.Id + "): " + "\n\tPlacement: " + e.Placement + "\n\tIsCompletedView: " + e.IsCompletedView + "\n\tCallToActionClicked: " + e.CallToActionClicked + "\n\tWatchedDuration: " + e.WatchedDuration); } // Event handler called when SDK wants to print diagnostic logs private void SdkInstance_Diagnostic(object sender, DiagnosticLogEvent e) { System.Diagnostics.Debug.WriteLine("Diagnostic - "
+ e.Level + " "
+ e.Type + " "
+ e.Exception + " "
+ e.Message); } // DEPRECATED - Use SdkInstance_OnAdEnd() instead private void SdkInstance_OnVideoView(object sender, AdViewEventArgs e) { }

Lecture de publicités Native Flex

Le SDK Vungle pour Windows 5.1.0 et versions supérieures prend en charge notre nouvelle fonctionnalité de publicité Native Flex. VungleAdControl ouvre les publicités vidéo dans leur format natif en passant un conteneur personnalisé au SDK Vungle via la propriété AdConfig.AdContainer et en gérant le contenu Container.Content de l'application hôte.

Configuration requise pour les publicités Native Flex

  • Windows SDK 5.1.0 ou ultérieures
  • Windows 10 UWP

Veuillez consulter votre gestionnaire de compte ou contactez tech-support@vungle.com pour configurer des placements publicitaires Native Flex.

Configuration de l'interface utilisateur pour les publicités Native Flex - XAML

VungleAdControl doit être déclaré avec l'ID de l'application Vungle, tous les ID de placement utilisés dans l'application et l'ID du placement de l'affichage ou du flux Native Flex spécifique. Vous pouvez également y définir le UserId utilisé pour les placements de récompense.

Exemple de code :

<Grid
<UI:VungleAdControl x:Name="vungleEmbedded"
Height="200"
Width="300"
AppID="vungle_app_id"
Placements="placement_id_1,placement_id_2,native_flex_id"
Placement = "native_flex_id"
UserId="vungle_test_user">
<TextBlock x:Name="Vungle Native Flex Ad"/>
</UI:VungleAdControl>
</Grid>

Charger une publicité Native Flex

Le chargement d'une publicité à l'aide d'un placement Native Flex est identique au chargement d'une publicité en plein écran.

Exemple de code :

sdkInstance.LoadAd(“native_flex_id”); 

Lire une publicité Native Flex

La lecture d'une publicité à l'aide d'un placement Native Flex est similaire à la lecture de publicités en plein écran. Il convient cependant de configurer toute opération de personnalisation dans le fichier .xaml ou sur le tableau de bord, y compris la désactivation du son au démarrage de la lecture.

Exemple de code :

await vungleEmbedded.PlayAdAsync();

Fermer une publicité Native Flex

En raison de la nature des publicités Native Flex , un utilisateur peut cesser de visionner la vidéo sans fermer la publicité. Par conséquent, vous devez dire au SDK de masquer la publicité lorsqu'elle n'est plus à l'écran. Pour ce faire, nous avons introduit deux méthodes permettant de fermer une publicité Native Flex :

  • Utiliser CloseFlexViewAd(String placementId) pour fermer immédiatement la publicité associé à l'ID de placement donné.

  • Utilisez SetFlexViewCloseTimeInSec(String placementId, int seconds) pour fermer le placement donné une fois que le nombre spécifié de secondes s'est écoulé.

Gestionnaires d'événements pour les publicités Native Flex

Enregistrez des gestionnaires d'événements distincts pour gérer les différents comportements des publicités en mode plein écran et natif afin de faciliter l'expérience utilisateur.

Exemple de code :

vungleEmbedded.OnAdStart += (sender, arg) => { ... } vungleEmbedded.OnAdEnd += (sender, arg) => { ... } await vungleEmbedded.PlayAdAsync(); 
Vous avez d’autres questions ? Envoyer une demande

Commentaires