本指南說明如何使用 Google Mobile Ads SDK 透過中介服務載入並顯示 Unity Ads 廣告,並涵蓋瀑布流整合。這篇文章將說明如何將 Unity Ads 新增至廣告單元的中介服務設定,以及如何將 Unity Ads SDK 和轉接程式整合至 Flutter 應用程式。
支援的整合和廣告格式
Unity Ads 適用的 AdMob 中介服務轉接程式具有下列功能:
整合 | |
---|---|
出價 | 1 |
瀑布 | |
格式 | |
橫幅廣告 | |
插頁式 | |
已獲得獎勵 |
1 出價整合功能處於封閉式 Beta 版,請與客戶經理聯絡,要求取得存取權。
需求條件
- 最新版 Google Mobile Ads SDK
- Flutter 3.7.0 以上版本
- [出價]:如要將所有支援的廣告格式整合至出價,請使用 Unity Ads 3.11.1 以上版本的 Google 行動廣告中介服務外掛程式 (建議使用最新版本)
- 如何在 Android 上部署
- Android API 級別 21 以上
- 如何在 iOS 上部署應用程式
- iOS 部署目標為 12.0 以上版本
- 使用 Google Mobile Ads SDK 設定的正常運作 Flutter 專案。詳情請參閱「開始使用」一文。
- 完成中介服務入門指南
步驟 1:在 Unity Ads UI 中設定設定
註冊或登入 Unity Ads。
建立專案
在 Unity Ads 資訊主頁中,前往「Projects」,然後按一下「Create Project」。
填寫表單,然後按一下「Create Project」新增專案。
依序前往「營利」 >「開始使用」,然後點選「開始使用」。
在「Project Setup」互動視窗中,選取「I plan to use Mediation」,並在「Mediation Partner」中選取「Google AdMob」,然後按一下「Next」。
選取廣告設定,然後點選「下一步」。
填寫表單,然後點選「新增專案」。
記下遊戲 ID。
建立廣告單元
依序前往「營利」 >「廣告單元」,然後點選「新增廣告單元」。
輸入廣告單元名稱,然後選取平台和廣告格式。
Android
iOS
最後,按一下「建立」即可儲存廣告單元。
新增刊登位置
出價
請與 Google 客戶經理聯絡,建立出價刊登位置。
瀑布
建立專案後,請依序前往「營利」 >「刊登位置」。如要建立新的刊登位置,請按一下廣告單元的「新增刊登位置」。
填寫必要詳細資料,然後按一下「新增刊登位置」。
記下刊登位置 ID。
Android
iOS
找出 Unity Ads Reporting API 金鑰
出價
出價整合不必執行這個步驟。
瀑布
除了 遊戲 ID 和 刊登位置 ID 之外,您還需要 Unity Ads API 金鑰和 機構組織核心 ID,才能設定 AdMob 廣告單元 ID。
依序前往「營利」 >「設定」 >「API 管理」,並記下「營利統計資料 API 存取金鑰」。
接著,依序前往「營利」 >「機構設定」,然後記下「機構核心 ID」。
開啟測試模式
您可以透過 Unity Ads 資訊主頁啟用測試模式。在專案設定下方,選取「Testing」分頁。
您可以為應用程式強制啟用測試模式,方法是點選各個平台的「編輯」按鈕,勾選「覆寫用戶端測試模式」,然後選取「為所有裝置強制啟用測試模式 (即使用測試廣告)」。
Android
iOS
或者,您也可以按一下「新增測試裝置」按鈕,為特定裝置啟用測試模式。
填寫表單,然後按一下「儲存」。
步驟 2:在 AdMob UI 中設定 Unity Ads 需求
設定廣告單元的中介服務設定
將 Unity Ads 新增至 GDPR 和美國州級法規廣告合作夥伴清單
請按照GDPR 設定和美國州級法規設定中的步驟,將 Unity Ads 新增至 AdMob 使用者介面中的 GDPR 和美國州級法規廣告合作夥伴名單。
步驟 3:匯入 Unity Ads SDK 和轉接程式
透過 pub.dev 整合
在套件的 pubspec.yaml
檔案中,新增下列依附元件,其中包含 Unity Ads SDK 和轉接器的最新版本:
dependencies:
gma_mediation_unity: ^1.0.0
手動整合
請下載最新版的 Google 行動廣告中介服務 Unity Ads 外掛程式,解壓縮下載的檔案,然後將解壓縮的插件資料夾 (及其內容) 新增至您的 Flutter 專案。接著,請新增下列依附元件,在 pubspec.yaml
檔案中參照外掛程式:
dependencies:
gma_mediation_unity:
path: path/to/local/package
步驟 4:在 Unity Ads SDK 中導入隱私權設定
歐盟同意聲明和 GDPR
根據 Google 的《歐盟地區使用者同意授權政策》,您必須確保向歐洲經濟區 (EEA) 境內使用者揭露特定資訊,並徵得使用者同意聲明,才能使用裝置 ID 和個人資料。本政策是配合《歐盟電子通訊隱私指令》和《一般資料保護規則》(GDPR) 的法規而制定。在徵求同意聲明時,您必須指出中介服務鏈中可能會收集、接收或使用個人資料的每個廣告聯播網,並提供每個聯播網的使用方式相關資訊。Google 目前無法自動將使用者的同意聲明選項傳送給這類網路。
Unity Ads 適用的 Google 行動廣告中介插件包含 GmaMediationUnity.setGDPRConsent()
方法。以下程式碼範例說明如何將同意聲明資訊傳遞至 Unity Ads SDK。如果您選擇呼叫這個方法,建議您在透過 Google Mobile Ads SDK 要求廣告之前先呼叫這個方法。
import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...
GmaMediationUnity.setGDPRConsent(true);
如需詳情和可在各個方法中提供的值,請參閱 Unity Ads 的隱私權同意聲明和資料 API 和遵循 GDPR 指南。
美國州級隱私權法律
美國州級隱私權法律 規定使用者有權選擇拒絕「販售」自己的「個人資訊」(如該法案對「販售」一詞的定義),且「賣方」必須在首頁上提供顯眼的「不要販售我的個人資訊」連結,供使用者選擇拒絕。美國州級隱私權法律遵循指南提供啟用 Google 廣告放送服務的受限資料處理功能,但 Google 無法將這項設定套用至中介鏈中的每個廣告聯播網。因此,您必須在中介服務鏈中找出可能參與個人資訊銷售的廣告聯播網,並按照各廣告聯播網的指示確保遵守規定。
Unity Ads 適用的 Google 行動廣告中介插件包含 GmaMediationUnity.setCCPAConsent()
方法。以下程式碼範例說明如何將同意聲明資訊傳遞至 Unity Ads SDK。如果您選擇呼叫這個方法,建議您在透過 Google Mobile Ads SDK 要求廣告之前先呼叫這個方法。
import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...
GmaMediationUnity.setCCPAConsent(true);
步驟 5:新增必要程式碼
Android
Unity Ads Android 整合作業不需要額外程式碼。
iOS
SKAdNetwork 整合
請按照 Unity Ads 說明文件,將 SKAdNetwork 識別碼新增至專案的 Info.plist
檔案。
步驟 6:測試導入作業
啟用測試廣告
請務必為 AdMob 註冊測試裝置,並在 Unity Ads UI 中啟用測試模式。
驗證測試廣告
如要確認您收到 Unity Ads 的測試廣告,請使用 Unity Ads (出價) 和 Unity Ads (刊登序列) 廣告來源,在廣告檢查器中啟用單一廣告來源測試。
錯誤代碼
如果轉接器無法從 Unity Ads 接收廣告,發布商可以使用下列類別中的 ResponseInfo
,檢查廣告回應的基礎錯誤:
Android
com.google.ads.mediation.unity.UnityAdapter
com.google.ads.mediation.unity.UnityMediationAdapter
iOS
GADMAdapterUnity
GADMediationAdapterUnity
以下是廣告載入失敗時,UnityAds 轉接器擲回的程式碼和隨附訊息:
Android
錯誤代碼 | 原因 |
---|---|
0-10 | UnityAds SDK 傳回錯誤。詳情請參閱「code」。 |
101 | Admob 使用者介面中設定的 UnityAds 伺服器參數遺失/無效。 |
102 | UnityAds 傳回的刊登位置處於 NO_FILL 狀態。 |
103 | UnityAds 傳回的刊登位置處於停用狀態。 |
104 | UnityAds 嘗試顯示含有空值內容的廣告。 |
105 | 用於初始化、載入和/或顯示 Unity Ads 廣告的結構定義並非活動例項。 |
106 | UnityAds 嘗試顯示尚未準備好的廣告。 |
107 | 裝置不支援 UnityAds。 |
108 | UnityAds 一次只能為每個刊登位置載入 1 則廣告。 |
109 | UnityAds 以 ERROR 狀態完成。 |
200-204 | UnityAds Banner 發生特定錯誤。詳情請參閱「code」。 |
iOS
0-9 | UnityAds SDK 傳回錯誤。詳情請參閱 Unity 的說明文件。 |
101 | Admob 使用者介面中設定的 UnityAds 伺服器參數遺失/無效。 |
102 | 裝置不支援 UnityAds。 |
103 | UnityAds 完成顯示作業,錯誤狀態為 kUnityAdsFinishStateError。 |
104 | 呼叫初始化器後,Unity 廣告物件會變成空值。 |
105 | 廣告尚未就緒,因此無法顯示 Unity Ads。 |
106 | UnityAds 呼叫了含有刊登位置狀態 kUnityAdsPlacementStateNoFill 的刊登位置變更回呼。 |
107 | UnityAds 呼叫了含有刊登位置狀態 kUnityAdsPlacementStateDisabled 的刊登位置變更回呼。 |
108 | 這個刊登位置已載入廣告。UnityAds SDK 不支援為同一個刊登位置載入多個廣告。 |
Unity Ads Flutter Mediation Adapter 變更記錄
1.1.0 版本
- 已確認與 Unity Android 轉接器 4.12.3.0 相容
- 已確認與 Unity iOS 轉接器 4.12.3.1 版的相容性
- 使用 Google 行動廣告 Flutter 外掛程式 5.2.0 版進行建構及測試。
1.0.0 版本
- 第 1 版。
- 已確認與 Unity Android 轉接器 4.10.0.0 的相容性
- 已確認與 Unity iOS 轉接器 4.10.0.0 相容
- 使用 Google 行動廣告 Flutter 外掛程式 5.0.0 版進行建構及測試。