`
bengan
  • 浏览: 203766 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iPhone上根据不同的国家显示广告

 
阅读更多
本段教程和代码例子由 CocoaChina 会员“巫山冰”分享,可以自动识别 iPhone 所在地区,如果是美、日、英、法、德等支持 iAd 广告的国家,显示 iAd 广告;其它地区则显示 AdMob 广告。
部署广告函数
本函数在viewDidLoad()中调用,同时也可以在购买“广告去除”成功后调用:
- (void)disposeAds {
BOOL is_iAdON = NO;
BOOL is_adMobON = NO;

//分析设备可显示哪一家广告
if([[[UIDevicecurrentDevice] model] rangeOfString:@"iPad"].location== 0) {
is_adMobON = YES;
if([[[UIDevicecurrentDevice] systemVersion] floatValue] >= 4.2f) {
//为iPad 4.2之后的系统显示iAd广告
//如果是北美国时间或太平洋时间,则假想是美国用户
//2010.12 英国,法国
//2011.1  德国
//2011.?  日本
if([[[NSTimeZonelocalTimeZone] name] rangeOfString:@"America/"].location== 0
    || [[[NSTimeZonelocalTimeZone] name] rangeOfString:@"Pacific/"].location== 0
    || [[[NSTimeZonelocalTimeZone] name] rangeOfString:@"Europe/"].location== 0
    || [[[NSTimeZonelocalTimeZone] name] rangeOfString:@"Asia/Tokyo"].location== 0)
{
is_adMobON = NO;
}
}
}
elseif([[[UIDevicecurrentDevice] systemVersion] floatValue] >= 4.0f) {
//如果是北美国时间或太平洋时间,则假想是美国用户
//2010.12 英国,法国
//2011.1  德国
//2011.?  日本
if([[[NSTimeZonelocalTimeZone] name] rangeOfString:@"America/"].location== 0
    || [[[NSTimeZonelocalTimeZone] name] rangeOfString:@"Pacific/"].location== 0
    || [[[NSTimeZonelocalTimeZone] name] rangeOfString:@"Europe/"].location== 0
    || [[[NSTimeZonelocalTimeZone] name] rangeOfString:@"Asia/Tokyo"].location== 0)
{
is_adMobON = NO;
}
else
is_adMobON = YES;
}
else
is_adMobON = YES;

if(!is_adMobON)
is_iAdON = YES;


//检测购买(这个为程序内购买了“去除广告”功能的把广告清除或是不显示,removeAdPurchased是个变量,本文未讨论)
if(removeAdPurchased) {
is_adMobON = NO;
is_iAdON = NO;
}

//打开广告
if(is_adMobON || is_iAdON) {
if(is_adMobON) {
//启用AdMob
if(!adMobAd) {
CGSize sizeToRequest;
if([[[UIDevicecurrentDevice] model] rangeOfString:@"iPad"].location== 0)
sizeToRequest = CGSizeMake(748, 110);
else
sizeToRequest = CGSizeMake(320, 48);


adMobAd = [AdMobView requestAdOfSize:sizeToRequest withDelegate:self]; // start a new ad request
[adMobAdretain]; // this will be released when it loads (or fails to load)
}
}
else {
//启用iAd
if(!iAdView) {
iAdView= [[ADBannerViewalloc] initWithFrame:CGRectZero];
iAdView.requiredContentSizeIdentifiers= [NSSetsetWithObject: ADBannerContentSizeIdentifierPortrait];
iAdView.currentContentSizeIdentifier= ADBannerContentSizeIdentifierPortrait;

if([[[UIDevicecurrentDevice] model] rangeOfString:@"iPad"].location== 0)
iAdView.frame = CGRectMake(0, 1024, 768, 66);
else
iAdView.frame = CGRectMake(0, 480, 320, 50);

iAdView.delegate = self;
[self.view addSubview:iAdView];
iAdView.hidden= YES; //暂时不显示广告框,收到广告后再显示出来
}
}
}
else{
//关闭广告
if(adMobAd) {
//关闭AdMob
[adMobAdremoveFromSuperview];
[adMobAd release];
adMobAd = nil;
}
else if(iAdView) {
//关闭iAd(bannerIsVisible是个变量,用于标识iAd广告是否已经显示内容,可不用)
if(bannerIsVisible) {
[UIViewbeginAnimations:@"animateAdBannerOff"context:NULL];
if([[[UIDevicecurrentDevice] model] rangeOfString:@"iPad"].location== 0)
iAdView.frame = CGRectOffset(iAdView.frame, 0, 66);
else
iAdView.frame = CGRectOffset(iAdView.frame, 0, 50);

[UIViewcommitAnimations];
bannerIsVisible= NO;
iAdView.hidden = YES;
}


[iAdViewremoveFromSuperview];
[iAdView release];
iAdView = nil;
}
}
}
AdMob广告收到内容后处理函数:
// 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 {
// get the view frame
CGRectframe = self.view.frame;

// put the ad at the bottom of the screen
if([[[UIDevicecurrentDevice] model] rangeOfString:@"iPad"].location== 0)
adView.frame = CGRectMake((frame.size.width - 748)/2, frame.size.height - 110, 748, 110);
else
  adView.frame = CGRectMake(0, frame.size.height - 48, frame.size.width, 48);

[self.viewaddSubview:adView];
[adMobRefreshTimerinvalidate];
adMobRefreshTimer= nil;
adMobRefreshTimer= [NSTimerscheduledTimerWithTimeInterval:AdMob_REFRESH_PERIODtarget:selfselector:@selector(refreshAdMob:) userInfo:nilrepeats:YES];
}
iAd广告收到内容后处理函数:
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
if(!bannerIsVisible)
    {
        [UIViewbeginAnimations:@"animateAdBannerOn"context:NULL];
if([[[UIDevicecurrentDevice] model] rangeOfString:@"iPad"].location== 0)
banner.frame = CGRectOffset(banner.frame, 0, -66);
else
banner.frame = CGRectOffset(banner.frame, 0, -50);

        [UIViewcommitAnimations];
bannerIsVisible= YES;
banner.hidden = NO;
    }
}
分享到:
评论

相关推荐

    Iphone5广告策划方案.doc

    【Iphone5广告策划方案】 ...综上所述,本广告策划方案着重于iPhone 5的品牌塑造和市场定位,结合精准的广告投放和有效的公关活动,以期在激烈的市场竞争中脱颖而出,实现产品的热销和市场份额的扩大。

    iphone去广告时钟

    iphone去广告时钟

    iphone广告图片效果(超漂亮)

    在iPhone广告图片效果中,设计师可能会考虑如何使产品在小屏幕上显得突出,如何布局图片以引导用户的视线,以及如何利用色彩、字体和布局来增强品牌的识别度。 "电子书"标签提示我们,这种图片切换效果可能被应用于...

    iphone 国家列表

    标题中的“iPhone国家列表”指的是苹果公司的iPhone手机在全球范围内支持的不同国家和地区的运营商信息。这个列表通常包含了全球各个国家和地区的网络运营商,以及它们与iPhone设备的兼容性情况。这有助于用户了解...

    iphone自定义广告栏

    在这个场景中,我们可以利用ScrollView来展示一系列的广告图片或广告视图,用户可以通过滑动来查看不同的广告。 2. **UIPageController**:UIPageController是一个用于展示多页内容的控制器,它可以与UIScrollView...

    控制iPad/iPhone横向和竖向显示demo

    在iOS开发中,控制iPad和iPhone的屏幕方向是常见的需求,尤其在设计用户界面时,开发者需要根据设备的横竖屏状态提供相应的布局和交互体验。这个“控制iPad/iPhone横向和竖向显示demo”应该包含一个示例项目,演示了...

    电脑显示iphone,ipad QQ在线

    "电脑显示iPhone, iPad QQ在线"这一话题涉及到的是如何在个人计算机上查看并管理iOS设备(如iPhone或iPad)上的QQ在线状态。下面将详细解释这一过程以及相关的技术知识点。 首先,实现这一功能的关键在于QQ的多平台...

    Iphone5广告策划方案.zip

    针对不同国家和地区,广告内容会有所调整,以适应当地的文化背景和消费者习惯,确保信息传递的有效性和共鸣。 总结起来,iPhone5的广告策划方案充分体现了苹果公司的品牌策略和市场洞察力。通过精准定位、情感营销...

    Iphone5广告策划方案

    综上所述,《Iphone5广告策划方案》不仅是一份具体的广告执行计划,更是全面洞察市场、理解消费者、塑造品牌形象和驱动销售增长的战略工具。通过深入挖掘这些知识点,我们可以为其他类似产品的广告策划提供有价值的...

    电脑免费发表iPhone说说

    想在普通电脑上让你发表的空间说说显示来自iPhone嘛?火狐专用浏览器就可以实现这个效果!不但可以显示发布的说说来自iPhone触屏版,还可以显示iPad或android,绝对给力,不管你信不信,反正我是信了,我已经测试100%...

    iPhone QQ头像生成器 显示iphone在线 不用手机

    【标题】"iPhone QQ头像生成器 显示iphone在线 不用手机" 提供了一种解决方案,使得QQ用户能够在不实际使用iPhone的情况下,让他们的在线状态显示为“iPhone在线”。这通常是为了满足用户展示自己在线状态的个性化...

    安卓QQ(显示IPHONE在线)

    此软件上QQ可显示QQ for pad 在线,发消息可显示来自iphone 5。

    iPhone狂:约会iPhone

    根据提供的标题“iPhone狂:约会iPhone”以及描述“iPhone狂:约会iPhone”,我们可以理解这篇文章主要聚焦于iPhone的相关内容。然而,由于正文部分并未提供具体的信息或数据,我们将基于标题和描述来探讨与iPhone...

    iPhone5手机广告PSD分层文件

    《深入解析iPhone5手机广告PSD分层文件》 在设计领域,Photoshop(PSD)文件因其丰富的分层结构和可编辑性而备受青睐。本文将围绕“iPhone5手机广告PSD分层文件”这一主题,深入探讨其设计理念、元素构成及实际应用...

    iPhone下的popover

    在iPhone上,由于屏幕尺寸较小,其表现形式和iPad略有不同。 标题"iPhone下的popover"指的是在iPhone应用程序中实现和使用popover的技巧和注意事项。在iPhone上,因为屏幕空间有限,通常会通过自定义视图或者模态...

    iPhone苹果手机广告语大全集.pdf

    10. "The only thing that's changed is everything"(iPhone 6s/6sPlus):6s的广告语强调了内在的全面升级,如3D Touch技术,显示了苹果在用户体验上的细致入微。 11. "A big step for small"(iPhone SE):SE的...

    IOS应用源码之iphone开发技巧UI篇实现广告图片展现ADControllerTest.zip

    - 监听广告状态:通过监听广告的加载和显示事件,可以处理加载失败的情况,或者在广告显示时调整UI布局。 ```swift adView.adViewDidReceiveAd() adView.adViewDidFailToReceiveAdWithError(error) ``` 此外,为了...

    显示iphone在线

    标签“显示iPhone”进一步强调了这个话题的核心在于如何在某个系统或平台上观察到iPhone的在线情况。这可能是一个特定功能的实现,也可能是通过API接口来获取和展示这些信息。 在“压缩包子文件的文件名称列表”中...

    NSDate,iphone显示时间,日期的方法集合

    `NSDate`类还支持国际化,这意味着你可以在不同的语言环境中正确地显示日期。通过设置`NSDateFormatter`的`locale`属性,可以确保日期格式符合用户的地区设置。 另外,`NSCalendar`类可以帮助处理与日历相关的任务...

Global site tag (gtag.js) - Google Analytics