Démarrage avec Vungle - iOS SDK version 5

Contenu

Avant de commencer

  • Le SDK Vungle iOS version 5 prend en charge iOS 8+.
  • Le SDK Vungle iOS version 5 a été testé avec iOS 11 bêta/GM Seed.
  • Le SDK Vungle iOS version 5 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 8.0 et 9.0. Veillez à utiliser Xcode 8.0 ou supérieur pour garantir une intégration en douceur.

É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", "5.3.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 5. Si vous procédez à la mise à jour à partir d'une version précédente du SDK Vungle, supprimez tout d'abord le répertoire VungleSDK.framework entièrement 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
  • Foundation.framework
  • libz.dylib or libz.tbd
  • MediaPlayer.framework
  • QuartzCore.framework
  • StoreKit.framework
  • SystemConfiguration.framework
  • UIKit.framework
  • WebKit.framework
    Remarque : Définissez le WebKit.framework Statut sur « Optional » si vous disposez d'iOS 7 en tant que cible de déploiement.

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

Remarque :​ un emplacement par défaut est créé automatiquement pour chaque application. Vous devez fournir son ID de référence de l'emplacement lors de l'étape d'initialisation que vous envisagiez ou non de profiter de ses fonctions. Si vous créez plusieurs emplacements, fournissez tous les ID de référence.

Initialisez le SDK dès que l'application démarre afin de lui donner suffisamment de temps pour mettre en cache une publicité pour l'emplacement mis en cache automatiquement. Vous aurez besoin de l'ID d'application et de tous les ID de référence de l'emplacement que vous souhaitez utiliser dans votre application (active et inactive)pour initialiser le SDK. Vous pouvez trouver ces ID dans le tableau de bord Vungle (reportez-vous à la section Définition des emplacements dans votre tableau de bord Vungle).

- (BOOL)startWithAppId:(nonnull NSString *)appID placements:(nonnull NSArray *)placements error:(NSError **)error;

Exemple de code :

#import <VungleSDK/VungleSDK.h>
...
NSError* error;
NSString* appID = @"Your_AppID_Here"; NSArray* placementIDsArray = @[@"<Your_PlacementID_1>", @"<Your_PlacementID_2>", @"<Your_PlacementID_3>"]; VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk startWithAppId:appID placements:placementIDsArray 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 l'emplacement que vous avez sélectionné comme mis en cache automatiquement dans le tableau de bord Vungle. Nous vous recommandons de sélectionner les emplacements les plus consultés 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 de l'emplacement correspondant à votre emplacement mis en cache automatiquement. (Reportez-vous à la section " Vérifier la disponibilité de la publicité pour un emplacement "de cet article.)

Charger une publicité pour un emplacement

Pour les emplacements 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 emplacement "de cet article.

Vérifier la disponibilité de la publicité pour un emplacement

Lorsque le SDK a terminé de mettre en cache une publicité pour un emplacement, la méthode de fonction de rappel suivante est appelée :

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID; 

Exemple de code :

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID {
    if([placementID isEqualToString:@"<Your_PlacementID>"]) {
        self.playButtonPlacement1.enabled = isAdPlayable;
    }
}

Remarque : pour l'emplacement 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 l'emplacement mis en cache automatiquement. Pour tous les autres emplacements, 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 emplacement avec la propriété suivante :

- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID;

Jouer une publicité

Après avoir veillé à ce qu'une publicité soit prête pour un emplacement, vous pouvez la jouer 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

La version 5.3 du SDK Vungle prend désormais en charge les publicités Flex Feed. Il s'agit du premier format de publicité qui ne nécessite pas d'écran entier ; à la place, l'éditeur détermine les dimensions et l'emplacement exacts du conteneur de publicité au sein de son application. Ces conteneurs de publicités peuvent se trouver dans des vues de collection ou de tableau.

Chargement d'une publicité Flex Feed

Charger une publicité Flex Feed équivaut à charger une publicité plein écran ; toutefois, l'emplacement doit être configuré pour prendre en charge Flex Feed. Contactez votre gestionnaire de compte Vungle afin d'activer Flex Feed en vue d'un emplacement.

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 arrêter de regarder la vidéo sans fermer la publicité. Vous devez donc indiquer au SDK de fermer la publicité lorsqu'elle n'apparaît plus à l'écran. Pour ce faire, appelez la fonction finishedDisplayingAd .

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];
// Détacher
[[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 emplacement 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 emplacement pour récompenser votre utilisateur et relancer le gameplay, les effets sonores, les animations, etc.


- (void)vungleWillCloseAdWithViewInfo:(VungleViewInfo *)info placementID:(NSString *)placementID;

VungleViewInfo includes the following properties for you to check a result of ad play:

@interface VungleViewInfo : NSObject 
//Représente un BOOL indiquant si la vidéo a été visualisée ou non dans sa totalité.
@property (nonatomic, readonly) NSNumber *completedView;
//La durée en secondes pendant laquelle l'utilisateur a regardé la vidéo.
@property (nonatomic, readonly) NSNumber *playTime;
//Représente un BOOL si l'utilisateur a cliqué ou non sur le bouton de téléchargement.
@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:(NSString *)placementID;

Reportez-vous à la section " Vérifier la disponibilité de la publicité pour un emplacement "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écompensé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

VunglePlayAdOptionKeyOrientations

pivoter automatiquement

UIInterfaceOrientationMaskAll

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 sur un niveau de contrôleur de vue (plutôt qu'un niveau du projet).

VunglePlayAdOptionKeyUser

nil

NSString

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 emplacement est défini sur " Récompensée ".

VunglePlayAdOptionKeyIncentivizedAlertTitleText

nil

NSString

Chaîne utilisée comme titre du dialogue d'alerte présenté lorsque un utilisateur ferme prématurément une expérience de lecture d'une annonce envoyée par le mécanisme d'incitation.

VunglePlayAdOptionKeyIncentivizedAlertBodyText

" Voulez-vous vraiment ignorer cette publicité ? Si oui, vous pourriez ne pas obtenir votre récompense "

NSString

Chaîne utilisée en tant que corps du texte du dialogue d'alerte lorsqu'un utilisateur ferme prématurément une expérience de lecture d'une annonce envoyée par le mécanisme d'incitation.

VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText

" Fermer "

NSString

Titre de la chaîne lorsque le texte du bouton fermer du dialogue d'alerte est présenté lorsqu'un utilisateur ferme prématurément une expérience d'annonce envoyée par le mécanisme d'incitation.

VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText

" Continuer "

NSString

Titre de la chaîne lorsque le texte du bouton fermer du dialogue d'alerte est présenté lorsqu'un utilisateur ferme prématurément une expérience d'annonce envoyée par le mécanisme d'incitation.

Exemple de code :

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!"};

// Passer dans un dictionnaire d'option, jouer la publicité
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 jouer 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.

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
Vous avez d’autres questions ? Envoyer une demande

Commentaires