將 Unity 廣告與中介服務整合

本指南說明如何使用 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 需求

設定廣告單元的中介服務設定

Android

如需操作說明,請參閱 Android 指南中的步驟 2。

iOS

如需操作說明,請參閱 iOS 指南中的步驟 2。

將 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 中導入隱私權設定

根據 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 版進行建構及測試。