2

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];

助けてくれてありがとう。

4

1 に答える 1

0

シミュレーターでテストしていますか?iOS シミュレーターで iAds をテストする場合、おそらく問題はドメインにあります。デバイスでテストしてみてください。問題が解決しない場合は、実際の問題がどこにあるのかを理解するのに役立つ問題のコードを追加してください

于 2013-09-03T10:24:32.927 に答える