Skip to content

Interstitial_Ad_iOS

AdGeneration edited this page Jun 13, 2017 · 17 revisions

iOS SDK インタースティシャル広告

はじめに

開発環境にXcodeを使用することを前提とします。

対応バージョン

iOS 7.0以降

導入の流れ

  1. SDKをダウンロードします
  2. リソースファイルをプロジェクトに追加します
  3. 例を参考に広告表示の実装を行います

1. SDKをダウンロードする

iOS SDK Getting Started / バナー広告からご確認ください。

2. リソースファイルをプロジェクトに追加する

CocoaPodsを使用している場合は、この手順は不要です。

ADG.framework/ResourcesにあるADG-Resources.bundleをXcodeのプロジェクトナビゲータの任意の場所にドラッグ&ドロップするか、右クリック > Add Files to ... を選択し、"Copy items if needed"にチェックがついていることを確認して、Finishを押します。

img

img

3. 広告表示を実装する

.hファイル

  1. 広告を表示するViewやViewController等のヘッダーファイル内でADG/ADGInterstitial.hをインポートします。
  2. ADGManagerViewControllerクラスのプロパティを追加します。
#import <ADG/ADGInterstitial.h> // 必要なファイルのインポート

@interface ViewController : UIViewController<ADGInterstitialDelegate> // デリゲートの設定

@property(nonatomic , retain) ADGInterstitial *interstitial; // プロパティの宣言

@end

.mファイル

  1. ADGInterstitialクラスを生成します。
  2. 広告リクエストを行います。
  3. インスタンスの破棄をします。
    delegateへのnilセットを忘れないようご注意ください。
  4. 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リファレンスをご参照ください。

Delegateについて

広告受信
- (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にはパーツ番号を記入してください。

Swiftでの実装

"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.")
    }
}

Home

導入マニュアルのドキュメントはコチラに移行しました。

お手数ですがリンクから遷移してください。 https://docs.sdk.ad-generation.jp/

Clone this wiki locally