將 Unity 廣告與中介服務整合

本指南說明如何使用 Google Mobile Ads SDK,透過中介服務載入及顯示 Unity Ads 廣告,也會介紹刊登序列整合作業,內容涵蓋如何將 Unity Ads 加到廣告單元的中介服務設定,以及如何將 Unity Ads SDK 和轉接程式整合至 Flutter 應用程式。

支援的整合功能和廣告格式

Unity Ads 適用的 Ad Manager 中介服務轉接程式具備下列功能:

整合
出價  1
瀑布
格式
橫幅廣告
插頁式
已獲得獎勵

1 出價整合功能目前為公開測試版。

需求條件

  • 最新版 Google Mobile Ads SDK
  • Flutter 3.7.0 以上版本
  • [出價]:如要整合出價功能支援的所有廣告格式,請使用 Unity Ads 1.1.0 以上版本的 Google Mobile Ads 中介服務外掛程式 (建議使用最新版本)
  • 如要在 Android 上部署
    • Android API 級別 23 以上版本
  • 如要在 iOS 上部署
    • 12.0 以上版本的 iOS 部署目標
  • 已設定 Google Mobile Ads SDK 的有效 Flutter 專案。詳情請參閱「開始使用」一文。
  • 完成中介服務入門指南的步驟

步驟 1:在 Unity Ads 使用者介面中設定

註冊登入 Unity Ads。

建立專案

Unity Ads 資訊主頁中,前往「Projects」,然後按一下「New」

填寫表單,然後按一下「建立」即可新增專案。

前往「Unity Ads Monetization」,然後點按「開始使用」

在「New Project」模式中,選取「I will use Mediation」和「Google AdMob」做為「Mediation Partner」,然後按一下「Next」

選取廣告設定選項,然後按一下「下一步」

選取刊登位置設定,然後按一下「下一步」

出價

瀑布

填寫表單,然後按一下「新增專案」

記下「遊戲 ID」

建立廣告單元和刊登位置

依序前往「Unity Ads Monetization」 >「Placements」,然後選取專案並點選「Add ad unit」

輸入廣告單元名稱,然後選取平台廣告格式

Android

iOS

依序前往「營利」 >「刊登位置」,然後點選「新增廣告單元」

輸入廣告單元名稱,然後選取平台廣告格式

Android

iOS

在「設定」中選取「Waterfall」。在「刊登位置」下方,輸入「刊登位置名稱」、「地理位置標記」和「目標」。

記下「刊登位置 ID」

最後,按一下「新增廣告單元」,儲存廣告單元和刊登位置。

找出 Unity Ads Reporting API 金鑰

出價

整合出價功能不需要執行這個步驟。

瀑布

依序前往「Unity Ads Monetization」 >「API management」,並記下「Monetization Stats API Access」中的「API Key」

接著,依序前往「Unity Ads Monetization」 >「Organization Settings」, 並記下「Organization core ID」

更新 app-ads.txt

Authorized Sellers for Apps (app-ads.txt) 是互動廣告協會科技實驗室 (IAB Tech Lab) 主持的一項計畫,旨在確保您的應用程式廣告空間僅於您授權的管道出售。為避免廣告收益大幅減少,請務必導入 app-ads.txt 檔案。 如果尚未建立,請為 Ad Manager 建立 app-ads.txt 檔案

如要為 Unity Ads 導入 app-ads.txt,請參閱「首次設定 app-ads.txt」一文。

開啟測試模式

您可以在 Unity Ads 資訊主頁中啟用測試模式。依序前往「Unity Ads Monetization」>「Testing」

如要強制為應用程式啟用測試模式,請點選各個平台的編輯按鈕,啟用「Override client test mode」,然後選取「Force test mode ON (i.e. use test ads) for all devices」

Android

iOS

或者,您也可以按一下「新增測試裝置」,為特定裝置啟用測試模式。

輸入測試裝置詳細資料,然後按一下「儲存」

步驟 2:在 Ad Manager 使用者介面設定 Unity Ads 需求

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

Android

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

iOS

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

將 Unity Ads 新增至 GDPR 和美國州級法規廣告合作夥伴名單

請按照「歐洲法規設定」和「美國州級法規設定」中的步驟,在 Ad Manager 使用者介面,將 Unity Ads 新增至歐洲和美國州級法規廣告合作夥伴名單。

步驟 3:匯入 Unity Ads SDK 和轉接程式

透過 pub.dev 整合

在套件的 pubspec.yaml 檔案,新增下列依附元件和最新版本的 Unity Ads SDK 與轉接程式:

dependencies:
  gma_mediation_unity: ^

手動整合

下載適用於 Unity Ads 的最新版本 Google Mobile Ads 中介服務外掛程式,解壓縮下載的檔案,並將解壓縮的外掛程式資料夾及其內容新增至 Flutter 專案。接著,在 pubspec.yaml 檔案新增下列依附元件,以參照外掛程式:

dependencies:
  gma_mediation_unity:
    path: path/to/local/package

步驟 4:在 Unity Ads SDK 中導入隱私權設定

遵守《Google 歐盟地區使用者同意聲明政策》,您必須向歐洲經濟區、英國和瑞士的使用者揭露特定資訊,並在法律有相關規定時,取得他們對使用 Cookie 或其他本機儲存空間的同意聲明,以及對收集、分享及使用個人資料進行廣告個人化的同意聲明。本政策是配合《歐盟地區電子通訊隱私指令》和《一般資料保護規則》(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 ID 新增至專案的 Info.plist 檔案。

步驟 6:測試導入成果

啟用測試廣告

請務必為 Ad Manager 註冊測試裝置,並在 Unity Ads 使用者介面啟用測試模式

驗證測試廣告

如要確認您是否收到 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 傳回錯誤。詳情請參閱「程式碼」一文。
101 在 AdMob 使用者介面中設定的 UnityAds 伺服器參數遺失/無效。
102 UnityAds 傳回的刊登位置處於 NO_FILL 狀態。
103 UnityAds 傳回的刊登位置狀態為 DISABLED。
104 UnityAds 嘗試顯示內容為空值的廣告。
105 用於從 Unity Ads 初始化、載入及/或顯示廣告的 Context 不是 Activity 執行個體。
106 UnityAds 嘗試顯示尚未準備就緒的廣告。
107 裝置不支援 UnityAds。
108 UnityAds 一次只能為每個刊登位置載入 1 則廣告。
109 UnityAds 已完成,但處於 ERROR 狀態。
200-204 UnityAds Banner 發生特定錯誤。詳情請參閱「程式碼」一文。

iOS

0-9 UnityAds SDK 傳回錯誤。詳情請參閱 Unity 的說明文件
101 Ad Manager 使用者介面中設定的 UnityAds 伺服器參數遺失/無效。
102 UnityAds 不支援這部裝置。
103 UnityAds 結束顯示,但發生錯誤 kUnityAdsFinishStateError
104 呼叫初始化程式後,Unity 廣告物件為空值。
105 廣告尚未準備就緒,因此無法顯示 Unity Ads。
107 UnityAds 呼叫了刊登位置變更回呼,且刊登位置狀態為 kUnityAdsPlacementStateDisabled
108 這個刊登位置已載入廣告。UnityAds SDK 不支援為同一個刊登位置載入多個廣告。
109 UnityAds 傳回的橫幅廣告與要求的尺寸不符。
110 UnityAds 傳回初始化錯誤。
111 不支援的廣告格式。

Unity Ads Flutter 中介服務轉接程式變更記錄

1.6.1 版 (開發中)

1.6.0 版

  • 使用 Google Mobile Ads Flutter 外掛程式 6.0.0 版建構及測試。

1.5.1 版本

  • 使用 Google Mobile Ads Flutter 外掛程式 6.0.0 版建構及測試。

1.5.0 版本

  • 使用 Google Mobile Ads Flutter 外掛程式 6.0.0 版建構及測試。

1.4.1 版本

  • 使用 Google Mobile Ads Flutter 外掛程式 6.0.0 版建構及測試。

1.4.0 版本

  • 使用 Google Mobile Ads Flutter 外掛程式 6.0.0 版建構及測試。

1.3.0 版本

  • 使用 Google Mobile Ads Flutter 外掛程式 5.3.1 版建構及測試。

1.2.0 版本

  • 使用 Google Mobile Ads Flutter 外掛程式 5.3.1 版建構及測試。

1.1.0 版本

  • 使用 Google Mobile Ads Flutter 外掛程式 5.2.0 版建構及測試。

1.0.0 版本

  • 使用 Google Mobile Ads Flutter 外掛程式 5.0.0 版建構及測試。