Les publicités vidéo avec récompense sont une expérience en plein écran dans laquelle les utilisateurs choisissent de regarder une publicité vidéo en échange de quelque chose de valeur, comme une devise virtuelle, des objets dans l’application, des contenus exclusifs, etc. L’expérience publicitaire dure entre 15 et 30 secondes, ne peut pas être ignorée et contient une fiche finale avec un appel à l’action. Une fois la vidéo terminée, vous recevrez un rappel vous invitant à accorder la récompense suggérée à l’utilisateur.
Vous trouverez ci-dessous des détails concernant l’implémentation des publicités vidéo avec récompense de l’Audience Network sur iOS.
Notez que la vidéo avec récompense est prise en charge uniquement sur iOS 9 et les versions ultérieures.
Le format de vidéo avec récompense de l’Audience Network est désormais inclus dans le SDK public. La vidéo avec récompense sera bientôt disponible pour toutes les applications de jeu. Si la vidéo avec récompense n’apparaît pas dans le Gestionnaire de monétisation et que vous disposez du dernier SDK, demandez la vidéo.
Assurez-vous d’avoir terminé le guide de démarrage et le guide Démarrer avec iOS avant de commencer.
À présent, dans votre fichier d’en-tête du contrôleur d’affichage (ou fichier Swift, si vous êtes un utilisateur de Swift), importez FBAudienceNetwork
, indiquez la conformité au protocole FBRewardedVideoAdDelegate
, puis ajoutez une variable d’instance pour l’unité de publicité vidéo avec récompense.
import UIKit
import FBAudienceNetwork
class ViewController: UIViewController, FBRewardedVideoAdDelegate {
private var rewardedVideoAd: FBRewardedVideoAd?
}
Ajoutez à votre contrôleur d’affichage une fonction qui initialise l’objet vidéo avec récompense et met en cache le contenu vidéo avant le moment auquel vous souhaitez le montrer.
override func viewDidLoad() {
super.viewDidLoad()
// Instantiate an rewarded video object.
// NOTE: the placement ID will eventually identify this as your app. You can ignore it while you are testing
// and replace it later when you have signed up.
// While you are using this temporary code you will only get test ads and if you release
// your code like this to the App Store your users will not receive ads (you will get a 'No Fill' error).
let rewardedVideoAd = FBRewardedVideoAd(placementID: "YOUR_PLACEMENT_ID")
rewardedVideoAd.delegate = self
// For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
rewardedVideoAd.load()
self.rewardedVideoAd = rewardedVideoAd
}
L’ID correspondant à YOUR_PLACEMENT_ID
est un ID temporaire à des fins de tests uniquement.
Si vous utilisez cet ID temporaire dans votre code en direct, vos utilisateurs ne recevront pas de publicité, mais une erreur No Fill. Vous devez revenir ici après le test et remplacer cet ID temporaire par un ID de placement en direct.
Pour découvrir comment générer un ID de placement en direct, reportez-vous à Configuration d’Audience Network
À présent que vous avez ajouté le code de chargement de la publicité, vous pouvez ajouter des fonctions qui géreront différents évènements.
Par exemple :
rewardedVideoAdDidLoad
garantit que votre application sait que la publicité est mise en cache et est prête à être affichéerewardedVideoAdVideoComplete
vous permet de savoir quand fournir votre récompense à l’utilisateur après la fin d’une vidéofunc rewardedVideoAdDidLoad(_ rewardedVideoAd: FBRewardedVideoAd) {
print("Video ad is loaded and ready to be displayed")
}
func rewardedVideoAd(_ rewardedVideoAd: FBRewardedVideoAd, didFailWithError error: Error) {
print("Rewarded video ad failed to load")
}
func rewardedVideoAdDidClick(_ rewardedVideoAd: FBRewardedVideoAd) {
print("Video ad clicked")
}
func rewardedVideoAdDidClose(_ rewardedVideoAd: FBRewardedVideoAd) {
print("Rewarded Video ad closed - this can be triggered by closing the application, or closing the video end card")
}
func rewardedVideoAdVideoComplete(_ rewardedVideoAd: FBRewardedVideoAd) {
print("Rewarded Video ad video completed - this is called after a full video view, before the ad end card is shown. You can use this event to initialize your reward")
}
Enfin, lorsque vous êtes prêt(e) à diffuser la publicité vidéo avec récompense, vous pouvez appeler le code suivant dans votre propre fonction de récompense.
private func showRewardedVideoAd() {
guard let rewardedVideoAd = rewardedVideoAd, rewardedVideoAd.isAdValid else {
return
}
rewardedVideoAd.show(fromRootViewController: self)
}
La méthode de diffusion d’une publicité vidéo avec récompense inclut un indicateur booléen animated
qui vous permet d’animer la présentation. Par défaut, il a la valeur YES
/ true
, mais vous pouvez la remplacer.
Lorsqu’elles sont exécutées sur le simulateur, les publicités tests sont diffusées par défaut. Pour activer les publicités tests sur un appareil, ajoutez la ligne de code suivante avant le chargement d’une publicité : AdSettings.addTestDevice(HASHED ID)
. Utilisez l’ID chiffré imprimé sur le logcat la première fois que vous effectuez une demande de chargement d’une publicité sur un appareil.
Facultatif : vous pouvez ajouter les fonctions supplémentaires suivantes pour gérer les cas où la publicité vidéo avec récompense va se fermer ou lorsque l’impression de la vidéo avec récompense est en cours de capture :
func rewardedVideoAdWillClose(_ rewardedVideoAd: FBRewardedVideoAd) {
print("The user clicked on the close button, the ad is just about to close")
}
func rewardedVideoAdWillLogImpression(_ rewardedVideoAd: FBRewardedVideoAd) {
print("Rewarded Video impression is being captured")
}
Si vous gérez les récompenses de vos utilisateurs côté serveur, Facebook vous propose une solution entièrement sécurisée reposant sur une technique de validation. Notre serveur communiquera avec un point de terminaison https particulier pour valider chaque impression publicitaire et pour valider l’octroi de la récompense.
onRewardServerSuccess
: déclenché uniquement si une réponse 200 a été reçue à l’étape 3. onRewardServerFailed
: déclenché si une réponse autre que 200 a été reçue à l’étape 3. Un exemple d’URL qui atteindra votre point de terminaison d’éditeur, depuis le serveur Facebook.
https://www.your_end_point.com/?token=APP_SECRET&puid=USER_ID&pc=REWARD_ID&ptid=UNIQUE_TRANSACTION_ID
Veuillez communiquer votre point de terminaison d’éditeur à votre représentant Facebook afin d’activer cette fonctionnalité.
Il est possible de définir les données de récompense (USER_ID
et CURRENCY
) avant ou après la méthode loadAd
. Les deux données sont incluses dans l’extrait de code ci-dessous.
let rewardedVideoAd = FBRewardedVideoAd(placementID: "YOUR_PLACEMENT_ID")
rewardedVideoAd.delegate = self
// Set the rewarded ad data before or after `load` method is called
rewardedVideoAd.setRewardDataWithUserID("USER_ID", withCurrency: "CURRENCY")
// For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
rewardedVideoAd.load()
self.rewardedVideoAd = rewardedVideoAd
En plus des fonctions répertoriées ci-dessus dans le code FBRewardedVideoAdDelegate
, les événements suivants doivent être utilisés pour gérer l’octroi des récompenses dans votre application. Ce qui suit peut être utilisé avec les évènements mentionnés ci-dessus.
func rewardedVideoAdServerRewardDidFail(_ rewardedVideoAd: FBRewardedVideoAd) {
print("Rewarded video ad not validated, or no response from server")
}
func rewardedVideoAdServerRewardDidSucceed(_ rewardedVideoAd: FBRewardedVideoAd) {
print("Rewarded video ad validated by server")
}
Notez que les rappels de validation du serveur se produiront uniquement après la fermeture de la fiche finale par un utilisateur. Vous ne devez pas désaffecter l’objet vidéo avec récompense avant la survenue de l’un de ces rappels.
Relevant code samples in both Swift and Objective C are available on our GitHub sample app repository
Test your ads integration with your app
Submit your app for review