Google Mobile Ads SDK で MRAID v3 のベータ版サポートが開始されました。これは、MRAID v2 の既存のサポートをベースに構築されており、広告主様は MRAID v3 クリエイティブをアド マネージャーのパブリッシャーに配信できるようになります。このガイドでは、MRAID v3 仕様で不明確で解釈の余地があった MRAID の実装の詳細について説明します。対象読者は MRAID v3 クリエイティブ作成者です。
前提条件
パブリッシャーは、次の機能を実行している必要があります。
- MRAID v3 の場合: Google Play 開発者サービス 15.0.0 以降
- MRAID v2 の場合: Google Play 開発者サービス 7.8 以降
役立つプリマー
MRAID について詳しくは、IAB MRAID ページをご覧ください。MRAID v3 の定義ドキュメントもダウンロードできます。このドキュメントには、後述するすべてのパラメータの詳細が記載されています。MRAID v3 に関する IAB のブログ投稿もご覧ください。
MRAID v3(ベータ版)の実装の詳細
視認性 - exposureChange イベント
このイベントはサポートされています。非推奨の viewableChange
イベントではなく、新しい exposureChange
イベントのリスナーを使用することをおすすめします。メソッド mraid.isViewable()
も非推奨になりました。ただし、下位互換性を維持するために、これらの非推奨のメソッドは引き続きサポートされます。
exposureChange
イベント定義は、広告ビューが変更されるたびにディスパッチされます。SDK には、イベントの過剰生成を回避するためのポーリング メカニズムがあります。最初の状態は、広告がリスナーを登録した後に非同期で送信されます。コールバックには、0.0
と 100.0
の間の浮動小数点数である exposed_percentage
パラメータが含まれます。
使用例については、MRAID v3 仕様をご覧ください。
MRAID の検出と初期化、MRAID_ENV 属性
この SDK は、MRAID v3 仕様で定義されている初期化プロトコルに準拠しています。
MRAID_ENV
オブジェクトでは、SDK は IDFA
、limitAdTracking
、アプリ ID、COPPA(省略可)を送信しません。MRAID バージョン、SDK 名、SDK バージョンなど、必要なすべての変数を MRAID_ENV
オブジェクトに提供します。
聴取可能性の測定
音声が聞こえるかどうかと、音量が変更されたタイミングを特定するための新しいイベント(audioVolumeChange
)が導入されました。
audioVolumeChange
イベントには、volume_percentage
という 1 つのパラメータがあります。この値は、最大音量のオーディオ再生音量の割合です。0.0
~100.0
の範囲内の浮動小数点数(再生が許可されていない場合は 0.0
)、または音量を特定できない場合は null
です。
使用例については、MRAID v3 仕様をご覧ください。
mraid.getLocation()
mraid.getLocation()
はサポートされていないため、常に -1
を返します。
mraid.unload()
このメソッドはいつでも呼び出すことができます。SDK は、広告を閉じてリソースを割り当て解除し、ウェブビューを削除するか、別のドキュメントまたは新しい広告に置き換えることで応答します。
クリエイティブが unload()
を呼び出すと、ネイティブ レイヤはクリエイティブ タイプに応じて次のように応答します。
タイプ | unload() の動作 |
---|---|
バナー | 現在の広告と同じリクエスト パラメータを使用して、新しい広告リクエストを作成します。 |
インタースティシャル | インタースティシャルを閉じます。 |
VPAID(Video Player Ad Interface Definition)
Google Mobile Ads SDK は VPAID をサポートしていません。mraid.supports('vpaid')
は false を返します。
mraid.useCustomClose()
mraid.useCustomClose()
は、フォーマットとクリエイティブ タイプによってはサポートされていない場合があります。
MRAID v2 の実装の詳細
mraid.getVersion()
mraid.getVersion()
は、クリエイティブが読み込まれるまで 2.0
を返しません。mraid.getState()
が loading
を返す間、MRAID のバージョンを確認しない。
mraid.resize()
mraid.resize()
が呼び出されると、元のバナーはバナーのスクリーンショット画像に置き換えられます。サイズ変更された広告が元の広告スペースをカバーしていない場合、この問題は顕著になります。
サイズ変更された広告は、元のバナー フレームにも従いません。バナーがスクロール ビューに配置されている場合、サイズ変更された広告はバナーとともにスクロールされません。
mraid.setResizeProperties()
mraid.setResizeProperties()
の呼び出しには、必須プロパティの完全なリストを含める必要があります。サイズ変更プロパティが無効な場合、プロパティはデフォルトに戻り、有効なパラメータで mraid.setResizeProperties()
が再度呼び出されるまで、mraid.resize()
への以降の呼び出しはすべて失敗します。
mraid.getMaxSize()
mraid.getMaxSize()
は、サイズ変更された広告の最大サイズを決定する場合にのみ使用してください。展開可能な広告のサイズを決定するには、mraid.getScreenSize()
を使用します。
mraid.setOrientationProperties()
allowOrientationChange
プロパティを true
に設定して mraid.setOrientationProperties()
を呼び出す場合、forceOrientation
プロパティを設定しても何も実行されません。向きを強制するクリエイティブの場合は、allowOrientationChange
を false
に設定する必要があります。
mraid.isViewable()
ビューが、本来は表示される広告を覆っている場合でも、mraid.isViewable()
は true
を返します。アプリのコンテンツが、表示される広告を覆ってはいけません。
mraid.getCurrentPosition()
2 ピースのエキスパンド広告が展開状態の場合、最初のピースで mraid.getCurrentPosition()
を呼び出すと、画面のサイズが返されます。
mraid.storePicture()
アプリが mraid.storePicture()
をサポートするには、android.permission.WRITE_EXTERNAL_STORAGE
権限を含める必要があります。