0

アプリケーションを実行すると、シミュレーターにiAdが表示されます。これには、「TestAdvertisement」が事前に入力されています。

ただし、デバイスでアプリケーションを実行すると、iAd領域が空白になり、事前に入力された広告がありません。

どうしてこれなの?

私のiAdはUITableViewCellにあります:

#import "iAdCell.h"


@implementation iAdCell
@synthesize adView;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
        adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
        adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
        adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
        adView.delegate=self;
        [self.contentView addSubview:adView];
    }
    return self;
}


- (void)setSelected:(BOOL)selected animated:(BOOL)animated {

    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}


- (void)dealloc {
    [adView release];
    [super dealloc];
}


@end
4

2 に答える 2

1

質問者が詳細情報を追加した後に編集します。

iAdがテーブルセル内にある場合、Appleはアプリケーションを拒否します。iAdは、ページ上の静的な位置にある必要があり、いかなる種類のスクロールビュー(これにはテーブルビューも含まれます)ではありません。これは、iAdがクリックだけでなくインプレッションによっても支払われるためです。したがって、テーブルビューセルにiAdがあると、画面からスクロールして再び画面に表示されるたびに再読み込みされます。これは何度も発生する可能性があります。これは、「クリック詐欺」または同様の動作のように見えます。Appleはこれを許可しません。


おそらくリクエストが失敗しているためです。リクエストが失敗したときに送信される失敗デリゲートメッセージにブレークポイントまたはログを設定すると、呼び出されているかどうかを確認できます。

iAdリクエストは、お住まいの国でiAdが利用できない、リクエストを満たすのに十分な在庫がない、このセッションで広告がすでに表示されているなど、さまざまな理由で失敗する可能性があります。

シミュレーターには実際にはその場所の概念がないため、それがシミュレーターに表示される可能性があります(たとえば、マップは常にあなたの場所をクパチーノにあるAppleの本社として表示します)。

于 2010-09-14T18:11:35.893 に答える
0

同じ問題がありましたが、私にとって問題を解決したのは、デバイスからアプリを削除し、XCodeから再インストールすることでした。

于 2012-03-11T18:43:40.693 に答える