概要アプリ内にAppleによる広告を表示させる方法です。 広告を表示させることで、開発者(提供元)は広告収入をAppleから得ることができるようになります。
説明iADを表示させるためには、2つの方法があります。
- Interface Builder を使用する方法
- コード内でクラスを作成する方法
ここでの説明は割愛します。InterfaceBuilder
基本的には下記手順に従います。
- プロジェクトに「iAd.framework」を追加する。
- ADBannerViewクラスをUIViewControllerか継承クラスに貼付ける。
- 貼付けたUIViewControllerにDelegateを設定する。
重要
iAD ( ADBannerView ) には、UIViewController が必要です。 また、 iADは有効になるまでは画面に表示させてはなりません。(空白表示は不可) この処理はDelegateで行うことになりますが、これを怠ると、アプリ申請時
使用方法InterfaceBuilderでの対応方法です。
- UIViewControllerに共通コードを記述します。
- InterfaceBuilderで上記クラスのビューにADBannerViewを貼付けます。
 このとき、貼付けたUIViewControllerの「Interface Builder Document」の「Use Autplayout」のチェックを外しておいてください。
- 貼付けたADBannerViewのDelegate先を上記UIViewControllerにします。
- 上記UIViewControllerからOutletを指定します。(ADBannerView)
共通コードどの方法でiADを表示させる場合にでも、下記コードを実装する必要があります。 *下記コードはそのままでも使えますが、自身のアプリの内容に応じて変更してください。 クラス定義 .h(最低限)
iADの表示状態を管理するフラグを作成してください。 また、 ADBannerViewを作成します。ここではInterfaceBuilderで管理しています。 |
---|
@interface ins_ViewController : UIViewController <ADBannerViewDelegate>
{
BOOL bannerIsVisible; //ADBannerView表示状態管理フラグ YES=表示中
}
@property (nonatomic, weak) IBOutlet ADBannerView* bannerView; @property (nonatomic, assign) BOOL bannerIsVisible; |
クラス定義 .m(最低限) |
---|
@implementation ins_ViewController @synthesize bannerView; @synthesize bannerIsVisible; |
バナーがタップされた場合、広告を表示させるのか?させないのか?返します。 下記では常に許可しています。 |
---|
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner
willLeaveApplication:(BOOL)willLeave
{
return YES;
/*
BOOL shouldExecuteAction = [self allowActionToRun]; // アプリケーションはこの方法を実装する
if (!willLeave && shouldExecuteAction)
{
// ここにコードを挿入して、広告と競合する可能性のあるサービスを一時停止する
}
return shouldExecuteAction;
*/
} | |
広告が有効になった場合の処理 |
---|
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if( self.bannerIsVisible )
{
return;
}
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
self.bannerView.hidden = NO;
[UIView commitAnimations];
self.bannerIsVisible = YES;
} | |
エラー処理 |
---|
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
if( !self.bannerIsVisible )
{
return;
}
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
self.bannerView.hidden = YES;
[UIView commitAnimations];
self.bannerIsVisible = NO;
} |
|
|