iAd エラー:
Error Domain=ADErrorDomain Code=3 "The operation couldn’t be completed. Ad inventory unavailable"
UserInfo=0x118bb420 {ADInternalErrorCode=3, ADInternalErrorDomain=ADErrorDomain, NSLocalizedFailureReason=Ad inventory unavailable}
コーディングの問題か、Apple サイトの問題か教えてください。
App Delegate に iAd オブジェクトを割り当てており、デリゲートも App Delegate にあります。コードは次のとおりです。
AppDelegate *appDel=(AppDelegate*)[UIApplication sharedApplication].delegate;
CGRect rect1 = CGRectMake( 0.0,300,320,50);
appDel.adBanner = [[ADBannerView alloc] initWithFrame:rect1];
appDel.adBanner.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
appDel.adBanner.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
[appDel.adBanner setHidden:YES];
appDel.adBanner.delegate = self;
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
AppDelegate *app=(AppDelegate*)[UIApplication sharedApplication].delegate;
NSLog(@"iAd load");
app.adBanner.frame=CGRectMake( 0.0,300,320,50);
app.adBanner.hidden=NO;
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
AppDelegate *app=(AppDelegate*)[UIApplication sharedApplication].delegate;
NSLog(@"iAd error: %@", error);
app.adBanner.hidden=YES;
app.adBanner.frame=CGRectMake( 0.0,350,0,0);
}
UIViewConroller
次に、抽象クラスにバナーを追加しています
CGFloat y=0;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize result = [[UIScreen mainScreen] bounds].size;
y=result.height;
}
AppDelegate *app=(AppDelegate*)[UIApplication sharedApplication].delegate;
CGRect rect2 = CGRectMake( 0.0,y-50,320,50);
app.adBanner.frame =rect2;
UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;
[topController.view addSubview:app.adBanner];
助けてくれてありがとう。