Compléter le placement iAd avec AdMob

La publicité par clic au sein d'une application mobile est un excellent moyen de gagner de l'argent avec vos applications gratuites ou peu coûteuses. Bien qu'il existe de nombreux choix, de nombreux développeurs iOS ont tendance à utiliser la plate-forme iAds pour diverses raisons, notamment la simplicité, l'esthétique et un CPM élevé..

Bien que iAds soit génial, ce n'est pas tout à fait la solution miracle que vous recherchez. Etant donné que iAds sert un contenu très spécifique de fournisseurs qui doivent avoir un contrat très spécifique avec Apple, ils ne parviennent souvent pas à remplir leurs obligations dans certaines situations. Ces situations peuvent être liées à une géolocalisation dans laquelle les annonces n'ont pas été placées, à des pays étrangers ou simplement à un manque d'éditeurs pour une période donnée..

Dans la version de production de l'application Caterpillar que j'ai créée, j'ai implémenté iAds et j'ai constaté que le taux de remplissage se situait quelque part dans la plage des 75%. C'est pas mal, Cependant, AdMob se situe généralement dans les 98%! Cela m'amène au but de ce post.

Ne serait-il pas formidable d'avoir une solution hybride pour remplir les espaces publicitaires avec les annonces AdMob lorsque iAds ne parvient pas à diffuser?


Étape 1: Configuration de iAds

Puisque c'est ne pas un tutoriel iAds, nous allons juste commencer avec un très configuration simple iAds. Ce sera une bannière au sommet d’un écran UIView. J'ai commencé avec un modèle de projet à vue unique et ajouté le code suivant au ViewController.h fichier:

 #importation  #importation  @interface ViewController: UIViewController @property (nonatomic, strong) ADBannerView * bannerView; @fin

Il s’agit simplement de déclarer notre bannière publicitaire qui sera affichée dans la vue. Voyons maintenant le code pour afficher la bannière publicitaire à l’intérieur de ViewController.m:

 #import "ViewController.h" @implementation ViewController @synthesize bannerView = _bannerView; - (void) viewDidLoad [super viewDidLoad]; self.bannerView = [[ADBannerView alloc] initWithFrame: CGRectMake (0, 0, 320, 50)]; [self.bannerView setRequiredContentSizeIdentifiers: [NSSet setWithObjects: ADBannerContentSizeIdentifierPortrait, nil]]; self.bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; [self.bannerView setDelegate: self]; [self.view addSubview: self.bannerView];  - (void) bannerView: (ADBannerView *) bannière didFailToReceiveAdWithError: (NSError *) error NSLog (@ "iad failed");  @fin

Ceci charge un ADBannerView en haut de la fenêtre définie en mode portrait. À partir de maintenant, lorsque les iAds ne parviennent pas à se charger, cela affichera simplement "iAd Failed" dans le journal, comme vous pouvez le voir dans le journal. bannerView: didFailToReceiveAdWithError méthode déléguée. Nous utiliserons cette méthode déléguée pour remplacer la bannière iAd par une bannière AdMob..


Étape 2: Configuration AdMob

Commencez par télécharger le SDK iOS AdMob ici:

http://code.google.com/mobile/ads/download.html

Extrayez-le quelque part sur le disque et faites glisser chaque fichier dans votre projet. Lorsque le système vous demande si vous souhaitez copier les fichiers, cochez Oui..

Il existe également certaines bibliothèques que vous devez lier pour utiliser AdMob:

  • AudioToolbox
  • MessageUI
  • Configuration du système
  • CoreGraphics

Une fois cela fait, vous devriez être prêt à mettre en œuvre les annonces AdMob..


Étape 3: Remplissez l'emplacement iAd avec AdMob

Commençons par revisiter ViewController.h et mettre à jour le code pour ressembler à ceci:

 #importation  #importation  #import "GADBannerView.h" @interface ViewController: UIViewController @property (nonatomic, strong) ADBannerView * bannerView; @property (nonatomic, strong) GADBannerView * admobBannerView; @fin

Tout ce que nous avons fait ici a été de dire à notre classe d’être un délégué de GADBannerView et créé une propriété pour un GADBannerView. Aussi, assurez-vous que vous @ synthétiser l'admobBannerView dans le ViewController.m fichier.

La dernière partie consiste à remplacer l'iAd par la bannière AdMob en cas d'échec du chargement. Cela peut être fait en ajoutant du code à la bannerView: didFailToReceivedAdWithError méthode en ViewController.m:

 - (void) bannerView: (ADBannerView *) bannière didFailToReceiveAdWithError: (NSError *) erreur // 1 [self.bannerView removeFromSuperview]; // 2 _admobBannerView = [[GADBannerView alloc] initWithFrame: CGRectMake (0.0,0.0, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height)]; // 3 self.admobBannerView.adUnitID = @ "a14ec3f0a2028f2"; self.admobBannerView.rootViewController = self; self.admobBannerView.delegate = self; // 4 [self.view addSubview: self.admobBannerView]; [self.admobBannerView loadRequest: [demande GADRequest]]; 

Alors, voici ce qui se passe:

  1. Nous supprimons la bannière iAd de la vue actuelle. Il ne sera plus nécessaire pour la durée de cette session. Vous pourriez être compliqué et essayer de faire plus de demandes à iAds, mais ce n'est pas vraiment nécessaire.
  2. Ici, nous instancions la bannière AdMob en lui demandant de nous donner une bannière 320 x 50 et en la plaçant en haut de l'écran..
  3. Ceci est le code d'installation de la bannière AdMob (n'hésitez pas à utiliser mon identifiant de bloc d'annonces;)).
  4. Enfin, nous ajoutons la bannière AdMob à notre vue et lui demandons de récupérer une annonce..

Étape 4: testez-le

Une chose à noter est que vous ne verrez jamais les iAds échouer dans le simulateur. Peut-être que si vous aviez Internet désactivé, vous pourriez le faire, mais vous ne seriez même plus en mesure de récupérer l'annonce AdMob. La meilleure façon de tester est simplement de forcer l'appel du bannerView: didFailToReceiveAdWithError méthode de l'intérieur de viewDidLoad:

 [auto bannerView: self.bannerView didFailToReceiveAdWithError: nil];

Cela simule l'échec de l'iAd et exécute le code pour extraire et afficher les annonces AdMob..


Étape 5: Étapes finales

Maintenant que cette double solution est en place, il est très peu probable que l’utilisateur habitude voir une annonce. Cependant, il y a toujours une légère chance que les deux logiciels iAd et AdMob échouent. Dans ce cas, j'aime donner une pause à l'utilisateur et ne rien lui montrer. Un peu comme un billet de faveur pour la journée;). Ainsi, la méthode finale sera appelée lorsque AdMob ne parvient pas à charger.

 - (void) adView: (GADBannerView *) view didFailToReceiveAdWithError: (GADRequestError *) error [self.admobBannerView removeFromSuperview]; 

Comme vous vous en doutez, lorsque AdMob échoue, nous supprimons sa vue de l'écran et l'utilisateur gagne!


Emballer

J'espère que vous avez trouvé ce tutoriel utile pour saigner chaque centime de vos utilisateurs vos efforts de développement. Bien que j'aie utilisé AdMob, vous êtes libre d'utiliser ce même modèle pour associer / chaîner tous les réseaux publicitaires avec lesquels vous préférez travailler. Vous pouvez télécharger le code source de ce tutoriel tout en haut..

Si vous avez des questions ou des commentaires, n'hésitez pas à les laisser ici ou à m'écrire sur Twitter.

Bonne codage!