J'ai construit mon application de cette façon et tout semble fonctionner plus ou moins. Après avoir entendu parler du taux de remplissage de l'iAd notoirement bas, j'ai décidé que ce serait la meilleure méthode, mais j'ai essayé googling et je ne pouvais pas trouver le record de quelqu'un d'autre mise en œuvre des annonces dans leur application comme ça. Est-ce que cela viole les TOS?Utilisation d'iAd comme réseau publicitaire par défaut, et AdMob si iAd échoue
Répondre
Pourquoi ne pas utiliser Adwhirl. Son super SDK qui vous permet de faire exactement ce dont vous avez besoin. Vous pouvez définir les paramètres de priorité pour les différents réseaux publicitaires qui peuvent être modifiés à la volée si vous trouvez un réseau de meilleurs résultats que d'autres, etc.
Il gère toute la logique pour laquelle annonce à afficher en fonction en cas d'échec de la demande ou la priorité sans que vous ayez s'inquiéter à ce sujet. Il vous suffit de créer une vue adwhirl et de demander une annonce. Adwhirl fait le reste, y compris rafraîchissant approprié. Si un iAd échoue la première fois, puis affiche un admob, mais que l'iAd suivant se charge correctement, il s'affiche à la place de l'admob, en supposant que vous définissez iAd comme un réseau de priorité supérieure.
J'ai iAds et Admob.
Je recommande fortement de charger un iAd en premier et si vous ne recevez pas d'annonce, utilisez admob. iAd a un ECPM beaucoup plus élevé que l'admob si vous recevez une annonce. Rappelez-vous que iAd est actualisé toutes les 30 secondes, de sorte que la méthode de publicité n'a pas été appelée plusieurs fois.
Mon application a été approuvé, vous pouvez l'obtenir, Octopus Oracle. http://kurl.ws/Ay
Excellent, merci pour cette information. Deux annonces admob apparaissaient à l'écran et j'ai pu le résoudre après m'être rendu compte que la méthode iad fail était appelée toutes les 30 secondes. Comment gérez-vous le cas où iAd échoue initialement, vous placez avec succès une annonce admob dans la vue, puis iAd réussit quelque temps après cela. Une telle situation peut-elle arriver? –
Je pense que je cache la vue iAd, juste au cas où. Ce que je ferais probablement est de remettre la vue d'iAd et enlever l'admob. iAd vous fera gagner un peu plus d'argent. –
cachez-vous le ADBannerView en mettant visible NO? Avec ADBannerView, si vous définissez visible à NO, il cesse de demander des annonces. Pour "cacher" l'ADBannerView, vous devez le traduire hors de l'écran.
Vous pouvez utiliser AdWhirl et son meilleur tutoriel est ici Tutorial
Vous pouvez utiliser ces commandes pour afficher IAD ainsi que AdMob deux
Ou ici est belle tut qui explique pas à pas
http://mobile.tutsplus.com/tutorials/iphone/supplementing-iad-placement-with-admob/
J'ai fini avec cette stratégie:
d'abord tout ce que j'ai créé 2 sorties du story-board, un pour le ADBannerView
et un autre pour le GADBannerView
@IBOutlet weak var iadBannerView: ADBannerView!
@IBOutlet weak var adMobBannerView: GADBannerView!
Dans votre viewDidLoad vous peut faire ceci:
override func viewDidLoad() {
super.viewDidLoad()
self.iadBannerView.hidden = true
self.adMobBannerView.hidden = true
self.iadBannerView.delegate = self
NSTimer.scheduledTimerWithTimeInterval(35, target: self, selector: Selector("dispalyGoogleBanner"), userInfo: nil, repeats: false)
}
Alors ici vous avez caché les deux bannières (si vous préférez yo vous pouvez le faire directement dans le storyboard). alors vous attendez 35 secondes avant d'afficher les annonces google. Donc, avant d'afficher les annonces Google, vous voulez essentiellement voir si elle est disponible.
c'est la méthode utilisée pour afficher la bannière Google:
//MARK: - Google banner
func dispalyGoogleBanner() {
if !self.isDisplayIAD && !idDisplayADMob {
idDisplayADMob = true
self.adMobBannerView.adUnitID = kAdUnitID
self.adMobBannerView.hidden = false
self.adMobBannerView.rootViewController = self
self.adMobBannerView.loadRequest(GADRequest())
}
}
donc avant d'afficher la bannière Google, nous nous assurons que la bannière et iAD la bannière AdMob ne sont pas encore installés. Si c'est le cas, nous pouvons envoyer la demande d'affichage de la bannière ADMob.
Voici ma mise en œuvre du ADBannerViewDelegate
func bannerViewDidLoadAd(banner: ADBannerView!) {
self.iadBannerView = banner
self.iadBannerView.hidden = false
self.adMobBannerView.hidden = true
idDisplayADMob = false
self.view.layoutIfNeeded()
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError
error: NSError!) {
println(error)
isDisplayIAD = false
self.iadBannerView.hidden = true
self.dispalyGoogleBanner()
}
func bannerViewActionDidFinish(banner: ADBannerView!) {
self.iadBannerView = banner
self.iadBannerView.hidden = true
isDisplayIAD = false
dispalyGoogleBanner()
}
func bannerViewWillLoadAd(banner: ADBannerView!) {
//remove the google banner if displayed
isDisplayIAD = true
self.iadBannerView.hidden = false
self.adMobBannerView.hidden = true
idDisplayADMob = false
self.view.layoutIfNeeded()
}
ce que je l'ai fait essentiellement sur ces délégués, il est pour vérifier si la bannière iAD il est disponible, si que c'est le cas alors je vais caché la bannière AdMob. Si le iAD a fini d'afficher les publicités, alors j'appelle la bannière ADMob voir bannerViewActionDidFinish
Vous pouvez facilement adapter cette logique à votre implémentation.
C'est la solution que j'ai choisie, mais j'ai quelques problèmes après avoir implémenté AdWhirl. Plus important encore, l'application va demander une annonce au démarrage et échouer seulement pour ne jamais faire une autre demande! Souvent, je charge l'application et l'application n'arrivera jamais à adWhirlDidReceiveAd: ni à adWhirlDidFailToReceiveAd :. En outre, mes demandes d'iAd échouent toujours, donc je ne peux même pas voir le cadre d'annonce dont j'ai besoin pour visuellement terminer l'intégration des annonces dans mon application! –
Comment va votre filleul avec iAds? Recevez-vous des annonces? – Goles
adwirl ne supporte pas encore ARC. –