Google Mobile Ads SDK では、MRAID v2 の既存のサポートに加えて、MRAID v3 のベータ版サポートが追加されました。これにより、広告主は MRAID v3 クリエイティブをアド マネージャーのパブリッシャーに配信できるようになりました。このガイドでは、MRAID v3 仕様で不明確で解釈の余地があった MRAID の実装の詳細を明確にしています。対象読者は、MRAID v3 クリエイティブの作成者です。
前提条件
パブリッシャーは、次のいずれかを実行している必要があります。
役立つ入門書
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_ENV オブジェクトに必要なすべての変数(MRAID バージョン、SDK 名、SDK バージョンなど)が提供されます。
聴取可能性の測定
音声が聞こえるかどうか、音量が変更されたタイミングを識別するために、新しいイベント(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 権限を含める必要があります。