IOSゲームの広告の1つでこの問題が発生しています
ここに私のコードがあります、奇妙なことは、request.testDevicesリストにデバイスを追加するとデモバナーが表示され、testDevicesから削除すると実際のバナーが表示されないことですが、XCODEでbundleIdentifierを変更するとそれは本当のバナーを示しているので、私は私のadmobアカウントで何かを信じています、誰かがそれのようなものを手に入れましたか?
このエラーで常に失敗します:
AdView didFailToReceiveAdWithError ---------------------------:Error Domain = com.google.ads Code = 1 "リクエストエラー:表示する広告がありません。 」 UserInfo = {NSLocalizedDescription =リクエストエラー:表示する広告はありません。NSLocalizedFailureReason=リクエストエラー:表示する広告はありません。}
私のAppDelegate.mで
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Use Firebase library to configure APIs
[FIRApp configure];
[[FIRAnalyticsConfiguration sharedInstance] setAnalyticsCollectionEnabled:YES];
// Initialize Google Mobile Ads SDK
[GADMobileAds configureWithApplicationID:@"ca-app-pub-xx~xx"];
/* other stuff here... */
}
私のrootViewController.m上
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
bannerViewAdded = NO;
interstitialViewAdded = NO;
[self addBanner];
// ..... more stuff here;
}
- (void)addBanner{
NSLog(@"CALL ADD BANNER ROOTVIEWCONTROLLER");
if(!bannerViewAdded && ![MKStoreManager isFeaturePurchased:kFeatureAId]){
NSLog(@"ADD BANNER ROOTVIEWCONTROLLER");
CGSize size = [[CCDirector sharedDirector] winSize];
// Create adMob ad View (note the use of various macros to detect device)
if (IS_IPAD || IS_IPADHD) {
bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeLeaderboard];
bannerView.center = CGPointMake(size.width/2, (size.height-CGRectGetHeight(bannerView.frame)/2)-2);
}
else if (IS_IPHONE6) {
bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
bannerView.center = CGPointMake(size.width/2, (size.height-CGRectGetHeight(bannerView.frame)/2)-2);
}
else if (IS_IPHONE6P) {
bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
bannerView.center = CGPointMake(size.width/2, (size.height-CGRectGetHeight(bannerView.frame)/2)-2);
}
else {
// boring old iPhones and iPod touches
bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
bannerView.center = CGPointMake(size.width/2, (size.height-CGRectGetHeight(bannerView.frame)/2)-2);
}
//[bannerView setBackgroundColor:[UIColor blueColor]];
// Need to set this to no since we're creating this custom view.
//bannerView.translatesAutoresizingMaskIntoConstraints = NO;
// Note: Edit SampleConstants.h to provide a definition for kSampleAdUnitID
// before compiling.
// Replace this ad unit ID with your own ad unit ID.
bannerView.adUnitID = @"ca-app-pub-xx/xx";
bannerView.rootViewController = self;
bannerView.delegate = self;
[self.view addSubview:bannerView];
GADRequest *request = [GADRequest request];
//request.testDevices = @[ kGADSimulatorID ];
//request.testDevices = @[ @"xx", @"xx" , kGADSimulatorID ];
[bannerView loadRequest:request];
bannerViewAdded = YES;
}
}
- (void)removeBanner {
//admob
if(bannerViewAdded){
bannerViewAdded = NO;
[bannerView removeFromSuperview];
[bannerView release];
bannerView = nil;
}
//No AdMOB
if(localBannerAdded){
localBannerAdded = NO;
[localBannerButton removeFromSuperview];
[localBannerButton release];
localBannerButton = nil;
}
}
- (void)addInterstitial{
if(!interstitialViewAdded && ![MKStoreManager isFeaturePurchased:kFeatureAId]){
NSLog(@"INIT INTERSTITIAL ROOTVIEWCONTROLLER");
interstitialView = [[GADInterstitial alloc] initWithAdUnitID:@"ca-app-pub-xx/xx"];
GADRequest *request = [GADRequest request];
// Requests test ads on devices you specify. Your test device ID is printed to the console when
// an ad request is made. GADBannerView automatically returns test ads when running on a
// simulator.
//request.testDevices = @[ kGADSimulatorID, @"xxx", @"xxx" ];
[interstitialView loadRequest:request];
[interstitialView setDelegate:self];
}
}
- (void)adView:(GADBannerView *)gadBannerView didFailToReceiveAdWithError:(GADRequestError *)error{
NSLog(@"AdView didFailToReceiveAdWithError --------------------------- : %@", error);
[self removeBanner];
if(!localBannerAdded){
CGSize size = [[CCDirector sharedDirector] winSize];
localBannerButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
localBannerButton.frame = CGRectMake(0.0, 0.0, 320.0, 50.0);
[localBannerButton setTitle:@"DOWNLOAD MORE FREE GAMES" forState:UIControlStateNormal];
localBannerButton.backgroundColor = [UIColor whiteColor];//[UIColor clearColor];
[localBannerButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ];
[self.view addSubview:localBannerButton];
[localBannerButton setCenter:CGPointMake(self.view.center.x,(size.height-CGRectGetHeight(localBannerButton.frame)/2)-2)];
// Add Target-Action Pair
[localBannerButton addTarget:self action:@selector(openAppStore:) forControlEvents:UIControlEventTouchUpInside];
localBannerAdded = YES;
}
}
今日、このエラーが発生しました。問題は単純でした。adUnitID
は基本的にまだ新しいためです。広告を配信するには、adUnitID
を作成してから2時間以上待つ必要がありました。
このエラーが発生し、adUnitIDs
の一部が広告を配信し、一部が配信しない場合。同じ問題が発生している可能性が高く、それを修正する唯一の方法は待つことです。
主に広告ユニットIDの広告がないため、広告サーバーはこのメッセージを返します。広告ユニットIDが適切かどうかを確認してください。バナーの幅/高さが0の場合、同じエラーが発生します。adUnitIDが完全であることを確認してください。または、役立つリンクを確認してください https://groups.google.com/forum/#!topic/google-admob-ads-sdk/ioXU2nX9W28
私はちょうど新しいアカウントを作成し、その問題を見ました。アカウントを確認すると、admobページの上部に「アカウントの支払い情報をまだ提供していないため、広告ユニットに広告が表示されていません。」というメッセージが表示されました。 [修正]ボタンをクリックしてフォームに入力すると、数時間以内に広告が表示されます
私もこのエラーに遭遇しました。バナー広告とインタースティシャル広告の両方がこのエラーで失敗しました。 UserAgentをデフォルトに変更した後、UserAgentをグローバルに変更するのは間違いであることがわかりました。
デバッグセッション中にテスト広告IDを使用していることを確認してください。
https://developers.google.com/admob/ios/banner?hl=en-US
テスト広告をロードする最も簡単な方法は、iOSバナー専用のテスト広告ユニットID ca-app-pub-3940256099942544/2934735716を使用することです
このエラーは、AdMobアカウントでお支払い情報と請求情報を設定していない場合に発生する可能性があります。 Admobによると、支払いの詳細を設定した後、完全に機能するまでに最大2時間かかる場合があります
私にとって、これが表示され始めた理由は、AdMobアカウントに支払い方法が設定されていないためです。
これを設定すると、エラーが消え、広告がすぐに表示され始めました。
これが誰かを助けることを願っています!
これで問題が解決しました
考えられる理由の1つは、制約バグです。
他のビューに対するbannerViewの制約が正しいことを保証する必要があります
デバッグモードまたはテストモードでアプリを使用している場合は、google admobが提供するテストAppIDとBannerIDを使用していることを確認してください。
GoogleテストAdMobID:ca-app-pub-3940256099942544〜1458002511
Google Test BannerID ca-app-pub-3940256099942544/2934735716
これを解決するには、ロードリクエストの前にrequest.testDevice = @[@"xxxxxxxxxxxx"]
を追加します(このヒントを入手し、コンソールからデバイス番号をテストします)。
電話でサンプルアプリケーションをテストするときにも同じ問題がありました。次の手順で修正しました。
IPhone 6で広告識別子をリセットします:
設定->プライバシー->広告->広告識別子のリセット
私はこのようなバナーを初期化するために使用されました:
adBannerView = GADBannerView()
そしてそれは働いていた。
どのAdMobライブラリバージョンから正確に言うことはできませんが、突然バナーが表示されなくなりました。
パラメータとしてサイズを指定してバナーを初期化し、問題を修正しました。
adBannerView = GADBannerView(adSize: kGADAdSizeBanner)
adUnitID
を作成したら、1〜2時間待ってから試してください。
私は同じ問題を抱えていたので、1〜2時間後に解決します。
コーディングをお楽しみください:)
GADBannerViewの他の変数を作成しないようにしてください。それをグローバルにし、ユニットIDを変更するだけで、すべてのコントローラーで1つの変数を使用します。
たとえば、この行はすべてのコントローラーから外にある必要があります(グローバル)
var bannerView: GADBannerView!
好きな場所で使用し、それに応じてIDを変更するだけです
bannerView.adUnitID = "ca-app-exampleid-abcabc938-4e8"