Google Mobile Ads SDK 現在已推出 MRAID 第 3 版的 Beta 版支援功能,以現有的 MRAID 第 2 版支援功能為基礎,讓廣告主向 Ad Manager 發布商放送 MRAID 第 3 版廣告素材。本指南將釐清 MRAID v3 規格中不明確且可解讀的部分,並提供 MRAID 實作詳細資料,供 MRAID v3 廣告素材作者參考。
必要條件
發布商必須執行下列作業:
- 如要使用 MRAID v3,iOS 裝置必須搭載 Google Mobile Ads SDK 7.30.0 以上版本
- 如要使用 MRAID v2,iOS 裝置必須搭載 Google Mobile Ads SDK 7.4.0 以上版本
實用入門資訊
如果您不熟悉 MRAID,請前往 IAB MRAID 頁面瞭解詳情。您也可以下載 MRAID v3 定義文件,當中詳細說明瞭下文提及的所有參數,以及 IAB 關於 MRAID v3 的網誌文章。
MRAID 第 3 版 (Beta 版) 實作詳細資料
可視度 - exposureChange 事件
系統支援這項事件,建議您使用新版 exposureChange
事件的監聽器,而非已淘汰的 viewableChange
事件。方法 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_ENV
物件中的所有必要變數,包括 MRAID 版本、SDK 名稱和 SDK 版本。
有聲播放率評估
我們導入了新事件 (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 (影片播放器廣告介面定義)
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.resize()
的呼叫都會失敗,直到再次使用有效參數呼叫 mraid.setResizeProperties()
為止。
mraid.getMaxSize()
mraid.getMaxSize()
僅用於判斷調整大小後的廣告最大尺寸。如要判斷可展開式廣告的大小,請使用 mraid.getScreenSize()
。
mraid.setOrientationProperties()
使用設為 true
的 allowOrientationChange
屬性呼叫 mraid.setOrientationProperties()
時,設定 forceOrientation
屬性不會有任何作用。如要強制設定方向,廣告素材應將 allowOrientationChange
設為 false
。
mraid.isViewable()
如果檢視畫面遮蓋了原本可見的廣告,mraid.isViewable()
仍會傳回 true
。應用程式內容不得遮蓋可見廣告。
mraid.getCurrentPosition()
當兩件式可展開式廣告處於展開狀態時,對第一件式廣告呼叫 mraid.getCurrentPosition()
會傳回螢幕大小。
mraid.supports()
從 SDK 7.11.0 版開始,mraid.supports("storePicture")
和 mraid.supports("calendar")
一律會傳回 false
。根據 MRAID 第 2 版規格,廣告素材應能處理這些方法無法使用的情況。
mraid.storePicture()
當 MRAID 廣告素材呼叫 mraid.storePicture()
時,應用程式會自動要求儲存圖片的權限。