分享AdMob + iAd部署代码

分享AdMob + iAd部署代码,第1张

概述分享AdMob + iAd部署代码    http://www.cocoachina.com/bbs/read.php?tid-43249-keyword-admob.html 之前我的 AdMob广告显示一直采用IBSupport模式,这两天搞搞In App Purchase(程序内购买),又重新研究和测试了 AdMob代码,终于可以丢掉IBSupport模式,进入全 代码控制了。 论坛内有人建

分享AdMob + iAd部署代码   

http://www.cocoachina.com/bbs/read.php?tid-43249-keyword-admob.html

之前我的 AdMob广告显示一直采用IBSupport模式,这两天搞搞In App Purchase(程序内购买),又重新研究和测试了 AdMob代码,终于可以丢掉IBSupport模式,进入全 代码控制了。 论坛内有人建议用ADWhirl实现 AdMob +  iAd,还没有来得急研究,不知道难度大不大。在这里 分享一下我的最终方案,不知道是否还有人需要在这方面努力,同时尚未能够全面测试,不知道还存在哪些 问题,有经验的朋友交流交流一下。 


部署 广告函数,本函数在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



else if ([[[ 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(748110); 
else 
sizetoRequest = CGSizeMake(32048); 


adMobAd = [ AdMobVIEw  requestAdOfSize:sizetoRequest  withDelegate: self];  // start a new ad request 
[ adMobAd retain ]; // this will be released when it loads (or fails to load) 


else { 
//启用iAd 
if(! iAdVIEw) { 
iAdVIEw = [[ADBannerVIEw alloc initWithFrame :CGRectZero ]; 
iAdVIEw .requiredContentSizeIDentifIErs = [NSSet setWithObject ADBannerContentSizeIDentifIErPortrait ]; 
iAdVIEw .currentContentSizeIDentifIEr ADBannerContentSizeIDentifIErPortrait ; 

if ([[[ UIDevicecurrentDevice model rangeOfString : @"iPad" ]. location ==  0 ) 
iAdVIEw.frame = CGRectMake(0102476866); 
else 
iAdVIEw.frame = CGRectMake(048032050); 

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. frame066); 
else 
iAdVIEw. frame =  CGRectOffset( iAdVIEw. frame50); 

[ 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 
CGRect frame =  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 -  110748110); 
else 
  adVIEw. frame =  CGRectMake( 0,frame. size. height -  48,frame. size. wIDth48); 

[ self . vIEwaddSubvIEw : adVIEw]; 
[adMobRefreshTimer invalIDate ]; 
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,- 66); 
else 
banner. frame =  CGRectOffset(banner. frame,- 50); 

        [ UIVIEwcommitAnimations ]; 
bannerIsVisible YES ; 
banner. hIDden =  NO
    } 


增加个Demo,解压后,工程文件在Hello Arifly文件夹内,外面的 AdMob和touchJsON为 AdMob SDK附带的源码,需要引用到。 

 Ads(AdMob+iAd)Demo.zip (1549 K) 下载次数:452 
总结

以上是内存溢出为你收集整理的分享AdMob + iAd部署代码全部内容,希望文章能够帮你解决分享AdMob + iAd部署代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1094053.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存