我AdMob在我的iOS应用中集成了横幅广告made for kids.应用程序从App Store审核流程中被拒绝,并显示以下消息:
您已为您的应用选择了"儿童"类别,但它包含应用程序之外的链接或未经父母许可而从事商业活动.具体而言,您的应用程序包含的广告在点按时会将用户带到网页或App Store.
我已经整合了家长控制,但无法确定从哪里开始家长控制.我检查了一些GADBannerView在GADBannerViewDelegate课堂上处理Banner视图点击的方法 ,但是没有.有以下委托方法
- (void)adViewWillLeaveApplication:(GADBannerView*)bannerView;
但是这个方法只是为了通知它会离开应用程序 - 我不能返回NO或在此处写任何东西来限制它离开应用程序.
任何人都可以帮我找到阻止应用程序打开GADBannerView的方法吗?
在我的app委托中,我实例化一个iAd横幅并将其分配给一个委托属性,然后我加载了主View Controller.
在主视图控制器中,我将iAd横幅添加为子视图,并实例化"主菜单"视图控制器并将其视图添加为子视图.好的,现在我的应用程序有一个主菜单(使用UINavigationController其他视图从导航堆栈中推出/弹出,将广告留在顶部).
但是,当我显示模态对话框(如发送电子邮件)并将其关闭时,iAd横幅消失了,主菜单视图现在占据整个屏幕.我需要做些什么来"刷新"顶部的iAd视图吗?
我试图在我的应用程序的底部插入一个iad横幅,但在遵循教程后不断收到错误.代码如下.
@interface DMKHomeViewController (UIViewcontroller ) <ADBannerViewDelegate>{
}
@end
@implementation DMKHomeViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[banner setAlpha:1];
[UIView commitAnimations];
}
- (void)bannerView:(ADBannerView *)
banner didFailToReceiveAdWithError:(NSError *)error
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[banner setAlpha:0];
[UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)
我一直收到以下错误 *由于未捕获的异常'NSInvalidUnarchiveOperationException'终止应用程序,原因:'无法实例化名为ADBannerView的类'*首先抛出调用堆栈:
我正在开发一个应用程序,我必须在我的应用程序的所有页面中显示iAds.我创建了一个UIView的子类,我正在初始化ADBannerView及其委托方法.
但现在,如果我在AppDelegate类的窗口中添加它,它会在运行时给出以下错误"ADBannerView必须是由UIViewController管理的视图层次结构的一部分".
我认为这意味着我只能在UIViewController的子类文件中使用ADBanner?
如果是的话那我怎么能把它全局化?
先谢谢Shreya
奇怪的问题,我一直在这个墙上吊着头几个小时,但一直无法解决.
我有一个使用故事板的iOS 7应用程序.在我的主根视图控制器上,我使用self.canDisplayBannerAds = YES在视图底部显示iAd横幅.这非常有效.
我有一个设置视图控制器,从那里,我的用户可以进行应用内购买以永久删除广告.该功能也可以.我在NSUserDefaults standardUserDefaults中存储BOOL值以跟踪他们是否已完成购买.
让我感到困惑的是,如果用户在横幅中接收广告,进入设置视图控制器,然后进入我的购买视图控制器,成功购买,然后返回主根视图,横幅广告仍然可见.如果用户完全退出应用程序,然后重新启动,则不会再次显示,因为这是我在viewWillAppear中显示横幅的方式:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
bool saved = [defaults boolForKey:t_Save];
if (saved == NO) {
self.canDisplayBannerAds = YES;
} else if (saved == YES) {
self.canDisplayBannerAds = NO;
}
NSLog(self.canDisplayBannerAds ? @"YES" : @"NO");
Run Code Online (Sandbox Code Playgroud)
因此,当这些逻辑在他们制作或恢复购买后重新启动时,这种逻辑运行正常.但是,我希望视图在购买后立即更新.但是,我不能为我的生活让那个愚蠢的横幅广告在应用程序首次启动它时就会消失.
有什么奇怪的,如果我创建一个只设置self.canDisplayBannerAds = NO的按钮,那么这会使横幅广告消失.但是当它在viewWillAppear,viewDidAppear中调用时,或者甚至在我创建的专用方法中,一旦完成购买就调用它,它就不起作用.
我在想,也许横幅视图在某个地方设置了缓存而且它没有被淘汰,但我不知道如何强迫它.我也在想,如果我可以强制根视图控制器基本上转到nil并从头开始,那可能会这样做,但我不知道如何强迫它.
有人有什么想法?
我正在为iOS7 +实现一个新的应用程序.在我希望显示横幅的视图中,canDisplayBannerAds与iAd横幅的集成似乎很容易.但是我在Xcode日志中遇到这个错误:
ADBannerView: Unhandled error (no delegate or delegate does not implement didFailToReceiveAdWithError:): Error Domain=ADErrorDomain Code=7 "The operation couldn’t be completed. Ad was unloaded from this banner" UserInfo=0xc07bcc0 {ADInternalErrorCode=7, ADInternalErrorDomain=ADErrorDomain, NSLocalizedFailureReason=Ad was unloaded from this banner}
Run Code Online (Sandbox Code Playgroud)
因为在iOS7 iAd框架中你只需要设置canDisplayBannerAds = YES,是否有必要继续执行Banner.delegate = self或实现didFailToReceiveAdWithError?
提前致谢
嗨,大家好我尝试用像Objective C这样的旧方法实现ADBannerView但是不成功.每件事都有效但广告没有出现,它仍然是一片空白.
func bannerViewDidLoadAd(banner: ADBannerView!) {
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(1)
banner.alpha = 1
UIView.commitAnimations()
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(1)
banner.alpha = 0
UIView.commitAnimations()
}
Run Code Online (Sandbox Code Playgroud)
任何已经在Swift上试过iAd的人?
更新到Xcode 7并在iOS9中构建我的应用程序后,iAds停止工作,我收到此错误 bannerView
didFailToReceiveAdWithError:
广告资源不可用.
有任何想法吗?
编辑:iAds正在运作.在我们就此问题提交错误报告后,Apple必须修复它.
我有一个带有多个UITableViews的应用程序,我正在实现iADs.根据Apple文档(http://developer.apple.com/library/ios/#technotes/tn2286/_index.html#//apple_ref/doc/uid/DTS40011212)我创建了一个属于我的应用代表的共享横幅并且应用程序委托也是横幅的委托.这种方法效果很好,广告在加载横幅和用户切换屏幕后很好地显示在各种视图控制器上.
问题是在第一个viewController上没有看到广告,因为视图控制器的viweWillAppear方法(我称之为"fixUpAdView"方法)在加载横幅之前出现.
我想我得到的部分是这个(来自苹果文档):"让你的应用程序代理告诉当前的视图控制器它是否应该显示或隐藏横幅.你可以使用UINavigationControllerDelegate或UITabBarControllerDelegate协议推送横幅来显示它." 我知道我需要在bannerViewDidLoadAd和failToReceive方法中添加一些内容,但是对于如何执行此操作我感到有点困惑.
我不希望广告在我的所有视图控制器上显示(只有6个),并且我在应用程序中也有几个模态视图(其中任何一个都没有广告).
以下是我的一些代码:在我的appDelegate中:
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
NSLog(@"bannerViewDidLoadAD");
if (!_adBannerViewIsVisible)
_adBannerViewIsVisible = YES;
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
NSLog(@"BannerAd didfailtoreceive");
if (_adBannerViewIsVisible)
_adBannerViewIsVisible = NO;
}
- (ADBannerView *)sharedAdBannerView
{
if (_sharedAdBannerView == nil) {
Class classAdBannerView = NSClassFromString(@"ADBannerView");
if (classAdBannerView != nil) {
_sharedAdBannerView = [[classAdBannerView alloc] initWithFrame:CGRectZero];
[_sharedAdBannerView setRequiredContentSizeIdentifiers:[NSSet setWithObjects:
ADBannerContentSizeIdentifier320x50,
ADBannerContentSizeIdentifier480x32, nil]];
[_sharedAdBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifier320x50];
[_sharedAdBannerView setFrame:CGRectOffset([_sharedAdBannerView frame], 0,
-(iAD_BANNER_HEIGHT))];
[_sharedAdBannerView setDelegate:self];
}
}
return _sharedAdBannerView;
}
Run Code Online (Sandbox Code Playgroud)
在我的视图控制器中:
- (void)viewWillAppear:(BOOL)animated { …Run Code Online (Sandbox Code Playgroud) xcode singleton uitableview uiapplicationdelegate adbannerview
我想静态地将ADBannerView对象放在我的UITableView屏幕上,这意味着我希望它始终保持在我的工具栏上方(self.navigationController.toolbar),即使用户正在滚动tableview.我已经通过将ADBannerView作为子视图添加到我的工具栏中来解决这个问题,并给出了帧原点的负值:
[self setBannerViewSize];
[self.navigationController.toolbar addSubview:bannerView];
Run Code Online (Sandbox Code Playgroud)
唯一的问题是:我无法点击并以这种方式打开iAd - 我可以看到横幅,但是当我点击它时没有任何反应.
因为我也使用了refreshControl,所以使用UIViewController而不是UITableViewController并手动添加tableView的选项对我来说不起作用.有没有其他方法可以让我的ADBannerView静态显示在我的表视图控制器中并且仍然可以点击?
谢谢你的建议!
我目前在代码中执行以下操作,避免出现"模糊"广告问题.但这是一个好习惯吗?一个潜在的问题是 - 假设在viewWillDis出现之前,有广告请求被发送出去,然后当广告回来时,adBannerView实例已经消失.这会是一个大问题吗?我应该只改为hideAdBanner吗?
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear: animated];
// create the ad banner view
[self createAdBannerView];
if (adBannerView != nil) {
UIInterfaceOrientation orientation = self.interfaceOrientation;
[self changeBannerOrientation:orientation];
}
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// iAd
if (adBannerView != nil) {
[self hideAdBanner];
adBannerView.delegate = nil;
[adBannerView release];
adBannerView = nil;
}
}
Run Code Online (Sandbox Code Playgroud) 我偶尔会隐藏一个ADBannerView.我正在考虑banner.hidden = YES和类似于隐藏.我担心Apple会对此感到不满,因为在横幅被隐藏的同时收到并"展示"广告似乎是值得怀疑的.
在bannerView:didFailToReceiveAdWithError:我的动画旗帜关闭屏幕底部.我愿意这样做,而不是使用隐藏属性,如果它在某种程度上更好.
也许可以告诉横幅停止请求广告.不幸的是,在看着我的时候没有任何东西跳出来ADBannerView.h.
以编程方式隐藏的最佳方法是ADBannerView什么?
我尝试用AdMob制作Android应用程序.
我按照文档中的描述创建了admob adView:
FrameLayout layout = (FrameLayout) findViewById(R.id.frame_layout);
adView = new AdView(this, AdSize.SMART_BANNER, myAdMobId );
Run Code Online (Sandbox Code Playgroud)
然后,如果我在设备320x480(手机)上运行我的应用程序,广告横幅显示在顶部,但如果我在Android平板电脑1280x800上运行我的应用程序,广告横幅将显示为水平和垂直居中 - 位于屏幕的中心.
另外,我尝试了AdSize.BANNER,AdSize.IAB_BANNER,AdSize.IAB_LEADERBOARD - 结果是一样的.
我做错了什么?
UPD1.RES /布局/ main.xml中
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frame_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.mysite.myapp.GameView
android:id="@+id/game"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud) adbannerview ×13
ios ×9
iad ×5
objective-c ×3
admob ×2
ads ×2
banner-ads ×2
uitableview ×2
android ×1
cocoa-touch ×1
ios7 ×1
ios9 ×1
iphone ×1
java ×1
singleton ×1
static ×1
subview ×1
swift ×1
xcode ×1
xcode7 ×1