Pour résoudre ce problème, AdMob propose l'initialisation d'adaptateur configurable. Cette fonctionnalité vous permet de contrôler les adaptateurs initialisés pour votre première impression d'annonce et de réduire la latence de cette impression.
Ce guide couvre les aspects suivants de l'initialisation de l'adaptateur configurable :
- Créer une configuration d'adaptateur
- Ignorer les adaptateurs non initialisés
- Initialiser les adaptateurs restants
Prérequis
- Importez Google Mobile Ads SDK 13.4.0 ou version ultérieure.
- Configurez Google Mobile Ads SDK.
Pour activer cette fonctionnalité, ajoutez
#import <GoogleMobileAds/GoogleMobileAds_Beta.h>en Objective-C ouimport GoogleMobileAds_Privateen Swift.Swift
import GoogleMobileAds import GoogleMobileAds_PrivateObjective-C
#import <GoogleMobileAds/GoogleMobileAds.h> #import <GoogleMobileAds/GoogleMobileAds_Beta.h>
Créer une configuration d'adaptateur
Une configuration d'initialisation de l'adaptateur indique à Google Mobile Ads SDK d'initialiser uniquement les adaptateurs requis. Cela empêche les adaptateurs inutiles de bloquer votre première demande d'annonce, ce qui permet d'économiser des ressources de calcul et de réduire considérablement la latence de la première impression d'annonce.
Pour optimiser les performances de votre application, tenez compte des stratégies suivantes lorsque vous créez une configuration d'initialisation de l'adaptateur :
Prioriser un format d'annonce ou un bloc d'annonces spécifique
Améliorez les performances des applications qui affichent une annonce immédiatement au lancement, comme une annonce à l'ouverture d'une application, en déclarant le format d'annonce ou le bloc d'annonces spécifiques dans la configuration d'initialisation de votre adaptateur.
L'exemple suivant crée une configuration d'initialisation de l'adaptateur qui n'initialise que les adaptateurs de médiation requis pour un bloc d'annonces à l'ouverture d'une application spécifique, avec un délai avant expiration de cinq secondes :
Swift
let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdUnitIDs = [adUnitID]
adapterConfig.initializationTimeout = 5.0
Objective-C
GADMediationInitializationConfiguration *adapterConfig =
[[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdUnitIDs = [NSSet setWithArray:@[ kTestAdUnitID ]];
adapterConfig.initializationTimeout = 5.0;
L'exemple suivant crée une configuration d'initialisation de l'adaptateur qui n'initialise que les adaptateurs de médiation requis pour toutes les annonces à l'ouverture d'une application et définit un délai d'expiration de cinq secondes :
Swift
let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdFormats = [AdFormat.appOpen.rawValue as NSNumber]
adapterConfig.initializationTimeout = 5.0
Objective-C
GADMediationInitializationConfiguration *adapterConfig =
[[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdFormats = [NSSet setWithArray:@[ @(GADAdFormatAppOpen) ]];
adapterConfig.initializationTimeout = 5.0;
Initialiser des adaptateurs de médiation spécifiques
Si vous savez exactement quels partenaires de médiation remplissent généralement votre première impression d'annonce, vous pouvez initialiser uniquement cet adaptateur spécifique en fournissant le nom de la classe d'adaptateur dans votre configuration d'initialisation d'adaptateur. Combinez cela avec le saut explicite des adaptateurs non initialisés et la définition d'un délai avant expiration pour Google Mobile Ads SDK afin de ne pas attendre les adaptateurs non initialisés restants pendant l'enchère.
L'exemple suivant crée une configuration d'initialisation d'adaptateur qui initialise un adaptateur de médiation spécifique et définit un délai avant expiration de cinq secondes :
Swift
let adapterConfig = MediationInitializationConfiguration()
adapterConfig.includedAdapterClasses = [adapterClassName]
adapterConfig.initializationTimeout = 5.0
Objective-C
GADMediationInitializationConfiguration *adapterConfig =
[[GADMediationInitializationConfiguration alloc] init];
adapterConfig.includedAdapterClasses = [NSSet setWithArray:@[ kTestAdapterClassName ]];
adapterConfig.initializationTimeout = 5.0;
Exclure des adaptateurs de médiation spécifiques
Si vous constatez que certains adaptateurs de médiation présentent une latence constamment élevée, vous pouvez les exclure et les initialiser ultérieurement.
L'exemple suivant crée une configuration d'initialisation de l'adaptateur qui exclut l'initialisation d'adaptateurs spécifiques et définit un délai d'expiration de cinq secondes :
Swift
let adapterConfig = MediationInitializationConfiguration()
adapterConfig.excludedAdapterClasses = [adapterClassName]
adapterConfig.initializationTimeout = 5.0
Objective-C
GADMediationInitializationConfiguration *adapterConfig =
[[GADMediationInitializationConfiguration alloc] init];
adapterConfig.excludedAdapterClasses = [NSSet setWithArray:@[ kTestAdapterClassName ]];
adapterConfig.initializationTimeout = 5.0;
Ignorer les adaptateurs non initialisés
Si vous prévoyez d'initialiser ou d'exclure des adaptateurs de médiation spécifiques, vous pouvez configurer votre demande d'annonce de sorte qu'elle ignore les adaptateurs non initialisés qui sont toujours présents dans votre cascade d'annonces.
Si vous ne créez pas de configuration d'adaptateur, vous pouvez toujours configurer votre demande d'annonce pour ignorer les adaptateurs non initialisés. Google Mobile Ads SDK émet une demande d'annonce sans attendre que les adaptateurs expirent ou ne s'initialisent pas.
L'exemple suivant initialise le SDK avec une configuration d'initialisation d'adaptateur et crée une demande d'annonce à l'ouverture d'une application qui ignore les adaptateurs non initialisés :
Swift
await MobileAds.shared.start(with: adapterInitializationConfig)
// Make your ad request after adapter initialization completes.
let request = Request()
// Set this to guarantee that the ad request
// doesn't wait for any other uninitialized adapters.
request.skipUninitializedAdapters = true
do {
let _ = try await AppOpenAd.load(with: adUnitID, request: request)
} catch {
print("Failed to load app open ad with error: \(error.localizedDescription)")
// TODO: Handle error
}
// Handle non time-sensitive tasks after the ad has loaded regardless of whether ad load
// succeeded.
performPostLaunchSetup()
Objective-C
[[GADMobileAds sharedInstance]
startWithMediationInitializationConfiguration:adapterInitializationConfig
completionHandler:^(GADInitializationStatus *_Nonnull status) {
// Make your ad request after adapter initialization
// completes.
GADRequest *request = [GADRequest request];
// Set this to guarantee that the ad request
// doesn't wait for any other uninitialized adapters
request.shouldSkipUninitializedAdapters = YES;
[GADAppOpenAd
loadWithAdUnitID:adUnitID
request:request
completionHandler:^(GADAppOpenAd *_Nullable ad,
NSError *_Nullable error) {
if (error) {
NSLog(@"Failed to load app open ad with error: %@",
error.localizedDescription);
}
// Handle non time-sensitive tasks after the
// ad has loaded regardless of whether ad load succeeded.
[self performPostLaunchSetup];
}];
}];
Initialiser les adaptateurs restants
Une fois vos opportunités publicitaires urgentes chargées, initialisez vos adaptateurs restants pour assurer une couverture complète de la médiation des partenaires pour le reste de la session de l'application.
L'exemple suivant initialise le reste des adaptateurs en fournissant une configuration vide :
Swift
// Provide start with nil to initialize any adapters
// not initialized with configurable initialization.
MobileAds.shared.start(with: nil) { status in
// Remaining adapters are now initialized.
}
Objective-C
// Call start with nil to initialize any adapters not initialized via configurable initialization.
[[GADMobileAds sharedInstance]
startWithMediationInitializationConfiguration:nil
completionHandler:^(GADInitializationStatus *_Nonnull status) {
// Remaining adapters are now initialized.
}];