Google Mobile Ads SDK で MRAID v3 のベータ版がサポートされるようになりました。これは MRAID v2 の既存のサポートをベースに構築されたもので、広告主は MRAID v3 クリエイティブをアド マネージャーのパブリッシャーに配信できるようになります。このガイドでは、MRAID 実装の詳細は MRAID v3 の仕様で規定されている不明確であり、適切に解釈できるよう記述されています。対象読者は MRAID v3 クリエイティブ作成者です。
前提条件
パブリッシャーが以下を実行している必要があります。
- Google Mobile Ads SDK for iOS 7.30.0 以降(MRAID v3)
- Google Mobile Ads SDK for iOS 7.4.0 以降(MRAID v2)
参考情報
MRAID について詳しくは、IAB の MRAID のページをご覧ください。また、以下で説明するすべてのパラメータの詳細が記載された MRAID v3 の定義ドキュメントと、MRAID v3 に関する IAB のブログ投稿もダウンロードできます。
MRAID v3(ベータ版)の実装の詳細
視認性 -ExposureChange イベント
このイベントはサポートされているため、新しい exposureChange
イベントには非推奨の viewableChange
イベントではなく、リスナーを使用することをおすすめします。メソッド mraid.isViewable()
も非推奨になりました。ただし、下位互換性を維持するため、これらの非推奨のメソッドは引き続きサポートされます。
exposureChange
イベント定義は、広告ビューが変更されるたびにディスパッチされます。SDK には、大量のイベントが生成されないようにするポーリング メカニズムがあります。初期状態は、広告がリスナーを登録した後に非同期で送信されます。コールバックには、0.0
~100.0
の浮動小数点数である exposed_percentage
パラメータが含まれています。
使用例については、MRAID v3 仕様をご覧ください。
MRAID の検出と初期化、MRAID_ENV 属性
SDK は MRAID v3 仕様で定義されている初期化プロトコルに準拠しています。
SDK は MRAID_ENV
オブジェクトで IDFA
、limitAdTracking
、アプリ ID、COPPA(省略可)を送信しません。MRAID バージョン、SDK 名、SDK バージョンなど、MRAID_ENV
オブジェクトに必要なすべての変数を提供します。
可聴性の測定
音声が聞こえるか、音量が変化するかを識別するために、新しいイベント(audioVolumeChange
)が導入されています。
audioVolumeChange
イベントには volume_percentage
という単一のパラメータがあります。値は、音声再生の最大音量に対する割合です。0.0
~100.0
(再生が許可されていない場合は 0.0
)の間の浮動小数点数です。音量を特定できない場合は null
になります。
使用例については、MRAID v3 仕様をご覧ください。
mraid.getLocation()
mraid.getLocation()
はサポートされていないため、常に -1
を返します。
mraid.unload()
このメソッドはいつでも呼び出すことができ、SDK は広告を閉じてリソースの割り当てを解除してから、WebView を削除するか、別のドキュメントまたは新しい広告に置き換えることで対応します。
クリエイティブが 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.supports()
SDK バージョン 7.11.0 以降では、mraid.supports("storePicture")
と mraid.supports("calendar")
は常に false
を返します。MRAID v2 の仕様に基づき、クリエイティブではこれらのメソッドが利用できないケースにも対応できる必要があります。
mraid.storePicture()
MRAID クリエイティブが mraid.storePicture()
を呼び出したとき、アプリは画像を保存する権限を自動的にリクエストします。