AppDelegateで iAdバナー広告を表示する

AppDelegate経由で iAdバナー広告を表示するサンプルを作成しました。

以下のリンクからサンプルをダウンロード出来ます。

ダウンロード

使用方法

  1. 新規プロジェクトを作成する
  2. Xcodeの TARGETSにある Summaryを開き、Linked Frameworks and Librariesの項目から iAd.frameworkを追加
  3. MainStorybordを開き、ADBannerViewをストーリーボードに配置
  4. 配置した ADBannerViewを Controlキーを押しながら ViewController.hへドラッグして接続
  5. ソースコードを以下の内容に編集

ソースコード

AppDelegate.h

1
2
3
4
5
6
7
8
9
#import <iAd/iAd.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate, ADBannerViewDelegate>

@property (strong, nonatomic) UIWindow *window;

- (void)initBanner:(UIView *)view :(ADBannerView *)adBannerView :(NSInteger)bannerY;

@end

AppDelegate.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#import "AppDelegate.h"

@implementation AppDelegate

//省略

- (void)initBanner:(UIView *)view :(ADBannerView *)adBannerView :(NSInteger)bannerY
{
  NSInteger iADBannerX = 0;
  NSInteger iADBannerY = 0;
  NSInteger iADBannerWidth = 320;
  NSInteger iADBannerHeight = 50;
  adBannerView = [[ADBannerView alloc] initWithFrame:CGRectMake(iADBannerX, iADBannerY, iADBannerWidth, iADBannerHeight)];
  adBannerView.delegate = self;
  [adBannerView setHidden:YES];
  CGRect bannerFrame = adBannerView.frame;
  bannerFrame.origin.y = bannerY;
  adBannerView.frame = bannerFrame;
  [view addSubview:adBannerView];
}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
  [banner setHidden:NO];
}

- (void)bannerViewActionDidFinish:(ADBannerView *)banner {
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
  [banner setHidden:YES];
}

@end

ViewController.h

1
2
3
4
5
6
7
8
9
10
#import <UIKit/UIKit.h>
#import <iAd/iAd.h>

@interface ViewController : UIViewController <ADBannerViewDelegate> {
  ADBannerView *adBannerView;
}

@property (nonatomic, retain) IBOutlet ADBannerView *adBannerView;

@end

ViewController.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#import "ViewController.h"
#import "AppDelegate.h"

@interface ViewController ()

@end

@implementation ViewController

//アクセサメソッドとして定義しておく
@synthesize adBannerView;

- (void)viewDidLoad
{
  [super viewDidLoad];
  //バナー初期化
  [self initADBanner];
}

- (void)initADBanner
{
  //バナーの Y座標を画面下部に指定
  NSInteger bannerY = self.view.frame.size.height - adBannerView.frame.size.height;
  //AppDelegate初期化
  AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  //AppDelegateにある initBannerメソッド呼び出し (引数にバナーの Y座標を指定)
  [appDelegate initBanner:self.view:adBannerView:bannerY];
}

- (void)didReceiveMemoryWarning
{
  [super didReceiveMemoryWarning];
}

@end

補足

iAdバナーのサイズ(寸法)は、横幅320ピクセル×縦幅50ピクセルです。

関連記事

お薦めの参考書

詳細! Swift 2 iPhoneアプリ開発 入門ノート Swift 2 + Xcode 7対応
Swiftをこれから学ぶ方に向けて、図解入りで丁寧に解説されています。基本に重点を置き解説されていますので、応用の段階に入った時もスムーズに実装できます。サンプルコードも多数収録されており、大変充実した内容となっています。

   このエントリーをはてなブックマークに追加

About

Masaki Hirokawa (@dolice_apps)

デザインエンジニア 廣川政樹の開発ブログ。Objective-Cや Javaなど iPhone/Androidアプリ開発に関する技術情報を掲載しています。

iPhone apps

  • リラックス・ヒーリング(無料)
  • 望みが叶う!引き寄せの法則アプリ(無料)
  • ミステリー - 怖い話や不思議な体験、都市伝説まとめ
  • 浮世絵壁紙 - 美しい日本画ギャラリー(無料)
  • アート壁紙HD(無料)
  • 綺麗な壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)
  • クールな壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)

Android apps

  • 浮世絵壁紙 - 美しい日本画ギャラリー
  • 綺麗な高画質壁紙

Objective-C Classes

Tag Cloud

ActionScript(9) ActionScript3(7) Ad(4) Adfurikun(2) AdMob(9) Android(10) Animation(17) AppDelegate(3) ARC(1) ArrayList(1) AVAudioPlayer(4) AVAudioSession(1) AVFoundation(3) Banner(2) Bitmap(1) Camera(4) CGAffineTransform(4) CGBlendMode(2) CGContextRef(1) CGImageRef(1) Classes(44) CLLocationManager(1) ConnectivityManager(1) ContentResolver(1) CoreLocation(2) Delegate(3) Device(7) Display(1) DisplayMetrics(1) Download(101) Facebook(6) Foundation(72) Framework(2) Google Analytics(1) Handler(1) iAd(6) ImageView(1) In-AppPurchase(1) iOS(12) iOS 7(15) iOS 7.1(3) iOS 8(1) iPad(7) iPhone(21) iPhone 6(4) Java(7) JavaScript(2) LINE(4) Localize(1) Magazine(1) MediaStore(1) MFComposeViewController(1) Nend(1) NetworkInfo(1) NSArray(23) NSCalendar(3) NSData(2) NSDate(7) NSDateComponents(2) NSDateFormatter(2) NSDictionary(12) NSEnumerator(1) NSIndexSet(1) NSInteger(6) NSMutableArray(17) NSMutableDictionary(5) NSMutableOrderedSet(7) NSMutableString(4) NSMutableURLRequest(1) NSNotificationCenter(1) NSNumber(1) NSObject(1) NSOrderedSet(7) NSRange(2) NSSelectorFromString(1) NSSet(6) NSString(19) NSTimer(4) NSTimeZone(1) NSURL(7) NSURLConnection(1) NSURLRequest(2) NSUserDefaults(7) NSXMLParser(2) Objective-C(222) PHP(1) Products(14) QuartzCore(3) RSS(2) Runnable(1) Sample(51) Screensaver(9) SDK(2) ShareCompat(1) Social(10) StoreKit(1) Twitter(6) UIAccelerometer(3) UIActionSheet(1) UIActivityIndicator(1) UIActivityIndicatorView(3) UIActivityViewController(1) UIAlertView(5) UIApplication(7) UIButton(4) UIColor(3) UIDatePicker(5) UIDevice(6) UIDeviceOrientation(1) UIEvent(6) UIImage(15) UIImagePickerController(4) UIImageView(12) UIKit(58) UILabel(7) UINavigationBar(4) UINavigationItem(1) UIPasteboard(4) UIScreen(1) UIScrollBar(1) UIScrollView(1) UISlider(3) UIStoryboardSegue(3) UISwitch(1) UITabBar(3) UITableView(4) UITextField(2) UIView(11) UIViewAnimationTransition(1) UIViewController(4) UIWebView(5) WindowManager(1) Xcode(48) Xcode 5(8) Xcode 5.1(2)