Les annonces natives sont des éléments d'annonce qui sont présentés aux utilisateurs via des composants d'interface utilisateur qui sont natifs sur la plate-forme. Elles s'affichent à l'aide des classes que vous utilisez déjà dans vos storyboards et peuvent être mis en forme pour correspondre à la conception visuelle de votre application.
Lors du chargement d'une annonce native, votre application reçoit un objet d'annonce contenant ses éléments, et l'application, au lieu du SDK Google Mobile Ads, chargée de les afficher.
De manière générale, la mise en œuvre d'annonces natives s'effectue en deux étapes: Chargement d'une annonce à l'aide du SDK, puis affichage du contenu de l'annonce dans votre application.
Cette page explique comment utiliser le SDK pour charger annonces natives.
Prérequis
- Suivez le guide de démarrage.
Toujours tester avec des annonces tests
Lorsque vous créez et testez vos applications, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production.
Le moyen le plus simple de charger des annonces tests consiste à utiliser notre ID de bloc d'annonces test dédié les annonces natives sur iOS:
ca-app-pub-3940256099942544/3986624511
Il a été spécialement configuré pour afficher des annonces tests pour chaque demande. et l'utiliser dans vos propres applications lors du codage, des tests et du débogage. Assurez-vous simplement que remplacez-le par votre propre ID de bloc d'annonces avant de publier votre application.
Pour en savoir plus sur le fonctionnement des annonces tests du SDK Google Mobile Ads, consultez Tester les annonces
Charger les annonces
Les annonces natives sont chargées
GADAdLoader
qui envoie des messages à leurs délégués
GADAdLoaderDelegate
standard.
Initialiser le chargeur d'annonces
Avant de pouvoir charger une annonce, vous devez initialiser le chargeur d'annonces.
Le code suivant montre comment initialiser un GADAdLoader
:
Swift
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
Vous aurez besoin d'un ID de bloc d'annonces (vous pouvez utiliser l'ID de test), de constantes à transmettre dans le tableau adTypes
pour spécifier les formats natifs que vous souhaitez demander, ainsi que de toutes les options que vous souhaitez définir dans le paramètre options
. La liste des possibilités
du paramètre options
sont disponibles dans la section Configurer une annonce native
Options.
Le tableau adTypes
doit contenir
cette constante :
Implémenter le délégué du chargeur d'annonces
Le délégué du chargeur d'annonces doit implémenter des protocoles spécifiques à votre type d'annonce.
Pour les annonces natives, le protocole GADNativeAdLoaderDelegate
inclut un message
envoyé au délégué lors du chargement d'une annonce native.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Demander des annonces
Une fois votre GADAdLoader
initialisé, appelez sa méthode loadRequest:
pour
demander une annonce:
Swift
adLoader.load(GADRequest())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
La
loadRequest:
dans
GADAdLoader
accepte les mêmes
GADRequest
comme les bannières et les interstitiels. Vous pouvez utiliser des objets de requête pour ajouter
des informations de ciblage, tout comme vous
avec d'autres types d'annonces.
Charger plusieurs annonces (facultatif)
Pour charger plusieurs annonces avec une seule demande, définissez le paramètre
GADMultipleAdsAdLoaderOptions
lors de l'initialisation d'un objet GADAdLoader
.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
Objective-C
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
Le nombre d'annonces par demande est limité à cinq, et il n'est pas garanti que le SDK renvoie le nombre exact d'annonces demandées.
Les annonces Google renvoyées seront toutes différentes les unes des autres, bien que les annonces provenant de un inventaire réservé ou des acheteurs tiers ne sont pas forcément uniques.
N'utilisez pas la classe GADMultipleAdsAdLoaderOptions
si vous utilisez la médiation,
car les demandes de plusieurs annonces natives ne fonctionnent actuellement pas pour les ID de bloc d'annonces
ont été configurées pour la médiation.
Déterminer à quel moment le chargement est terminé
Une fois qu'une application a appelé loadRequest:
, elle peut obtenir les résultats de la requête en utilisant
appels au:
adLoader:didFailToReceiveAdWithError:
dansGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
dansGADNativeAdLoaderDelegate
Une demande pour une seule annonce entraînera un appel à l'une de ces méthodes.
Une demande pour plusieurs annonces entraînera au moins un rappel à la méthode ci-dessus. méthodes, mais pas plus que le nombre maximal d'annonces demandées.
De plus, GADAdLoaderDelegate
propose adLoaderDidFinishLoading
. Cette méthode déléguée indique que le chargement d'un chargeur d'annonces est terminé
et aucune autre annonce ou erreur ne sera signalée pour la demande. Voici un exemple d'utilisation lorsque vous chargez plusieurs annonces natives en même temps :
Swift
class ViewController: UIViewController, GADNativeAdLoaderDelegate {
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ multipleAdOptions ])
adLoader.delegate = self
adLoader.load(GADRequest())
}
func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd) {
// A native ad has loaded, and can be displayed.
}
func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
// The adLoader has finished loading ads, and a new request can be sent.
}
}
Objective-C
@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];
}
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd {
// A native ad has loaded, and can be displayed.
}
- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
// The adLoader has finished loading ads, and a new request can be sent.
}
@end
Traiter les requêtes ayant échoué
Les protocoles ci-dessus étendent le protocole GADAdLoaderDelegate
, qui définit un
message envoyé en cas d'échec de chargement des annonces.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
Recevoir une notification en cas d'événement lié aux annonces natives
Pour recevoir des notifications en cas d'événements liés aux interactions avec les annonces natives, définissez le délégué de l'annonce native:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Ensuite, implémentez
GADNativeAdDelegate
pour recevoir les appels délégués suivants:
Swift
func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
Objective-C
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
Bonnes pratiques
Suivez ces règles lors du chargement des annonces.
Les applications qui utilisent des annonces natives dans une liste doivent effectuer une mise en cache préalable de la liste d'annonces.
Lorsque vous mettez en cache des annonces, effacez votre cache et actualisez la page au bout d'une heure.
Ne pas rappeler
loadRequest:
sur unGADAdLoader
jusqu'à la demande précédente se termine, comme l'indique l'icôneadLoaderDidFinishLoading:
.
Afficher votre annonce
Une fois l'annonce chargée, il ne vous reste plus qu'à la présenter à vos utilisateurs. Accédez à notre atelier natif avancé guide pour savoir comment procéder.