iAd広告バナーをiPhoneアプリケーションに追加する

今年4月、新しいiOS 4オペレーティングシステム(旧iPhone OS)のプレゼンテーション中に、Steve JobsはAppleの新しいモバイル広告プラットフォームであるiAdも紹介しました。 Appleによると、彼らの主な仕事は、最新の広告バナーを配置することにより、開発者に無料で低コストのアプリケーションを獲得する機会を与えることです。 広告バナーの表示とクリックの両方に対して支払いが行われます。 2番目のケースでは、支払いは大幅に高くなります。



iAdの主なアイデアは、スマートフォンとタブレットの使用を可能にするインタラクティブ機能と、オーディオとビデオの両方が関係する広告の感情との組み合わせです。 これらの目的のために、広告を作成するときに、Java Script、HTML5、CSS3、およびマルチタッチが使用されます。 これらすべてにより、興味深く、人目を引くコマーシャルアプリケーションを作成できます。 このような広告の例は、新しいオペレーティングシステム(英語)のプレゼンテーションで見ることができました



Appleによると、今日のモバイル広告の主な問題は、ユーザーが広告バナーをクリックすると、ユーザーがアプリケーションを離れることです。ほとんどの場合、広告主のWebサイトにアクセスします。 iAdの助けを借りて、この問題を回避できます。 バナーをクリックすると、アプリケーションの上部に広告が表示されます。 ユーザーはいつでもそれを閉じて、彼がそれを去ったまさにその瞬間にあなたのアプリケーションに戻ることができます。



iAdプログラミングガイドとWWDC 2010のビデオに基づいて、この新しいテクノロジの概要と翻訳の概要をスケッチしました。 それは、カラフルな広告自体を作成することではなく、アプリケーションに配置することです。







アプリケーションに広告を配置するために最初にすることは、 iAd.frameworkをXcodeのプロジェクトに追加することです 。 iOS 4 SDKに含まれています。 必要に応じて、#import <iAd / iAD.h>を追加することを忘れないでください。 開発者は、2つのバナーを使用して-320 x 50ピクセルから選択できます。 ポートレートレイアウトおよび480 x 32ピクセル用。 風景のため。 このバナーの基本は、UIViewのサブクラスであるADBannerViewクラスです。 したがって、インターフェイスビューの階層にこのビューを埋め込むだけです。 これは、プログラムとInterface Builderの両方で実行できます-新しいUI要素が表示されます-Ad BannerView。







Appleは、ScrollViewやTableViewなどの要素の可動部分にバナーを配置せずに、画面の上部または下部にバナーを配置することを強くお勧めします。これにより、インプレッションが減少し(結果としてお金がかかります)



ビューベースのアプリケーションテンプレートに基づいてXcodeで新しいプロジェクトを作成し、それに広告バナーを追加してみましょう。 アプリケーションはiAdExと呼ばれます。 iAdExViewController.hのコードを変更します



 #import <UIKit/UIKit.h> #import <iAd/iAd.h> @interface iAdExViewController : UIViewController "<"ADBannerViewDelegate">" //  ,    ADBannerViewDelegate { ADBannerView *adView; BOOL bannerIsVisible; } @property (nonatomic,assign) BOOL bannerIsVisible; @end
      
      







iAdExViewController.mでviewDidLoadメソッドを変更します



 - (void)viewDidLoad { adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; adView.frame = CGRectOffset(adView.frame, 0, -50); adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50]; adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50; [self.view addSubview:adView]; adView.delegate=self; self.bannerIsVisible=NO; [super viewDidLoad]; }
      
      







requiredContentSizeIdentifiersプロパティとcurrentContentSizeIdentifierプロパティについてもう少し詳しく見てみましょう。

最初のプロパティでは、アプリケーションで使用するあらゆる種類のバナーを指定します。 2番目のプロパティは、この特定の瞬間に使用するバナーのタイプです。 これまでで最も単純なアプリケーションを書いているので、1つのバナーサイズと縦長の向きで続行します。以下では、携帯電話の向きに応じてバナーを変更します。



ちょっと待って、理由を説明しましょう。 デバイスは、ネットワークからバナー広告を受信します。 接続のない場所にいるとどうなりますか? または、Appleの広告サーバーに何らかの中断がありますか? その後、ADBannerViewは空になります。 それは美しくないだけでなく、私たちのアプリケーションの代わりにもなります。 Appleは、「理想的な実装」と呼ぶことを強くお勧めします。何らかの理由で、広告がない場合にアプリケーション画面からバナーが削除され、通信が回復して広告が受信されると、画面に再び表示されます。 クラスの説明でADBannerViewDelegateを意図的に属性付けし、バナーからメッセージを受信できるようにしました。 広告が正常に受け入れられると、バナーはbannerViewDidLoadAdメッセージを送信し、問題が発生した場合はdidFailToReceiveAdWithErrorメッセージを送信します。 アプリケーションにこれに必要なメソッドをすぐに実装します。



 - (void)bannerViewDidLoadAd:(ADBannerView *)banner { if (!self.bannerIsVisible) { [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; //          50  banner.frame = CGRectOffset(banner.frame, 0, 50); [UIView commitAnimations]; self.bannerIsVisible = YES; } } - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { if (self.bannerIsVisible) { [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; //   ,    ,   -     banner.frame = CGRectOffset(banner.frame, 0, -50); [UIView commitAnimations]; self.bannerIsVisible = NO; } }
      
      







打ち上げ



画像



バナーをクリック



画像



Appleの仲間が私たちに尋ねているので、すべてを正しく実装しました。 ここでアプリケーションを起動すると、バナーが表示され、テスト広告が表示されます。それをクリックすると、大きなテスト広告が開きます。 しかし、1つの問題があります。 バナーを表示する以外は何もしないテストアプリケーションがあることは良いことです。 そして、おそらくゲームや音楽プレーヤー、その他のインタラクティブなアプリケーションがあります。 私と同じことをすると、広告が表示されている間もアプリケーションが音楽やビデオを再生し続け、混乱することに気付くでしょう。 また、ゲームがあり、イベントに緊急に対応する必要がある場合、ユーザーは通常、アプリケーションでの広告を避けます。 これらの問題を解決するために、大規模な広告が展開し始めるとアプリケーションにbannerViewActionShouldBeginメソッドを実装し、最小化するとbannerViewActionDidFinis hを実装します。



 - (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave { NSLog(@"Banner view is beginning an ad action"); BOOL shouldExecuteAction = YES; //         if (!willLeave && shouldExecuteAction) { //       // [video pause]; // [audio pause]; } return shouldExecuteAction; } - (void)bannerViewActionDidFinish:(ADBannerView *)banner { //   ,    // [video resume]; // [audio resume]; //   }
      
      







BOOL shouldExecuteActionについて説明しましょう 。 私が示した-はい。 また、できるだけ頻繁にADBannerViewに「はい」と言ってください。 したがって、クリック後にフルスクリーンに拡大することができます。 アプリケーションに重要なプロセスがあり、このプロセスの中断を許可したくない場合は、このメッセージに返信できます-いいえ、広告は開きません。 ただし、Appleは、これをまったく行わないか、緊急の場合にのみ行うことを強く求めています。 自分で考えてください-バナーがあります-ユーザーがそれをクリックします-しかし、広告はありません。 混乱! WWDCのiAd紹介マネージャーが言ったように、「NOと答えることはできますが、状況がどうあるべきかわかりません。」



「ささいなこと」からやるべきことは、携帯電話の向きに応じてバナーを変更することだけです。 覚えている場合は、初期化中に、要求されたバナーを縦向きのみに示しました。 したがって、ここでこの行を修正する必要があります。



- (void)viewDidLoad {

...

adView.requiredContentSizeIdentifiers = [NSSet setWithObjects:ADBannerContentSizeIdentifier320x50,ADBannerContentSizeIdentifier480x32,nil];

...

}








これは、次のメソッドがどのように見えるかです



 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait|UIInterfaceOrientationPortrait); } - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32; else adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50; }
      
      







シミュレーターを回した後の結果:



画像



つまり、電話機の向きを変更するとき、ADBannerViewのcurrentContentSizeIdentifierプロパティを変更します 。 これで、アプリケーションと横向きの広告バナーを見ることができます。 「アルバム内」のスクリーンショットは、バナーの50ピクセルシフトのためにあまりうまくいきませんでしたが、自分で修正します。



WWDCで話題になったいくつかのささいなこと。 Appleのエンジニアは、ADBannerViewオブジェクトをリリースする前にlineオブジェクトを作成することをお勧めします。.delegate = nil; 非常に、非常に尋ねます。 特定の例では、これは次のようになります。



 - (void)dealloc { adView.delegate=nil; [adView release]; [super dealloc]; }
      
      







これでソフト​​ウェアの部分は完了です。 バナーを作成し、2つの方向で機能させ、このバナーのイベントとエラーの処理方法を学びました。



次に、支払いについて簡単に説明します-iAd Networkからの広告を反映するためのお金を受け取るには、Appleとのもう1つの契約が必要になります。 ポータルでアプリケーションを設定するプロセスで、「アプリケーションの対象ユーザーは17歳未満ですか?」という質問に答えます。そして、広告を表示したくない単語とURL例外を設定します。 たとえば、アプリケーションに競合他社を表示したくない場合があります。 それでは、小切手の到着をお金で待ってください。



IAdは7月1日から開始される予定です。袖をまくり、アプリケーションを追加してください。まだ時間があります。 これまでのところ、開発者フォーラムにはテスト広告が不安定に見えるという情報があります。 実際、今日記事を書いている間に、アプリケーションの起動時にアナウンスが表示されるか、表示されませんでした。 しかし、すべてに魅力があります-しかし、広告が最終的にネットワークから受信されたときに、バナーの表示方法もテストしました。



All Articles