我在我的一个ios游戏广告中遇到此问题
这是我的代码,奇怪的是如果我在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
会投放广告,而有些则不会。你极有可能遇到同样的问题,解决问题的唯一方法就是等待。
如果您尚未在AdMob帐户中设置付款和结算信息,则可能会发生此错误。根据Admob设置付款详细信息后,最多可能需要2个小时才能完全正常运行
确保不要创建GADBannerView的其他变量。在每个控制器中使用一个变量,使其成为全局变量,只需更改单位ID。
例如,这条线应该在任何控制器之外(全局)
var bannerView: GADBannerView!
然后在任何地方使用它,并相应地更改id
bannerView.adUnitID = "ca-app-exampleid-abcabc938-4e8"
我习惯于像这样初始化横幅:
adBannerView = GADBannerView()
它正在发挥作用。
我不能准确地说出哪个AdMob库版本,但突然之间的横幅不再显示了。
使用size作为参数初始化横幅,修复问题:
adBannerView = GADBannerView(adSize: kGADAdSizeBanner)
我通过在加载请求之前添加request.testDevice = @[@"xxxxxxxxxxxx"]
来解决这个问题。(我从控制台获得此提示和测试设备编号)
我在手机上测试示例应用程序时遇到了同样的问题。我修复了以下步骤:
重置iPhone 6上的广告标识符,转到:
设置 - >隐私 - >广告 - >重置广告标识符
创建adUnitID
之后,等待1-2个小时然后尝试一下。
因为我有同样的问题,它会在1-2小时后得到解决。
享受编码:)
在iOS设备的“设置”中:设置>隐私>广告:开启然后关闭“限制广告跟踪”(“重置广告标识符”并不总是有用。首先尝试“重置广告标识符”并对此进行评论行动对你没有帮助)。但!它只会帮助您在自己的设备上投放广告,并且无法解决广告匹配率较低的问题。
广告服务器将返回此邮件主要是因为您的广告单元ID没有广告。检查您的广告单元ID是否正确。如果您的横幅宽度/高度为0,您将得到相同的错误。确保您的adUnitID是完美的。或检查以下链接,它可能会帮助你https://groups.google.com/forum/#!topic/google-admob-ads-sdk/ioXU2nX9W28
我刚刚创建了一个新帐户并看到了这个问题。在查看我的帐户时,admob页面顶部显示一条消息:“您的广告单元未显示广告,因为您尚未提供帐户付款信息。”点击按钮修复它,填写表格,广告将在几个小时内显示
我也遇到了这个错误。我的横幅广告和插页式广告都因此错误而失败。我发现在将UserAgent更改为默认值后,全局更改UserAgent是我的错误。
这解决了我的问题
对我来说,它开始显示这一点的原因是我没有在我的AdMob帐户上设置任何付款方式。
一旦我设置了它,错误就消失了,广告立即开始显示。
希望这有助于某人!
一个可能的原因是Constraint错误。
你应该保证你的bannerView对其他视图的约束是正确的
如果您在调试或测试模式下使用您的应用程序,请确保使用google admob提供的测试AppID和BannerID,如下所示: -
Google Test AdMobID:ca-app-pub-3940256099942544~1458002511
Google Test BannerID ca-app-pub-3940256099942544/2934735716
确保在调试会话中使用测试广告ID。
https://developers.google.com/admob/ios/banner?hl=en-US
加载测试广告的最简单方法是使用我们针对iOS横幅的专用测试广告单元ID:ca-app-pub-3940256099942544/2934735716