Vungle SDK v. 5 スタート ガイド - Corona

コンテンツ

始める前に

  • Corona シミュレーターでは広告は機能しません。広告をテストするにはデバイスにビルドする必要があります。
  • 最新の Corona ビルドを統合に使用することをお勧めします。このガイドは、日次ビルド 3103 を使用して執筆およびテストされたものです。ホストするプラグインがお使いの Corona SDK のバージョンに対応していない場合は、tech-support@vungle.com までお問い合わせください。
  • iOS 向け Vungle Corona プラグインは iOS 8 以上をサポートしており、Corona SDK によって制限されます。
  • Android 向け Vungle Corona プラグインは Android 4.0.3 (Ice Cream Sandwich - API バージョン 15) 以上をサポートしており、Corona SDK によって制限されます。
  • サンプル アプリケーションは https://github.com/Vungle/Corona-Plugin/tree/sdk5 からダウンロードできます。

手順 1: build.settings を更新する

Vungle SDK v5.1 向け Corona プラグインは公式 Corona サーバーではまだ使用できませんが、Vungle が提供するセルフホスティング形式のプラグインをご利用いただけます。build.settings の plugins テーブルに次のエントリーを追加してください。これを追加すると、SDK がサーバーに接続し、ビルド フェーズ中に Vungle SDK 5+ プラグインが統合されます。

plugins =
{ ["plugin.vungle"] = { publisherId = "com.vungle",
},
..
}

Android の場合のみ

Android では、このプラグインを使用するときに以下の権限が自動的に追加されます。

androidPermissions = {
    "android.permission.INTERNET",
    "android.permission.WRITE_EXTERNAL_STORAGE",
    "android.permission.ACCESS_NETWORK_STATE"
},

手順 2: コードを追加する

SDK を初期化する

注意: デフォルトの広告配置はアプリケーションごとに自動的に作成されます。広告配置機能を利用するかどうかにかかわらず、広告配置の参照 ID をこの初期化手順で指定する必要があります。複数の広告配置を作成する場合は、すべての参照 ID を指定してください。

自動キャッシュされる広告配置用に広告アセットをダウンロードするための十分な時間が SDK に与えられるよう、アプリケーションが起動したらすぐに SDK を初期化してください。SDK を初期化するには、以下が必要です。

  • Vungle 広告のインポート
  • アプリケーション ID
  • アプリケーションで使用するすべての広告配置の参照 ID

これらの ID は Vungle ダッシュボードから取得できます (「広告配置の設定とレポート作成」を参照してください)。

サンプル コード:

local ads = require "plugin.vungle"
platform = system.getInfo( "platformName" )
placements = {}

if (platform == "Android") then
    appData = {
        appID="YOUR_ANDROID_APP_ID",
        placements={“PLMT_DEFAULT","PLMT_1","PLMT_2"}
    }
else
    appData = {
        appID="YOUR_IOS_APP_ID",
        placements={“PLMT_DEFAULT","PLMT_1","PLMT_2"}
}

-- vungleAdListner is optional
ads.init("vungle", appData.appID .."," .. appData.placements[1] .."," .. appData.placements[2] .."," .. appData.placements[3] [, vungleAdListener])

SDK が正常に初期化されると、次のイベントが呼び出されます。

event.type == "adAvailable"

Vungle SDK が初期化されると、Vungle ダッシュボードで [Auto-Cached] として選択した広告配置用の広告が自動的にリクエストされます。閲覧回数の最も多い広告配置を自動キャッシュの対象として選択することをお勧めします。

広告が正常にキャッシュされると、[Auto-Cached] で選択した広告配置と一致する広告配置参照 ID で adAvailable イベントが呼び出されます。自動キャッシュ形式の広告配置の場合は、広告の使用可能状態が true から false に、または false から true に変更されたときにだけ、このメソッドが呼び出されます。SDK は、自動キャッシュ形式の広告配置用に広告をリクエストし続けます。それ以外のすべての広告配置では、読み込みが失敗した場合にこのコールバック メソッドが呼び出されます (この場合、adAvailable は「NO」を返します)。

広告が配置可能かどうかは、次のプロパティを使用して確認することもできます。

- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID;

広告配置用の広告を読み込む

自動キャッシュ形式以外の広告配置の場合は、ads.load() メソッドを呼び出して広告を読み込みます。このメソッドは、広告配置の参照 ID 文字列を引数として受け入れます。このメソッドが広告配置用に広告を読み込もうとするのは、ads.load() が発行され、その広告配置用の広告が使用可能になっていない場合に限ります。

ads.load( "PLMT_1” )

注意: 自動キャッシュ形式の広告はプリキャッシュ広告の再生後にただちに読み込まれるため、このメソッドは自動キャッシュ形式以外の広告配置でしか使用されません。

広告配置用の広告を再生する

広告アセットのダウンロードが完了するのに十分な時間待ったら、ads.show() を呼び出して広告を再生することができます。広告を再生しようとする前に event.adPlayble を呼び出すことによって、この広告配置用に準備のできた広告があることを確認しておく必要があります。

サンプル コード:

if (event.placementID == appData.placements[1]) then
    if ( event.adPlayable == true ) then
        ads.show( "PLMT_DEFAULT")
    end
end

イベント処理

初期化が行われる前に、リスナーを設定することによってオプションのイベント リスナーを ads.init() に渡すことができます。使用可能なイベント リスナーの一覧を以下に示します。

  • adStart
    type: adStart
    placementID: 広告配置の参照 ID
    isError: 広告を再生できなかった場合は true、広告の再生が開始された場合は false

  • adLog
    type: adLog
    message: 広告アクティビティ メッセージ

  • adInitialize
    type: adInitialize 

  • adAvailable
    type: adAvailable
    placementID: 広告配置の参照 ID
    isAdPlayable: 広告が再生可能な場合は true、それ以外の場合は false

  • adEnd
    type: adEnd
    placementID: 広告配置の参照 ID
    didDownload: ユーザーがダウンロード ボタンをクリックした場合は true、それ以外の場合は false
    completedView: ユーザーが動画の 80% 以上を視聴した場合は true、それ以外の場合は false

  • vungleSDKlog
    type: vungleSDKlog
    message: SDK イベント メッセージ

サンプル コード:

local function vungleAdListener( event )
    if ( event.type == "adStart" and not event.isError ) then
        -- adStart event is called and ad will play
    end
    if ( event.type == "adStart" and event.isError ) then
        -- Ad has not finished caching and will not play
    end
    if ( event.type == "adLog") then
        -- adLog event is called to pass ad activity information
    end
    if ( event.type == "adInitialize") then
        -- adInitilizaed is called when placement has successfully initialized
    end
    if ( event.type == "adAvailable" ) then
        -- adAvailable is called when playablility changes to/from true/false
        -- Usage example: setting a flag to true when download completes
        --   Check event.placementID and event.isAdPlayable to set a flag to true
        --   Then check this flag later in your app and play an ad when it is true
    end
    if ( event.type == "adEnd" ) then
        -- adEnd is called when the end card is closed and and control is return to the hosting app

    end
    if ( event.type == "vungleSDKlog" ) then
        -- vungleSDKlog is called when logging event from SDK takes place
    end
end

カスタマイズ オプション

ads.show() メソッドにオプション ディクショナリーを渡して再生体験をカスタマイズすることができます。

キー

説明

alertTitle

alertText

alertContinue

placement

文字列

ユーザーがインセンティブ動画を途中で閉じようとしたときに表示するメッセージをカスタマイズできます。

注意: この設定は標準の Vungle 広告にのみ適用されます。Dynamic Template 広告の場合は、これと同じカスタマイズ オプションをダッシュボードで設定できます。

isAutoRotation

ブール値

Android では、true (デフォルト) の場合、デバイスの向きに合わせて動画広告が自動的に回転します。false の場合は、その広告の望ましい向きが使用されます。

iOS の場合は、下記の orientation キーを参照してください。

isSoundEnabled

ブール値

true (デフォルト) の場合、動画広告の再生時にデバイスのサウンド設定に従ってサウンドが有効になります。false の場合、ミュートの状態で動画の再生が始まります。ユーザーは再生中にサウンドをミュートまたはミュート解除できます。

immersive

ブール値

(Android の場合のみ) KitKat+ デバイスでイマーシブ モードを有効または無効にします。

large

ブール値

(iOS の場合のみ) ミュートや終了などの広告機能を制御するボタンを拡大して描画します。

orientation

整数

(iOS の場合のみ) 横向きの場合は 4、縦向きの場合は 0、自動回転の場合は 5 に設定します。


サンプル コード:

if (platform == "Android") then
    options = {
        placementId = placements[i],
        incentivized = isIncentivized,
        isAutoRotation = isAutoRotate,
        immersive = isImmersive,
        isSoundEnabled = not isMuted
    }
else
    options = {
        placementId = placements[i],
        incentivized = incentivized.isOn,
        large = large.isOn,
        isSoundEnabled = not muted.isOn
    }
end
if (not isempty(alertTitle.text)) then
            options.alertTitle = alertTitle.text
        end
        if (not isempty(alertText.text)) then
            options.alertText = alertText.text
        end
        if (not isempty(alertClose.text)) then
            options.alertClose = alertClose.text
        end
        if (not isempty(alertContinue.text)) then
            options.alertContinue = alertContinue.text
        end
        if (not isempty(placement.text)) then
            options.placement = placement.text
        end
end

ads.show(options)
他にご質問がございましたら、リクエストを送信してください

コメント