Contenu
- RGPD : mise en œuvre recommandée
- Avant de commencer
- Étape 1. Ajouter le framework Vungle à votre projet Xcode
- Étape 2. Supprimer la barre d'état iOS
- Étape 3. Ajouter le code
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
- Le SDK Vungle iOS version 6 prend en charge iOS 8 et les versions ultérieures.
- Le SDK Vungle iOS version 6 a été testé avec iOS 11 bêta/GM Seed.
- Le SDK Vungle iOS version 6 prend en charge les applications 32 bits et 64 bits.
- L'intégration exige que vous possédiez un compte Vungle. Si vous ne possédez pas de compte, créez-en un avant de continuer.
- Notre SDK iOS prend en charge Xcode 9.0 ou les versions ultérieures.
Étape 1. Ajouter le cadre Vungle à votre projet Xcode.
Ajouter le VungleSDK.framework à votre projet
Il existe deux façons d'ajouter Vungle à votre projet Xcode : l'utilisation de Cocoapods ou l'intégration manuelle.
Cocoapods
Le SDK Vungle est disponible via Cocoapods. Ajoutez Vungle à votre projet en ajoutant la ligne suivante au podfile de votre projet.
pod "VungleSDK-iOS", "6.2.0"
Après ça, une exécution rapide de pod install doit mettre à jour votre projet avec la dernière version de notre iOS SDK. À ce stade, vous pouvez passer à " Étape 2. Supprimer la barre d'état iOS ”.
Intégration manuelle
Téléchargez le SDK Vungle version 6. Si vous procédez à la mise à jour à partir d'une version précédente du SDK Vungle, commencez par supprimer l'intégralité du répertoire VungleSDK.framework avant d'ajouter le nouveau SDK.
Recherchez les fichiers extraits et glissez le répertoire VungleSDK.framework
dans Xcode sous Frameworks. Veillez à ajouter le dossier VungleSDK.framework
en tant que groupe (dossier jaune) et non comme une référence (dossier bleu).
Ajouter d'autres cadres requis
Le SDK Vungle exige que vous liez quelques autres cadres natifs à votre projet, alors cliquez sur votre projet dans Navigateur de projet et accédez à Général → Cadres et bibliothèques liés.
Plusieurs de ces cadres sont déjà inclus par défaut pour la plupart des projets Xcode, mais n'oubliez pas d'ajouter les éléments suivants qui ne sont pas déjà inclus :
AdSupport.framework
AudioToolbox.framework
AVFoundation.framework
CFNetwork.framework
CoreGraphics.framework
CoreMedia.framework
libz.dylib
oulibz.tbd
MediaPlayer.framework
QuartzCore.framework
StoreKit.framework
SystemConfiguration.framework
Remarque : le SDK Vungle version 6 ne prend pas en charge iOS 7. Si votre cible de déploiement est iOS 7, utilisez le SDK iOS Vungle version 4.1 ou une version antérieure et intégrez les cadres suivants :
UIKit.framework
WebKit.framework
Foundation.framework
Veillez à ce que le cadre VungleSDK apparaisse dans Cadres et bibliothèques liés.
Ajouter l'indicateur de l'éditeur de liens " -ObjC "
Cliquez sur votre projet dans Navigateur de projet et accédez à Paramètres Build → Liaison → Autres indicateurs de l'éditeur de liens . Ajoutez -ObjC à Autres indicateurs de l'éditeur de liens .
Étape 2. Supprimer la barre d'état iOS
Bien que cette étape ne soit pas obligatoire, nous vous recommandons de supprimer la barre d'état iOS pour veiller à ce que l'interaction et à la présentation de la publicité Vungle fonctionnent correctement. Pour supprimer la barre d'état, ouvrez votre Info.plist
, ajoutez la clé Vue apparence de la barre d'état basée sur un contrôleur, et définissez-la sur Non.
Étape 3. Ajouter le code
Initialiser le SDK
Initialisez le SDK dès que l'application démarre. Si vous utilisez un placement mis en cache automatiquement, cela donne au SDK suffisamment de temps pour mettre en cache une publicité pour le placement mis en cache automatiquement. Vous aurez besoin de l'ID d'application pour initialiser le SDK. Vous trouverez l'ID d'application dans le tableau de bord Vungle.
- (BOOL)startWithAppId:(nonnull NSString *)appID error:(NSError **)error;
Exemple de code :
#import <VungleSDK/VungleSDK.h>
...
NSError* error;
NSString* appID = @"Your_AppID_Here"; VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk startWithAppId:appID error:&error];
Lorsque le SDK a été initialisé avec succès, la méthode de fonction de rappel suivante est appelée :
- (void)vungleSDKDidInitialize;
Reportez-vous à la section "Fonctions de rappel du délégué" de cet article.
Vous pouvez également vérifier le statut de l'initialisation du SDK avec la propriété suivante :
@property (atomic, readonly, getter=isInitialized) BOOL initialized;
Lorsque le SDK est initialisé, il met automatiquement en cache une publicité pour le placement sélectionné si vous l'avez sélectionné comme mis en cache automatiquement dans le tableau de bord Vungle. Si vous utilisez cette fonction, nous vous recommandons de sélectionner le placement le plus consulté pour la mise en cache automatique.
Lorsque la publicité est mise en cache avec succès, la méthode de la fonction de rappel vungleAdPlayabilityUpdate
est appelée avec l'ID de référence du placement correspondant à votre placementmis en cache automatiquement. (Reportez-vous à la section "Vérifier la disponibilité de la publicité pour un placement" de cet article.)
Charger une publicité pour un placement
Pour les placements différents de ceux mis en cache automatiquement, appelez la méthode loadPlacementWithID
pour charger une publicité.
- (BOOL)loadPlacementWithID:(NSString *)placementID error:(NSError **)error;
Exemple de code :
NSError* error;
VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk loadPlacementWithID:"<Your_PlacementID>" error:&error];
Reportez-vous à la section "Vérifier la disponibilité de la publicité pour un placement"de cet article.
Vérifier la disponibilité de la publicité pour un placement
Lorsque le SDK a terminé de mettre en cache une publicité pour un placement, la méthode de fonction de rappel suivante est appelée :
- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID error:(nullable NSError *)error;
Exemple de code :
- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID error:(nullable NSError *)error {
if([placementID isEqualToString:@"<Your_PlacementID>"]) {
self.playButtonPlacement1.enabled = isAdPlayable;
}
}
Remarque : pour le placement mis en cache automatiquement, cette méthode de fonction de rappel est appelée uniquement lorsqu'une publicité devient disponible. Le SDK continuera de demander une publicité pour le placement mis en cache automatiquement. Pour tous les autres placements, cette méthode de fonction de rappel est appelée en cas d'échec du chargement (isAdPlayable
renvoie NON dans ce cas).
Vous pouvez également vérifier la disponibilité de la publicité pour un placement avec la propriété suivante :
- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID;
Diffuser une publicité
Après avoir veillé à ce qu'une publicité soit prête pour un placement, vous pouvez la diffuser avec la méthode suivante :
- (BOOL)playAd:(UIViewController *)controller options:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error;
Exemple de code :
VungleSDK* sdk = [VungleSDK sharedSDK]; NSError *error; [self.sdk playAd:self options:nil placementID:@"<Your_PlacementID_1>" error:&error]; if (error) { NSLog(@"Error encountered playing ad: %@", error); }
Publicités Flex Feed
Depuis la version 5.3 du SDK Vungle, nous prenons en charge les publicités Flex-Feed. Il s'agit du premier format publicitaire ne nécessitant pas un affichage en plein écran. Au lieu de cela, l'éditeur détermine les dimensions et le placement exacts du conteneur publicitaire dans son application. Ces conteneurs publicitaires peuvent se trouver dans des vues de collection ou de tableaux.
Chargement d'une publicité Flex Feed
Charger une publicité Flex Feed équivaut à charger une publicité plein écran ; toutefois, le placement doit être configuré pour prendre en charge Flex Feed. Contactez votre gestionnaire de compte Vungle afin d'activer Flex Feed en vue d'un placement.
Affichage d'une publicité Flex Feed
Les publicités Flex Feed ne s'affichent pas de la même manière que les publicités plein écran. Les publicités Flex Feed nécessitent de créer d'abord un conteneur pour la publicité. Ce conteneur est une UIView
. Vous pouvez placer cette UIView
à n'importe quel endroit de l'écran. La publicité s'adapte à n'importe quelle taille de conteneur, mais gardez à l'esprit qu'avec une résolution très basse, les publicités sont moins visibles. Vous devez alors appeler la fonction addAdViewToView
pour associer le conteneur à la publicité Flex Feed.
Présentation de la fonction :
/** * Pass in an UIView which acts as a container for the ad experience. This view container may be placed in random positions. * @param publisherView container view in which an ad will be displayed * @param options A reference to an instance of NSDictionary with customized ad playback options * @param placementID The placement defined on the Vungle dashboard * @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil * @return YES/NO in case of success/error while presenting an AdUnit */ - (BOOL)addAdViewToView:(UIView *)publisherView withOptions:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error;
Exemple de code :
NSError *error; NSDictionary *options = @{}; VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk addAdViewToView:_FlexFeedViewArea withOptions:options placementID: error:&error]; if (error) { NSLog(@"Error encountered while playing an ad: %@", error); }
Fermeture d'une publicité Flex Feed
En raison de la nature des publicités Flex Feed, 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, appelez la fonction finishedDisplayingAd
. Cette fonction ne fonctionne qu'avec les publicités Flex Feed et Flex View. Notez que cette fonction n'occupe aucun placement et qu'elle se contente de fermer une publicité native en cours de lecture.
Présentation de la fonction :
/** * This method must be called when the publisher is confident that they are finished displaying the ad unit. * This signals to the SDK that a new ad may be fetched or a different ad may be displayed. This will * be called in conjunction with `addViewToView:containedInViewController:withOptions:placementID:error:` */ - (void)finishedDisplayingAd;
Exemple de code :
//Ad is no longer on screen VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk finishedDisplayingAd];
Fonctions de rappel du délégué
Vous pouvez recevoir des fonctions de rappel du SDK avec VungleSDKDelegate
. Il existe quatre méthodes de fonction de rappel dans le délégué dans lesquelles vous êtes notifié des événements SDK.
Vous pouvez attacher et détacher votre délégué avec :
// Attach [[VungleSDK sharedSDK] setDelegate:yourDelegateInstance]; // Detach [[VungleSDK sharedSDK] setDelegate:nil];
Remarque : n'oubliez pas d'effacer le délégué enregistré lorsqu'il n'est plus nécessaire afin d'éviter les fuites de mémoire.
La méthode suivante est appelée lorsque le SDK est sur le point de lire une publicité vidéo. Il s'agit d'un excellent placement pour mettre en pause le gameplay, les effets sonores, les animations, etc.
- (void)vungleWillShowAdForPlacementID:(nullable NSString *)placementID;
La méthode suivante est appelée lorsque le SDK est sur le point de fermer une publicité vidéo. Il s'agit d'un excellent placement pour récompenser votre utilisateur et relancer le gameplay, les effets sonores, les animations, etc.
- (void)vungleWillCloseAdWithViewInfo:(VungleViewInfo *)info placementID:(NSString *)placementID;
La méthode suivante est appelée lorsque le SDK a fermé une annonce :
- (void)vungleDidCloseAdWithViewInfo:(VungleViewInfo *)info placementID:(NSString *)placementID;
VungleViewInfo
inclut les propriétés suivantes pour que vous puissiez vérifier le résultat de la diffusion de la vidéo :
@interface VungleViewInfo : NSObject //Represents a BOOL whether or not the video can be considered a completed view. @property (nonatomic, readonly) NSNumber *completedView; //The time in seconds that the user watched the video. @property (nonatomic, readonly) NSNumber *playTime; //Represents a BOOL whether or not the user clicked the download button. @property (nonatomic, readonly) NSNumber *didDownload; @end
La méthode suivante est appelée lorsque le SDK a modifié le statut de disponibilité de la publicité. Le booléen isAdPlayable indique la nouvelle jouabilité d'un placementID spécifique.
- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID error:(nullable NSError *)error;
Reportez-vous à la section "Vérifier la disponibilité de la publicité pour un placement"de cet article.
La méthode suivante est appelée lorsque le SDK est initialisé avec succès :
- (void)vungleSDKDidInitialize;
Options de personnalisation
Utilisez ces options pour personnaliser la lecture de la publicité.
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".
Clés d'option |
Valeur/type par défaut |
Description |
|
pivoter automatiquement
Un NSNumber représentant un masque de bits avec des orientations |
Définit l'orientation de la publicité. Nous vous conseillons d'autoriser les publicités à pivoter automatiquement, même si votre application est en mode portrait. De cette façon, l'utilisateur a la possibilité de visionner des vidéos en plein écran, ce qui permet une meilleure expérience utilisateur. Vous pouvez y parvenir en définissant l'orientation au niveau du contrôleur de vue (plutôt qu'un niveau du projet). |
|
nil
|
Définit votre ID d'utilisateur. La valeur est transmise au serveur Vungle, puis envoyée à votre serveur via un système de fonction de rappel serveur-à-serveur si un placement est défini sur "Récompensée". |
|
nil
|
Chaîne utilisée comme titre du dialogue d'alerte présenté lorsqu'un utilisateur ferme prématurément la lecture d'une annonce envoyée par le mécanisme d'incitation. |
|
"Voulez-vous vraiment ignorer cette publicité ? Si oui, vous pourriez ne pas obtenir votre récompense"
|
Chaîne utilisée en tant que corps du texte du dialogue d'alerte lorsqu'un utilisateur ferme prématurément la lecture d'une annonce envoyée par le mécanisme d'incitation. |
|
"Fermer"
|
Titre de la chaîne lorsque le texte du bouton Fermer de la boîte de dialogue d'alerte est présenté lorsqu'un utilisateur ferme prématurément la lecture d'une publicité envoyée par le mécanisme d'incitation. |
|
"Continuer"
|
Titre de la chaîne lorsque le texte du bouton Fermer de la boîte de dialogue d'alerte est présenté lorsqu'un utilisateur ferme prématurément la lecture d'une publicité envoyée par le mécanisme d'incitation. |
VunglePlayAdOptionKeyFlexViewAutoDismissSeconds |
|
Utilisez cette option pour que les annonces Flex Fiew soient automatiquement masquées après le nombre de secondes spécifié. |
VunglePlayAdOptionKeyOrdinal |
|
Si vous recevez des rapports de données ordinales de Vungle, utilisez ce champ pour transmettre les données ordinales de médiation. Il s'agit d'un nombre entier indiquant l'ordre dans lequel cette publicité était présentée dans la session de jeu (par exemple, si deux publicités ont déjà été affichées dans cette session et que cette publicité de Vungle était la troisième publicité affichée, indiquez "3"). Plus d'infos sur les données ordinales ici. |
NSDictionary *options = @{VunglePlayAdOptionKeyOrientations: @(UIInterfaceOrientationMaskLandscape), VunglePlayAdOptionKeyUser: @"userGameID", VunglePlayAdOptionKeyIncentivizedAlertBodyText : @"If the video isn't completed you won't get your reward! Are you sure you want to close early?", VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText : @"Close", VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText : @"Keep Watching", VunglePlayAdOptionKeyIncentivizedAlertTitleText : @"Careful!"}; // Pass in dict of options, play ad NSError *error; [self.sdk playAd:self options:options placementID: error:&error]; if (error) { NSLog(@"Error encountered playing ad: %@", error); }
Option Muet
L'instance SDK Vungle offre la possibilité de diffuser des publicités en désactivant le son. Vous pouvez définir la propriété Muet sur true avant d'envoyer un playAd()
.
Exemple de code :
VungleSDK* sdk = [VungleSDK sharedSDK]; self.sdk.muted = true;
Remarque : cette option s'applique uniquement au type de publicité standard. L'option Muet pour les publicités Dynamic Template peut être configurée sur le tableau de bord.
Instructions relatives à la mise en œuvre recommandée du RGPD
Pour utiliser les API Vungle pour mettre à jour ou demander le statut du consentement de l'utilisateur (comme recommandé dans l'Option 1 de la section RGPD : mise en œuvre recommandée), utilisez ces fonctions :
// This function sets the consent status that will be recorded in Vungle SDK. Accepted values: 'VungleConsentAccepted' or 'VungleConsentDenied'.
// To set the user's consent status to opted in:
[[VungleSDK sharedSDK] updateConsentStatus:VungleConsentAccepted];
// To set the user's consent status to opted out:
[[VungleSDK sharedSDK] updateConsentStatus:VungleConsentDenied];
// To find out what the user's current consent status is:
// (Check against enum values: 'VungleConsentAccepted' or 'VungleConsentDenied'.) [[VungleSDK sharedSDK] getCurrentConsentStatus];
VungleConsentStatus
est une énumération contenant deux états :
VungleConsentAccepted
VungleConsentDenied
Le SDK possède également un état initial "unknown" (inconnu), qui demande à l'utilisateur d'activer ou de désactiver la collecte de données utilisateur. Notez que cette demande n'est effectuée que sur les adresses IP en provenance d'Europe.
Déboguer
Si vous avez besoin d'informations sur le SDK, vous pouvez les obtenir grâce à cette propriété :
- (NSDictionary *)debugInfo;
Si vous souhaitez que le SDK produise des journaux, utilisez la méthode suivante :
- (void)setLoggingEnabled:(BOOL)enable;
Protocole VungleSDKLogger
@protocol VungleSDKLogger - (void)vungleSDKLog:(NSString*)message; @end
Le singleton VungleSDK envoie des événements de journalisation à n'importe quelle classe associée suivant le protocole VungleSDKLogger. L'événement du journal contient la valeur NSString qui est également imprimée sur la console (si l'enregistrement a été activé). Pour connecter votre enregistreur d'événements, utilisez ce qui suit :
[sdk attachLogger:yourLoggerInstance];
Comme mentionné ci-dessus, il est important de supprimer les enregistreurs connectés du SDK Vungle. Les enregistreurs peuvent être déconnectés en utilisant l'approche suivante :
[sdk detachLogger:yourLoggerInstance];
Protocole assetLoader
@protocol VungleAssetLoader /** * doit retourner un NSData valide contenant les données (brutes) d'une image pour le chemin spécifié ou nil. */ - (NSData*)vungleLoadAsset:(NSString*)path; /** * doit retourner une UIImage valide pour le chemin spécifié ou nil. */ - (UIImage*)vungleLoadImage:(NSString*)path; @end