-
Notifications
You must be signed in to change notification settings - Fork 16
Interstitial_Ad_iOS
開発環境にXcodeを使用することを前提とします。
iOS 7.0以降
- SDKをダウンロードします
↓ - リソースファイルをプロジェクトに追加します
↓ - 例を参考に広告表示の実装を行います
iOS SDK Getting Started / バナー広告からご確認ください。
CocoaPodsを使用している場合は、この手順は不要です。
ADG.framework/Resources
にあるADG-Resources.bundle
をXcodeのプロジェクトナビゲータの任意の場所にドラッグ&ドロップするか、右クリック > Add Files to ...
を選択し、"Copy items if needed"にチェックがついていることを確認して、Finishを押します。
- 広告を表示するViewやViewController等のヘッダーファイル内で
ADG/ADGInterstitial.h
をインポートします。 - ADGManagerViewControllerクラスのプロパティを追加します。
#import <ADG/ADGInterstitial.h> // 必要なファイルのインポート
@interface ViewController : UIViewController<ADGInterstitialDelegate> // デリゲートの設定
@property(nonatomic , retain) ADGInterstitial *interstitial; // プロパティの宣言
@end
- ADGInterstitialクラスを生成します。
- 広告リクエストを行います。
- インスタンスの破棄をします。
delegateへのnilセットを忘れないようご注意ください。 - delegateメソッドを実装します
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_interstitial = [[ADGInterstitial alloc] init]; // インスタンスの生成
_interstitial.delegate = self; // デリゲートの代入
[_interstitial setLocationId:@"48549"]; //広告枠IDの設定
[_interstitial preload]; //広告ロード
}
- (void) dealloc
{
// 画面を離れるより前のタイミングで必ず破棄すること
[_interstitial dismiss]; // 動作中の処理のキャンセル
[_interstitial setDelegate:nil];
[_interstitial release];
_interstitial = nil;
[super dealloc];
}
// デリゲート
- (void)ADGInterstitialClose
{
NSLog(@"%@", @"ADGInterstitialClose");
}
- (void)ADGManagerViewControllerReceiveAd:(ADGManagerViewController *)adgManagerViewController
{
NSLog(@"%@", @"ADGManagerViewControllerReceiveAd");
[_interstitial show];
}
- (void)ADGManagerViewControllerFailedToReceiveAd:(ADGManagerViewController *)adgManagerViewController
code:(kADGErrorCode)code {
NSLog(@"%@", @"ADGManagerViewControllerFailedToReceiveAd");
// ネットワーク不通/エラー多発/広告レスポンスなし 以外はリトライしてください
switch (code) {
case kADGErrorCodeExceedLimit:
case kADGErrorCodeNeedConnection:
case kADGErrorCodeNoAd:
break;
default:
[_interstitial preload]; //広告ロード
break;
}
}
- (void)ADGManagerViewControllerDidTapAd:(ADGManagerViewController *)adgManagerViewController{
NSLog(@"%@", @"ADGManagerViewControllerDidTapAd");
}
@end
iOSリファレンスをご参照ください。
- (void)ADGManagerViewControllerReceiveAd:(ADGManagerViewController *)adgManagerViewController
広告のロードが成功したタイミングで呼び出されます。
ローテーションによる広告取得成功の際にも呼び出されます。
- (void)ADGManagerViewControllerFailedToReceiveAd:(ADGManagerViewController *)adgManagerViewController code:(kADGErrorCode)code
広告のロードに失敗したタイミングで呼び出されます。
- kADGErrorCodeUnknown……不明なエラーが発生しました。
- kADGErrorCodeCommunicationError……アドサーバー間通信/連携しているアドネットワークSDKとの接続等でエラーが発生しました。
- kADGErrorCodeReceivedFiller……白板検知されました。
- kADGErrorCodeNoAd……接続先アドネットワーク全て広告在庫切れが返却されました。
- kADGErrorCodeNeedConnection……デバイスがネットワークに接続されていません。
- kADGErrorCodeExceedLimit……エラー回数が上限に達しました。
- (void)ADGManagerViewControllerDidTapAd:(ADGManagerViewController *)adgManagerViewController
広告がタップされた際に呼び出されます。
(ブラウザやストア起動の成否は問いません)
- (void)ADGInterstitialClose
広告を閉じたタイミングで呼び出されます。
アプリ内で複数のUIWindowインスタンスが解放されず残っている場合、このタイミングで表示を整理する必要があります。
setBackgroundType
およびsetCloseButtonType
で指定できるデフォルトのデザインは以下の通りです。
-
BackgroundType:0 CloseButtonType:0
-
BackgroundType:1 CloseButtonType:1
-
BackgroundType:2 CloseButtonType:2
-
BackgroundType:3 CloseButtonType:3
-
BackgroundType:4 CloseButtonType:4
オリジナルの画像を適用する場合は下記のルールに従ってください。
- 閉じるボタン:横300px/縦30px
- 背景:横315px/縦300px
縦横比率固定であれば高解像度でも問題ありません。
- 閉じるボタン:adg_interstitial_close_button_XXX.png
- 背景:adg_interstitial_background_XXX.png
XXXには100以降の3桁の数を入れてください。
この数がパーツ番号となります。
[_interstitial setBackgroundType:XXX];
[_interstitial setCloseButtonType:XXX];
XXXにはパーツ番号を記入してください。
"4. リソースファイルをプロジェクトに追加する"まで行ってください。
プロジェクト直下に以下の一行を書いたhファイルを作成します(ここでは名前をHeader.hとする)。
#import <ADG/ADGInterstitial.h>
Build Settingsの「SwiftCompiler-Code Generation」内の「Objective-C Bridging Header」にHeader.hを設定します。
広告の呼び出しを実装します。
class ViewController: UIViewController {
fileprivate var adgInterstitial: ADGInterstitial?
override func viewDidLoad() {
super.viewDidLoad()
adgInterstitial = ADGInterstitial()
adgInterstitial?.setLocationId("48549") // 広告枠ID
adgInterstitial?.delegate = self
adgInterstitial?.show() // 広告表示
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
adgInterstitial?.dismiss()
adgInterstitial?.delegate = nil
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
extension ViewController: ADGInterstitialDelegate {
func adgManagerViewControllerReceiveAd(_ adgManagerViewController: ADGManagerViewController!) {
print("Received an ad.")
}
func adgManagerViewControllerFailed(toReceiveAd adgManagerViewController: ADGManagerViewController!, code: kADGErrorCode) {
print("Failed to receive an ad.(\(code.rawValue))")
}
func adgManagerViewControllerDidTapAd(_ adgManagerViewController: ADGManagerViewController!) {
print("The user clicked an ad.")
}
func adgInterstitialClose() {
print("Closed an ad.")
}
}