Vungle SDK v. 6 スタート ガイド - Adobe AIR

Vungle Adobe Air Plugin を基本的なサンプル アプリケーションに統合するには、以下の手順に従います。ここに掲載されているソース コードは、GitHub の公開リポジトリから入手できます。

目次

はじめに

  • Vungle 拡張を使用するには、Adobe AIR SDK 4.0 以降が必要です。Flash Builder または Flash Professional で AIR SDK をアップデートする手順については、「その他の注記」セクションを参照してください。

  • Android を使用している場合、Vungle AIR 拡張を使用するには、JDK 6 または JDK 7 を現在の開発システムにインストールする必要があります。どちらをインストールするかは、使用している Flash のバージョンによって異なります。アプリケーションを実行するには、Android 3.0 (Honeycomb - API バージョン 11) 以降が必要になります。

  • ActionScript 3 クラスのドキュメントを参照してください。

  • サンプル アプリケーション クラス用の example/VungleExample.as を確認してください (Flash Professional をお使いで、ドキュメント クラスの使用方法がよくわからない場合は、この記事の最後にある「Animate または Flash Professional CS6 での VungleExample.as ドキュメント クラスの使用」を参照してください)。
  • ハードウェア アクセラレーション

    対象となる API のレベルが 14 以上に設定されている場合、ハードウェア アクセラレーション オプションがデフォルトで有効になります。Dynamic Template およびネイティブ Flex 広告を正しく表示するには、このオプションを有効にする必要があります。以下のように、プロジェクト内でこのオプションが「true」に設定されていることを確認してください。

    <application android:hardwareAccelerated="true" ...>

 

EU 一般データ保護規則 (GDPR) に準拠するための推奨事項

5 月 25 日より、欧州連合で一般データ保護規則 (GDPR) が施行されました。開発者は、以下に示すいずれかの方法で GDPR に準拠する必要があります。

  • 方法 1 (推奨): パブリッシャーが、ユーザー レベルで GDPR 同意プロセスを管理し、ユーザーによる選択内容を Vungle に伝える。これを行うには、開発者が独自のメカニズムを使用してユーザーから同意を取得し、Vungle API を使用して、ユーザーの同意状況の更新や照会を実行します。詳しくは、「GDPR に準拠するための推奨手順」を参照してください。

  • 方法 2: 広告を表示するための要件の処理を Vungle に委任する。この方法の場合、欧州のユーザーに広告を表示する前に、同意ダイアログが表示されます。それ以降は、ユーザーが広告の表示に同意したか拒否したかがシステムに記憶されることになります。

手順 1. 拡張ライブラリを含める

最初に、モバイル プロジェクト用の新しい AIR を作成し、ネイティブ拡張を追加します。2 つまたは 3 つの .ane ファイルを追加する必要があります。

  • com.vungle.extensions.Vungle.ane
  • com.vungle.extensions.android.AndroidSupportLib.ane
  • com.vungle.extensions.android.GooglePlayServices.ane (Android が対象となる場合は、Google Play Services ライブラリもプロジェクトに追加しなければならないことがあります。ただし、他の多くの拡張機能にこのライブラリがすでに含まれているため、Google Play Services ライブラリがすでに存在している場合があります)

Animate および Flash Professional CS6 以上の場合

  1. 新しい AIR for Android または AIR for iOS プロジェクトを作成します。
  2. [File] → [Publish Settings...] を選択します。
  3. [ActionScript Settings] の [Script] の横にあるレンチ アイコンを選択します。
  4. [Library Path] タブで [Browse for Native Extension (ANE) File] をクリックし、vungle.extensions.Vungle.ane ファイルを選択して [OK] をクリックします。
  5. [Player Settings] の [Target] の横にあるレンチ アイコンを選択します。
  6. Android が対象となる場合は、[Permissions] タブで、'INTERNET''WRITE_EXTERNAL_STORAGE''ACCESS_NETWORK_STATE' を有効にします。
  7. [Manually manage permissions and manifest additions for this app] オプションを選択して、[OK] をクリックします。
  8. 手順 1 ~ 7 を繰り返します。ただし、手順 4 で com.vungle.extensions.android.AndroidSupportLib.ane を選択します。
  9. 対象が Android で、上記のライブラリが存在しない場合は、もう一度手順 1 ~ 7 を繰り返します。今回は、手順 4 で com.vungle.extensions.android.GooglePlayServices.ane ファイルを選択します。

Flash Builder 4.6 以上の場合

  1. [Project Properties] で、[Actionscript Build Path][Native Extensions] を選択します。
  2. [Add ANE...] を選択して vungle.extensions.Vungle.ane ファイルに移動します。
  3. [Actionscript Build Packaging] → [Google Android] を選択します。
  4. [Native Extensions] タブで、拡張の横にある [Package] オプションを選択します。
  5. 手順 1 ~ 2 を繰り返します。ただし、手順 2 で com.vungle.extensions.android.AndroidSupportLib.ane を選択します。
  6. iOS をターゲットにしている場合は、手順 3 と手順 4 を [Apple iOS] ターゲットに対して繰り返します。

手順 2. アプリケーション記述子を更新する

Vungle を動作させるには、アプリケーション用のアプリケーション XML ファイルに変更を加える必要があります。IDE によって作成された XML ファイルに以下の変更を加えて修正します。

注意: Flash Professional を使用している場合は、ライブラリを含めることに関する前出の「Animate および Flash Professional CS6 以上の場合」の手順に従っていることを確認してください。そうでない場合、加えた変更が Flash によって取り消されることがあります)。

  1. アプリケーション記述子ファイルで、以下のように AIR SDK を 4.0 以降に設定します。
    <application xmlns="http://ns.adobe.com/air/application/4.0">
  2. 拡張へのリンクを記述子に含めます。
    <extensions>
    <extensionID>com.vungle.extensions.Vungle</extensionID>
    <extensionID>com.vungle.extensions.android.AndroidSupportLib</extensionID>
    </extensions>
  3. Android をターゲットにしている場合は、Google Play Services 拡張を含める必要が生じる可能性があります。拡張 ID もここで追加してください。
    <extensions>
    <extensionID>com.vungle.extensions.Vungle</extensionID>
    <extensionID>com.vungle.extensions.android.AndroidSupportLib</extensionID>
    <extensionID>com.vungle.extensions.android.GooglePlayServices</extensionID>
    </extensions>

Android をターゲットにした AIR アプリケーションの場合

Android をターゲットにしている場合は、android XML 要素の Android Manifest Additions を次のように更新します。

  • include the INTERNET, WRITE_EXTERNAL_STORAGE, and ACCESS_NETWORK_STATE permissions
  • add VideoFullScreenAdActivity,MraidFullScreenAdActivity, and MraidFullScreenAdActivity activity definitions
  • add the google-play-services version metadata tag:
     <android>

    <manifestAdditions><![CDATA[

    <manifest android:installLocation="auto">

    <!--Required Permissions-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!--Optional Permissions-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:networkSecurityConfig="@xml/network_security_config" >
    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    <!-- Google Play Services -->
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
    <!-- Vungle -->
    <activity
    android:name="com.vungle.warren.ui.VungleActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
    android:launchMode="singleTop"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <!-- android-job -->
    <service
    android:name="com.evernote.android.job.v21.PlatformJobService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    <service
    android:name="com.evernote.android.job.v14.PlatformAlarmService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    <service
    android:name="com.evernote.android.job.v14.PlatformAlarmServiceExact"
    android:exported="false" />
    <receiver
    android:name="com.evernote.android.job.v14.PlatformAlarmReceiver"
    android:exported="false" >
    <intent-filter>
    <!-- Keep the filter for legacy intents -->
    <action android:name="com.evernote.android.job.v14.RUN_JOB" />
    <action android:name="net.vrallev.android.job.v14.RUN_JOB" />
    </intent-filter>
    </receiver>
    <receiver
    android:name="com.evernote.android.job.JobBootReceiver"
    android:exported="false" >
    <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <action android:name="android.intent.action.QUICKBOOT_POWERON" />
    <action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
    <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
    </receiver>
    <service
    android:name="com.evernote.android.job.gcm.PlatformGcmService"
    android:enabled="false"
    android:exported="true"
    android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" >
    <intent-filter>
    <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
    </intent-filter>
    </service>
    <service
    android:name="com.evernote.android.job.JobRescheduleService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    </application>

    </manifest>
    ]]></manifestAdditions>

     </android>

手順 3. Vungle API を統合する

Vungle API は、わずか数行の ActionScript でアプリケーションに追加できます。

Vungle 拡張を初期化する

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

アプリケーションを起動するときに API を初期化します。

  • ActionScript を使用している場合は、ドキュメント クラスのコントラクターでこれを行います。
  • Flex を使用している場合は、メイン クラスの initialize() イベントでこれを呼び出します。
  • Flash でタイムライン コードを使用している場合は、フレーム 1 でこれを行います。
  1. 以下のように指定して API クラスをインポートします。
    import com.vungle.extensions.*; import com.vungle.extensions.events.*;
  2. create() メソッドを呼び出し、アプリケーション ID の文字列と、Vungle ダッシュボードのアプリケーションの広告配置参照 ID を格納する配列を、このメソッドに渡します。これにより、API が初期化されます。同じプロジェクトで、iOS と Android の両方を対象とする場合は、それぞれのプラットフォームごとに、別のアプリケーション ID の文字列と、広告配置参照 ID を格納する配列を create() メソッドに対して指定します。

    作成プロセスの実行中にエラーがスローされる場合があるため (たとえば、拡張機能をデスクトップ上で実行すると、エラーがスローされます)、以下のように、Vungle.create() メソッドの呼び出し文を「try - catch」構文で囲んでください。
    try { // initialize with your app id Vungle.create("your_vungle_id", [“placement1”, “placement2”, “placement3”]); } catch (error:Error) { // could not create extension. Are you running on something besides iOS/Android? }

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

広告配置用の広告を再生するには、その広告配置用に広告を読み込む必要があります。自動キャッシュ形式の広告配置の場合、このメソッドを呼び出す必要はありません。SDK は、自動キャッシュ形式の広告配置の読み込みを内部で試行します。

Vungle.vungle.loadAd(“non_auto_cached_placement”);

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

広告の再生準備ができると、イベント リスナーを通じて通知が表示されます。広告配置が再生可能になったら、広告を再生することができます。

If (Vungle.vungle.isAdAvailable(“placement_id”)) { Vungle.vungle.playAd(“placement_id”); }

イベント リスナーを追加する

Vungle 拡張では、VungleEvent.AD_PLAYABLEVungleEvent.AD_STARTEDVungleEvent.AD_FINISHEDVungleEvent.AD_FAILEDVungleEvent.AD_INITVungleEvent.AD_LOG の 6 つのイベントがディスパッチされます。

  1. 再生の準備が完了すると、AD_PLAYABLE がディスパッチされます。
    Vungle.vungle.addEventListener(VungleEvent.AD_PLAYABLE, onAdPlayable); function onAdPlayable(e:VungleEvent):void { if (e.isAdPlayable) { trace(“ad is playable for placement: “ + e.placement); Vungle.vungle.playAd(e.placement); } else { trace(“ad not playable for placement: “ + e.placement); } }
  2. 広告が表示されると AD_STARTED イベントがディスパッチされ、広告が終了すると AD_FINISHED イベントがディスパッチされます。
    Vungle.vungle.addEventListener(VungleEvent.AD_STARTED, onAdStarted); Vungle.vungle.addEventListener(VungleEvent.AD_FINISHED, onAdFinished); function onAdStarted(e:VungleEvent):void { trace("ad displayed for placement: " + e.placement); } function onAdFinished(e:VungleEvent):void { trace("ad dismissed for placement: “ + e.placement + “, CTA = " + e.wasCallToActionClicked); if (e.wasSuccessfulView) { trace("counts a completed view - present reward."); } }
  3. Vungle SDK の初期化が完了すると、AD_INIT がディスパッチされます。
    function onAdInit(e:VungleEvent):void { trace(“Vungle SDK is initialized: “ + e.isInitialized”); }
  4. Vungle SDK によってログ メッセージが送信されると、AD_LOG がディスパッチされます。これを使用して、デバッグを行うことができます。ロギング機能が実装されるのは iOS 用の Vungle SDK だけであるため、このイベントはプラットフォームに依存します。
    Vungle.vungle.setLoggingEnabled(true); Vungle.vungle.addEventListener(VungleEvent.AD_LOG, onAdLog); private function onAdLog(e:VungleEvent):void { log("ad log: " + e.message); }

その他のオプション

これまでに説明したように、playAd() メソッドを呼び出すときに、設定オプションを指定してオブジェクトを渡すことができます。

注意: 報酬対象の広告は、インセンティブ広告として参照されることがあります。どちらの場合も、同等な広告のことを示しています。SDK のコードと Reporting API では、「インセンティブ」を使用します。

VungleAdConfig で使用できるオプションを以下に示します。

オプション

説明

orientation

VungleOrientation

Android

VungleOrientation.AUTO_ROTATE

VungleOrientation.ANDROID_MATCH_VIDEO

iOS

VungleOrientation.IOS_LANDSCAPE

VungleOrientation.IOS_PORTRAIT

soundEnabled

ブール値

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

backButtonImmediatelyEnabled

ブール値

(Android の場合のみ) true に設定すると、ユーザーは [戻る] ボタンを使用してすぐに広告を終了できます。false (デフォルト) の場合、画面に [閉じる] ボタンが表示されるまで、ユーザーは [戻る] ボタンを使用して広告を終了することができません。

immersiveMode

ブール値

(Android の場合のみ) true に設定すると、KitKat+ デバイスでイマーシブ モードが有効になります。デフォルトで false に設定されています。

incentivizedUserId

文字列

アプリケーションに渡す一意のユーザー ID を設定して、このユーザーがインセンティブ広告の視聴による報酬の対象となることを確認できます。

flexViewCloseTimeInSec

整数

指定された秒数が経過したときに Flex View 広告を自動的に終了する場合は、このオプションを使用します。
このオプションが機能するのは、Flex View 広告の場合だけです。

incentivizedCancelDialogTitle

文字列

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

 

注意: このオプションは標準の Vungle 広告にのみ適用され、Dynamic Template 広告には適用されません。Dynamic Template 広告に適用されるオプションはダッシュボードで指定でき、ダッシュボードにも同じオプションがあります。

incentivizedCancelDialogBodyText

incentivizedCancelDialogCloseButtonText

incentivizedCancelDialogKeepWatchingButtonText

サンプル コード:

var adConfig:VungleAdConfig = new VungleAdConfig(); adConfig.orientation = VungleOrientation.ANDROID_MATCH_VIDEO | VungleOrientation.IOS_LANDSCAPE; adConfig.soundEnabled = false; android: { adConfig.backButtonImmediatelyEnabled = true; adConfig.immersiveMode = true; }; adConfig.incentivizedUserId = "vungle_test_user"; adConfig.incentivizedCancelDialogBodyText = "body_text"; adConfig.incentivizedCancelDialogCloseButtonText = "close_button_text"; adConfig.incentivizedCancelDialogKeepWatchingButtonText = "continue_button_text"; adConfig.incentivizedCancelDialogTitle = "title_text"; Vungle.vungle.playAd(placement, adConfig);

グローバル デフォルト

オプションのデフォルト値を設定するには、グローバル構成オブジェクトを使用します。

// set any configuration options you like VungleAdConfig.globalConfig.orientation = VungleOrientation.ANDROID_MATCH_VIDEO; VungleAdConfig.globalConfig.soundEnabled = false;

新しい VungleAdConfig オブジェクトはすべて、デフォルトで設定されたこれらの値で作成されます。グローバル構成はオプションなしの playAd() でも使用されます。

注意: アプリケーションがテスト モードのときは、広告されたアプリケーションをダウンロードすることはできません。さらに、ダッシュボード で IMP 数は報告されません。テスト広告の用途は、SDK が正しく組み込まれたことを確認することに限られているためです。この機能は、アプリケーションをアクティブ モードで本稼働させると使用可能になります。

Flex View 広告

プログラム経由で Flex View 広告を終了するには、広告の開始後に closeFlexViewAd 関数を呼び出します。以下に例を示します。

Vungle.vungle.closeFlexViewAd(placement);

この関数が機能するのは、iOS 用 Vungle SDK の Flex View 広告の場合だけです。

 

その他の注記

EU 一般データ保護規則 (GDPR) に準拠するための推奨手順

EU 一般データ保護規則 (GDPR) に準拠するための推奨事項」セクションの「方法 1」で説明したように、Vungle API を使用して、ユーザーの同意状況の更新や照会を行うことをお勧めします。そのためには、以下の関数を使用します。

同意状況を更新するための関数:

Vungle.vungle.updateConsentStatus(VungleConsent.ENUMSTATE);

考えられる同意状況:

Accepted - VungleConsent.OPTED_IN // 1

Denied - VungleConsent.OPTED_OUT // 0

 

現在の同意状況を取得するための関数:

//Returns a VungleConsent enum

var status:int = Vungle.vungle.getConsentStatus();

 

Animate または Flash Professional CS6 での VungleExample.as ドキュメント クラスの使用

  1. まず、統合に関するこの記事の手順 1 ~ 3 に従って、アプリケーションの作成と拡張の追加を行います。
  2. .fla と同じフォルダーにコピー アンド ペーストします。その内容をタイムラインにコピー アンド ペーストしないでください。
  3. 行 20 でアプリケーション ID と広告配置 ID をご自分の Vungle ID に変更します。
  4. Flash プロパティで、[Document Class] に「VungleExample」と (鍵括弧を付けずに) 入力して、[OK] をクリックします。
  5. アプリケーションを構築してインストールします。

Flash Professional CS6 での新しいバージョンの AIR SDK (4.0 以上) のインストール

このリンクを利用して最新版の AIR SDK を見つけます。AIR 4.0 以上が既にインストールされている場合は、この手順をスキップしてかまいません。そうでない場合は、以下の手順に従ってください。

  1. AIR 4.0 以降の SDK パッケージをハード ドライブ上の場所に解凍します。
  2. Flash Professional CS6 を起動します。
  3. [Help] → [Manage AIR SDK...] を選択します。
  4. + (プラス) ボタンを押して、AIR SDK を解凍した場所を指定します。
  5. [OK] をクリックします。
  6. [File] → [Publish Settings] を選択します。
  7. 最新版の iOS 向け AIR SDK を [Target] ドロップダウン メニューから選択します。

Flash Builder での新しいバージョンの AIR SDK (4.0 以上) のインストール

このリンクを利用して最新版の AIR SDK を見つけます。AIR 4.0 以上が既にインストールされている場合は、この手順をスキップしてかまいません。Adobe から発表されている最新版の Flash Builder AIR SDK のアップデート手順に従うこともできます。

「Adobe Animate の入力が無効」エラーの解決

次の図に示すようなエラーが表示される場合は、この記事を参照してください。

image2.png

この記事は役に立ちましたか?

Questions?

Need further assistance, feel free to reach out to us, we’re here to help!