Google Mobile Ads SDK で、MRAID v3 のベータ版のサポートが開始されました。MRAID v2 の既存のサポートを基盤として構築されており、広告主は MRAID v3 クリエイティブをアド マネージャーのパブリッシャーに配信できます。このガイドでは、MRAID 実装の詳細について説明します。これらの詳細は、 MRAID v3 仕様で不明確で解釈の余地がありました。 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
には、イベントが過剰に生成されないようにするポーリング メカニズムがあります。
広告がリスナーを登録すると、初期状態が非同期で送信されます。
コールバックには、exposed_percentage パラメータが含まれます。これは、0.0 ~ 100.0 の浮動小数点数です。
使用例については、 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、音量を特定できない場合は null、それ以外の場合は 0.0~100.0 の浮動小数点数です。
使用例については、 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
権限を含める必要があります。