-(void)viewDidLoad{
self.bannerView = [[ADBannerView alloc] initWithFrame:CGRectMake(0.0f, 60.0f, 320.0f, 50.0f)];
[self.bannerView setDelegate:self];
[self.view addSubview:self.bannerView];
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
[bannerView setDelegate:self];
[bannerView setAlpha:0];
bannerView.hidden=YES;
}
As soon as viewDidLoad loads and before the iAd loads, there is a white blank fill in banner before iAd banner appears always. I did not set a AdBannerView in storyboard. What can I do to make sure if there is no iAd, for there to also be no white space in its place?
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
admobBannerView=[[GADBannerView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
self.admobBannerView.adUnitID = @"UNIT-ID";
self.admobBannerView.rootViewController = self;
self.admobBannerView.delegate = self;
[self.view addSubview:self.admobBannerView];
GADRequest *request =[GADRequest request];
request.testDevices= @[ GAD_SIMULATOR_ID ];
[self.admobBannerView loadRequest:request];
}
Hide the ad view upon its creation since it takes time for the first ad to load or fail, ex:
-(void)viewDidLoad {
self.bannerView = [[ADBannerView alloc] initWithFrame:CGRectMake(0.0f, 60.0f, 320.0f, 50.0f)];
[self.bannerView setDelegate:self];
self.bannerView.hidden = YES; <-- Hide it
[self.view addSubview:self.bannerView];
}
Then make it reappear once the ad loads, ex:
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
self.bannerView.hidden = NO;
}
And as for the code currently in your didFailToReceiveAdWithError:
method, you don't need to set the alpha to 0 or set the delegate to self again. Also any mention of bannerView
in didFailToReceiveAdWithError:
should either be self.bannerView
or banner
, ex:
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
self.bannerView.hidden=YES;
}