#pragma mark iAd
- (void)addIAdBanner {
// if place the banner on the bottom
// adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView = [[ADBannerView alloc] initWithFrame:CGRectMake(320 - (32 / 2) - 480 / 2, 480 / 2 - (50 - (32 / 2)), 0, 0)];
adView.frame = CGRectOffset(adView.frame, 32, 0); // hide
adView.delegate = self;
adView.requiredContentSizeIdentifiers = [NSSet setWithObjects:ADBannerContentSizeIdentifier320x50, ADBannerContentSizeIdentifier480x32, nil];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32;
[[[CCDirector sharedDirector] openGLView] addSubview:adView];
// Transform iAd
adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));
iAdBannerIsVisible = NO;
}
- (void)removeIAdBanner {
// clear iAd
adView.delegate = nil;
[adView removeFromSuperview];
[adView release];
adView = nil;
iAdBannerIsVisible = NO;
}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
NSLog(@"[iAd]: Ad did load.");
if (!iAdBannerIsVisible) {
adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));
adView.frame = CGRectOffset(adView.frame, -32, 0);
adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));
iAdBannerIsVisible = YES;
}
if (admobBannerIsVisible) {
// hide it
adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));
adMobAd.frame = CGRectMake(140 + 48, 215, 320, 48);
adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));
}
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
NSLog(@"[iAd]: Faild to load the banner: %@", error);
if (iAdBannerIsVisible) {
adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));
adView.frame = CGRectOffset(adView.frame, 32, 0);
adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));
iAdBannerIsVisible = NO;
}
if (admobBannerIsVisible) {
// show it
adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));
adMobAd.frame = CGRectMake(140, 215, 320, 48);
adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));
}
}
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave {
NSLog(@"[iAd]: An action was started from the banner. Application will quit: %d", willLeave);
return YES;
}
- (void)bannerViewActionDidFinish:(ADBannerView *)banner {
NSLog(@"[iAd]: Action finished.");
}
#pragma mark AdMobDelegate methods
- (NSString *)publisherIdForAd:(AdMobView *)adView {
return @"a14c561cd7cbb82"; // this should be prefilled; if not, get it from www.admob.com
}
- (UIViewController *)currentViewControllerForAd:(AdMobView *)adView {
return controller;
}
- (UIColor *)adBackgroundColorForAd:(AdMobView *)adView {
return [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; // this should be prefilled; if not, provide a UIColor
}
- (UIColor *)primaryTextColorForAd:(AdMobView *)adView {
return [UIColor colorWithRed:1 green:1 blue:1 alpha:1]; // this should be prefilled; if not, provide a UIColor
}
- (UIColor *)secondaryTextColorForAd:(AdMobView *)adView {
return [UIColor colorWithRed:1 green:1 blue:1 alpha:1]; // this should be prefilled; if not, provide a UIColor
}
// Sent when an ad request loaded an ad; this is a good opportunity to attach
// the ad view to the hierachy.
- (void)didReceiveAd:(AdMobView *)adView {
NSLog(@"AdMob: Did receive ad");
adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));
adMobAd.frame = CGRectMake(140, 215, 320, 48);
adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));
if (iAdBannerIsVisible) {
// if iAdBannerIsVisible, hide admob banner
adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));
adMobAd.frame = CGRectMake(140 + 48, 215, 320, 48);
adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));
}
[[[CCDirector sharedDirector] openGLView] addSubview:adMobAd];
[refreshTimer invalidate];
refreshTimer = [NSTimer scheduledTimerWithTimeInterval:AD_REFRESH_PERIOD target:self selector:@selector(refreshAd:) userInfo:nil repeats:YES];
admobBannerIsVisible = YES;
}
// Sent when an ad request failed to load an ad
- (void)didFailToReceiveAd:(AdMobView *)adView {
NSLog(@"field receive admob.");
[adMobAd removeFromSuperview];
[self performSelector:@selector(requestAd) withObject:nil afterDelay:2.0];
admobBannerIsVisible = NO;
}
- (void)refreshAd:(ccTime)dt {
NSLog(@"refresh admob.");
[adMobAd requestFreshAd];
}
- (void)requestAd {
adMobAd = [AdMobView requestAdWithDelegate:self];
}
分享到:
相关推荐
本教程将详细介绍如何在iOS应用中集成两种常见的广告网络:Apple的iAD和Google的ADMOB。 首先,我们来了解这两个广告平台的基础知识: 1. **iAD**:由Apple提供,是专门为iOS和OS X设备设计的内置广告解决方案。...
【标题】"IOS应用源码之Ads(AdMob+iAd)Demo.zip" 指的是一份包含了iOS应用中广告集成的源代码示例,主要使用了Google的AdMob和苹果的iAd两个广告网络。这份源代码可以作为开发者学习如何在iOS应用中集成和管理广告的...
"iAdCocos2dTest"这个例子代码应该包含了所有这些步骤的实现,你可以通过阅读和运行代码来更深入地理解这一过程。学习这个示例可以帮助你快速掌握在Cocos2d游戏中加入原生广告的方法,从而提高你的应用盈利能力。
本文将深入探讨如何在iOS应用中整合iAd(苹果原生广告服务)与AdMob(谷歌的广告网络平台),以及如何做到无警告、无缝对接。 **一、iAd简介** iAd是苹果公司提供的一个广告服务,允许开发者在iOS和tvOS应用中展示...
**添加iAd代码详解** 在iOS应用开发中,为了增加收入和提高用户参与度,开发者经常会选择集成广告。苹果公司提供了自己的广告平台——iAd,它允许开发者在App内展示高质量、与应用内容相关的广告。本篇文章将详细...
iad unity ios 版 苹果的 IAD 广告代码
IOS应用源码之._Ads(AdMob+iAd)Demo.zip
虽然iAd已不再可用,但开发者可以考虑使用其他广告服务,如Google的AdMob或Facebook Audience Network。这些服务提供了类似的功能,并且在全球范围内有更广泛的广告网络。 **四、最佳实践和注意事项** 1. **用户...
USB Interface Association Descriptor (IAD) 是USB复合设备中用于整合多个接口的一种机制。在USB规范中,设备可以被设计成复合设备(Composite Device)或复合设备(Compound Device),两者虽然在中文翻译上容易...
【IAD类型及数据配置详解】 IAD,全称为Integrated Access Device,即综合接入设备,是一种用于实现传统电话网络(PSTN)与IP网络之间的转换的设备。它主要用于VoIP(Voice over Internet Protocol)服务,使用户...
ADBannerView通过与iAd框架交互,实现广告的下载和展示。 3. ADBannerView的继承关系和遵循的协议: ADBannerView类继承自UIView,并遵循了多个协议,包括UIResponder、NSObject、NSCoding、UIAppearance、...
### 华为IAD104H用户手册关键知识点解析 #### 一、产品概述 - **产品名称**:华为IAD104H综合接入设备 - **用途**:IAD104H是一款用于将传统电话网络接入下一代网络(NGN)的设备,支持多种语音和数据业务。 - **适用...
Unity AdMob 广告接入是将Google AdMob广告平台整合到Unity游戏或应用中的过程,以便在用户交互时展示广告并实现收益。本教程将详细解释如何在Android和iOS平台上进行这一操作,并提供一个可测试的demo。 首先,...
"华为IAD基本配置" 华为IAD基本配置是指华为IAD设备的基本配置操作,包括登录配置环境、命令行使用方法、常用命令、配置设备IP地址、配置系统时间、配置SNMP网管等。下面将对这些知识点进行详细的解释。 登录配置...
### 中兴通讯ZXV10-IAD:灵活便捷的语音业务解决方案 #### 一、概述 随着网络技术的快速发展,企业对于语音业务的需求也日益增长。为了满足这一需求,中兴通讯推出了ZXV10-IAD系列设备。该系列产品不仅能够提供...
华为IAD产品线 介绍(单口 双口 4口 8口 32口IAD)支持SIP协议 MGCP协议!
华为 IAD132E(T) 语音设备简介资料 华为 IAD132E(T) 语音网关是基于 IP 的语音/传真(VoIP/FoIP)接入网关,为运营商、企业、小区住宅用户、公司提供高效、高质量的 IP 话音业务。该设备支持 32 路电话使用,具有...
eSpace IAD132E(T) 产品文档 产品版本:V300R001C07SPC700
【中国电信IAD设备技术规范】是中国电信为了规范下一代网络(NGN)通信终端设备,特别是集成接入设备(IAD)的开发、生产、测试而制定的一份重要技术标准。这份规范基于国际电联(ITU)、互联网工程任务组(IETF)、...
IAD产品系列包括IAD101H/102H/104H、IAD108E、IAD208E(M)、IAD132E(T)、IAD304/316/332等。这些产品具有灵活的组网能力,提供POTS、IP接口应不同的用户需求,支持DHCP、PPPoE和静态IP地址分配方式,实现语音数据...