2013-09-30 9 views
5

Ich bin derzeit mit AdMob GADInterstitial in meinem iPhone app, und möchten die Vorteile der Einlagerungsstellen in den iAd UIViewController Ergänzungen in iOS 7.iAd & Admob Interstitial Integration auf dem iPhone

Meine Vermutung in Anspruch zu nehmen ist, dass Apples Füllrate wird nicht so hoch sein, also würde ich gerne auf Admob zurückgreifen, wenn eine Anzeige nicht verfügbar ist. Leider sieht die API für iAd wirklich undurchsichtig aus, und ich sehe keine Möglichkeit, festzustellen, ob eine Anzeige verfügbar ist.

Hat jemand das erfolgreich gemacht, und wenn ja, wie?

Antwort

5

Ich habe verpasst, dass die manuelle Präsentation Ansatz ruft requestInterstitialAdPresentation, gibt eine BOOL, die sagt, ob eine Anzeige angezeigt wird. Theoretisch kann ich damit steuern, ob ich auf admob zurückgreifen soll. Ich werde später einen Kommentar schreiben, ob es funktioniert oder nicht.

EDIT: Es funktioniert!

Es stellt sich heraus, dass requestInterstitialAdPresentation richtig oder falsch antwortet. Dann ist das einzige, was übrig bleibt, um es wie die anderen APIs aussehen zu lassen, herauszufinden, wann die Anzeigen-VC abgewiesen wird. Ich tat dies, indem ich in der ViewDidAppear: -Methode des Hosting-View-Controllers reagierte, wenn eine Anzeige gestartet wurde. Ich habe es tatsächlich in einer AdManager-Klasse gekapselt und benutze eine NSNotification, um den viewDidAppear: zu kommunizieren, also konnte ich iAds ziemlich sauber fallen lassen.

0

Um iAd in Ihrer View-Controller zu steuern, können Sie Setup einen Delegaten für iAd hören heißt es:

@interface MyViewController : UIViewController <ADBannerViewDelegate> 
... 

@property (nonatomic, weak) IBOutlet ADBannerView* banner; 

@end 

dann in Ihrer Implementierungsdatei:

@implementation MyViewController 

- (void)viewDidLoad 
{ 
    ... 
    [_banner setHidden:YES]; 
    _banner.delegate = self; 
} 

... 

#pragma mark - ADBannerViewDelegate implementation 

- (void)bannerView:(ADBannerView*)banner didFailToReceiveAdWithError:(NSError*)error 
{ 
    // iAd is not available, so we are going to hide it to get rid of ugly white rectangle 
    [_banner setHidden:YES]; 
    // Here you can add your logic to show your other ads 
} 

- (void)bannerViewDidLoadAd:(ADBannerView*)banner 
{ 
    // iAd is available, lets show it 
    [_banner setHidden:NO]; 
    // Here you can add your logic to hide your other ads 
} 

@end 

auch normalerweise nur ein Ich halte Instanz ADBannerView, habe es in meinem App Delegate und sobald ein View-Controller auf einem Bildschirm erscheint - ich füge einfach dieses ADBannerView hinzu, um die Hierarchie des View-Controllers anzuzeigen und es zu entfernen, wenn der View-Controller verschwindet.

+0

Danke, aber ich suche nach Interstitial-Anzeigen. –

+0

Mein schlechtes. Haben Sie sich einen Interstitial-Delegierten angesehen? https://developer.apple.com/library/ios/documentation/iAd/Reference/ADInterstitialAdDelegate_Ref/Introduction/Introduction.html#//apple_ref/occ/intf/ADInterstitialAdDelegate – interrupt

+0

Es sieht aus wie sie Dinge anders für das iPhone tun. Sie erstellen keine AdInterstitialAd, stattdessen haben sie Methoden zu UIViewController hinzugefügt. Aber ich denke, ich habe eine Lösung, ich bearbeite meine Antwort unten. –

Verwandte Themen