zoukankan      html  css  js  c++  java
  • adMob iAd整合,随机根据网络状况自动显示。

    最近找整合的代码,找到的都不对,有个大概对的,但要奔溃退出,只要两个单独弄。

    adMob 下载好sdk,导入进去,iAd的加入iad framework.

    使用方法,在viewController viewDidAppear内添加

    IADView* adView = [IADView sharedInstance];
        [adView createAdBannerView:self.view TOP:0];

    IADView

    #import "iAd/ADBannerView.h"
    #import "GADBannerViewDelegate.h"
    #import "GADRequest.h"
    
    @interface IADView : UIViewController<ADBannerViewDelegate,GADBannerViewDelegate>{
        ADBannerView *adView;
        GADBannerView *adBanner;
        bool bShowAD;
    }
    //@property (retain) UIViewController *presentingViewController;
    
    + (IADView *)sharedInstance;
    - (void) createAdBannerView:(UIView*) parentView TOP:(NSInteger) top;
    - (void) hideAdView;
    - (void) showAdView;
    
    @end

    #import "IADView.h"
    #import "GADBannerView.h"
    #import "GADRequest.h"
    #define ADMOB_ID "ca-app-pub-8377493162678380/4602812906"
    @implementation IADView
    
    @synthesize presentingViewController;
    
    static IADView *iADHelper = nil;
    + (IADView *) sharedInstance {
        if (!iADHelper) {
            iADHelper = [[IADView alloc] init];
        }
        return iADHelper;
    }
    
    - (void)createAdBannerView:(UIView*) parentView TOP:(NSInteger) top{
        bShowAD = true;
    	//IAd
        adView = [[ADBannerView alloc]initWithFrame:CGRectMake(0, top, 320, 100)];
        adView.delegate = self;
        adView.hidden = YES;
        
        [parentView addSubview:adView];
        
        //AdMob
        adBanner= [[GADBannerView alloc] initWithFrame:CGRectMake(0.0, top, GAD_SIZE_320x50.width,GAD_SIZE_320x50.height)];
        adBanner.adUnitID = [NSString stringWithUTF8String:ADMOB_ID];//调用id
        adBanner.rootViewController = self;
        adBanner.backgroundColor = [UIColor yellowColor];
        adBanner.hidden = YES;
        [self.view addSubview:adBanner];
        [parentView addSubview:adBanner];
        [adBanner setDelegate:self];
        [adBanner loadRequest:[GADRequest request]];
    }
    
    #pragma mark - iAd广告委托
    - (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner
                   willLeaveApplication:(BOOL)willLeave
    {
        return YES;
    }
    
    - (void)bannerViewDidLoadAd:(ADBannerView *)banner
    {
        NSLog(@"iAd loaded, AdMob will close");
       
        [adView.superview bringSubviewToFront:adView];
        
        if (adBanner != nil)
        {
            adBanner.delegate = nil;
            [adBanner removeFromSuperview];
            adBanner = nil;
        }
        
        if(bShowAD)
            adView.hidden = NO;
    }
    
    - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
    {
        NSLog(@"
    ==>iAd failed to load");
        if(adView != nil)
            adView.hidden = YES;
    }
    
    #pragma mark - adMob委托
    - (void)adViewDidReceiveAd:(GADBannerView *)adViewMob {
        NSLog(@"Admob loaded, iAd will close");
        [adBanner.superview bringSubviewToFront:adBanner];
        if(adView!=nil){
            [adView setDelegate:nil];
            [adView removeFromSuperview];
            adView = nil;
        }
        if(bShowAD)
            adBanner.hidden = NO;
    }
    
    - (void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error {
        NSLog(@"
    ==>adMob ERROR Failed to receive ad with error: %@", [error localizedFailureReason]);
        adBanner.hidden = YES;
    }
    
    #pragma mark - 公共方法
    - (void) showAdView
    {
        NSLog(@"hide Ads");
        if(adView!=nil)
            adView.hidden = YES;
        
        if (adBanner != nil)
            adBanner.hidden = YES;
        bShowAD = false;
    }
    
    - (void) hideAdView
    {
        NSLog(@"show Ads");
        if(adView!=nil)
            adView.hidden = NO;
        
        if (adBanner != nil)
            adBanner.hidden = NO;
        bShowAD = true;
    }
    
    -(void)dealloc{
        NSLog(@"163");
        if(adView!=nil)
            [adView removeFromSuperview];
    }
    
    @end


  • 相关阅读:
    【洛谷P4137】Rmq Problem / mex【主席树】
    【洛谷P4168】蒲公英【分块】
    【洛谷P4168】蒲公英【分块】
    【POJ3422】Kaka's Matrix Travels【费用流】
    【POJ3422】Kaka's Matrix Travels【费用流】
    【USACO3.1】解题报告
    【USACO3.1】解题报告
    【USACO3.1.5】【洛谷P2724】联系 Contact【模拟】
    【USACO3.1.5】【洛谷P2724】联系 Contact【模拟】
    死锁
  • 原文地址:https://www.cnblogs.com/lein317/p/5067545.html
Copyright © 2011-2022 走看看