原生重疊廣告
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
開始使用
系統會透過平台原生 UI 元件,向使用者顯示原生重疊廣告。這類廣告會以疊加形式顯示在應用程式頂端。運作方式與橫幅廣告類似,但可自訂廣告外觀。
原生重疊廣告支援中介服務和影片廣告。這是原生重疊廣告相較於原生廣告的主要優勢。
本指南說明如何在 Unity 應用程式中導入原生重疊廣告,以及過程中需要注意的重要事項。
必備條件
- 完成入門指南的步驟。
- Unity 外掛程式 9.0.0 以上版本。
請務必使用測試廣告進行測試
下列程式碼範例包含廣告單元 ID,可用於要求測試廣告。這類 ID 經特別設定,可針對每項要求傳回測試廣告,而非實際廣告,因此可安心使用。
不過,在 AdMob 網頁介面中註冊應用程式,並建立要在應用程式中使用的廣告單元 ID 後,請在開發期間將裝置明確設為測試裝置。
Android
ca-app-pub-3940256099942544/2247696110
iOS
ca-app-pub-3940256099942544/3986624511
載入原生重疊廣告
如要載入原生重疊廣告,請使用 NativeOverlayAd
類別的靜態 Load()
方法。載入的 NativeOverlayAd
物件會以參數形式,提供給完成處理常式。
下列程式碼會使用 NativeOverlayAd
載入廣告:
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/2247696110";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/3986624511";
#else
private string _adUnitId = "unused";
#endif
private NativeOverlayAd _nativeOverlayAd;
/// <summary>
/// Loads the ad.
/// </summary>
public void LoadAd()
{
// Clean up the old ad before loading a new one.
if (_nativeOverlayAd != null)
{
DestroyAd();
}
Debug.Log("Loading native overlay ad.");
// Create a request used to load the ad.
var adRequest = new AdRequest();
// Optional: Define native ad options.
var options = new NativeAdOptions
{
AdChoicesPosition = AdChoicesPlacement.TopRightCorner,
MediaAspectRatio = NativeMediaAspectRatio.Any,
};
// Send the request to load the ad.
NativeOverlayAd.Load(_adUnitId, adRequest, options,
(NativeOverlayAd ad, LoadAdError error) =>
{
if (error != null)
{
Debug.LogError("Native Overlay ad failed to load an ad " +
" with error: " + error);
return;
}
// The ad should always be non-null if the error is null, but
// double-check to avoid a crash.
if (ad == null)
{
Debug.LogError("Unexpected error: Native Overlay ad load event " +
" fired with null ad and null error.");
return;
}
// The operation completed successfully.
Debug.Log("Native Overlay ad loaded with response : " +
ad.GetResponseInfo());
_nativeOverlayAd = ad;
// Register to ad events to extend functionality.
RegisterEventHandlers(ad);
});
}
顯示及設定原生重疊廣告樣式
系統會使用 NativeTemplateStyle
顯示原生重疊廣告。這個類別定義的欄位可讓您自訂廣告外觀。
TemplateID
是必要字串,用於定義顯示原生重疊廣告的原生範本。使用 NativeTemplateID
常數,選擇適合廣告的原生範本。
下列程式碼會使用中型範本和自訂樣式顯示原生重疊廣告。
/// <summary>
/// Renders the ad.
/// </summary>
public void RenderAd()
{
if (_nativeOverlayAd != null)
{
Debug.Log("Rendering Native Overlay ad.");
// Define a native template style with a custom style.
var style = new NativeTemplateStyle
{
TemplateID = NativeTemplateID.Medium,
MainBackgroundColor = Color.red,
CallToActionText = new NativeTemplateTextStyles
{
BackgroundColor = Color.green,
FontColor = Color.white,
FontSize = 9,
Style = NativeTemplateFontStyle.Bold
}
};
// Renders a native overlay ad at the default size
// and anchored to the bottom of the screne.
_nativeOverlayAd.RenderTemplate(style, AdPosition.Bottom);
}
}
顯示及隱藏原生重疊廣告
下列程式碼示範如何顯示已載入的原生重疊廣告。
/// <summary>
/// Shows the ad.
/// </summary>
public void ShowAd()
{
if (_nativeOverlayAd != null)
{
Debug.Log("Showing Native Overlay ad.");
_nativeOverlayAd.Show();
}
}
隱藏原生重疊廣告
下列程式碼示範如何隱藏原生重疊廣告。
/// <summary>
/// Hides the ad.
/// </summary>
public void HideAd()
{
if (_nativeOverlayAd != null)
{
Debug.Log("Hiding Native Overlay ad.");
_nativeOverlayAd.Hide();
}
}
刪除原生重疊廣告
原生重疊廣告使用完畢後,請務必呼叫 Destroy()
以釋出資源。
/// <summary>
/// Destroys the native overlay ad.
/// </summary>
public void DestroyAd()
{
if (_nativeOverlayAd != null)
{
Debug.Log("Destroying native overlay ad.");
_nativeOverlayAd.Destroy();
_nativeOverlayAd = null;
}
}
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-02 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-02 (世界標準時間)。"],[[["\u003cp\u003eNative overlay ads are presented as an overlay on top of the application, similar to banner ads but with customizable appearances.\u003c/p\u003e\n"],["\u003cp\u003eThese ads support both mediation and video ads, offering a key advantage over traditional native ads.\u003c/p\u003e\n"],["\u003cp\u003eThis guide provides instructions on implementing native overlay ads in a Unity app, including loading, rendering, showing, hiding, and destroying the ads.\u003c/p\u003e\n"],["\u003cp\u003eBefore using real ads, it is crucial to test with test ads and configure your device as a test device during development.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can customize the appearance of the native overlay ad by using the \u003ccode\u003eNativeTemplateStyle\u003c/code\u003e and defining template IDs and styles for various elements.\u003c/p\u003e\n"]]],["Native overlay ads are implemented in Unity using the `NativeOverlayAd` class. First, use the `Load()` method with an ad unit ID, `AdRequest`, and `NativeAdOptions` to load an ad. Then, render the ad using `RenderTemplate()` with a `NativeTemplateStyle` to customize its appearance. Control visibility with `Show()` and `Hide()`, and release resources using `Destroy()`. Use test ad unit IDs during development and configure devices for testing.\n"],null,["Select platform: [Android](/admob/android/native \"View this page for the Android platform docs.\") [iOS](/admob/ios/native \"View this page for the iOS platform docs.\") [Flutter](/admob/flutter/native \"View this page for the Flutter platform docs.\") [Unity](/admob/unity/native-overlay \"View this page for the Unity platform docs.\")\n\n\u003cbr /\u003e\n\nGet started\n\nNative overlay ads are presented to users through UI components that are native\nto the platform. These ads are presented as an overlay on top of the\napplication. This is similar to how banner ads function, but with the ability to\ncustomize the appearance of the ads.\n\nNative overlay ads support mediation and video ads. This is a key advantage\nnative overlay ads have over [native ads](/admob/unity/native).\n\nThis guide shows you how to implement native overlay ads in a Unity app, as well\nas some important things to consider along the way.\n\nPrerequisites\n\n- Complete the [Get started guide](/admob/unity/quick-start).\n- Unity plugin 9.0.0 or higher.\n\nAlways test with test ads\n\nThe following sample code contains an ad unit ID which you can use to request\ntest ads. It's been specially configured to return test ads rather than\nproduction ads for every request, making it safe to use.\n\nHowever, after you've registered an app in the\nAdMob web interface and created your own ad unit\nIDs for use in your app, explicitly [configure your device as a test\ndevice](/admob/unity/test-ads#enable_test_devices) during\ndevelopment. \n\nAndroid\n\n`ca-app-pub-3940256099942544/2247696110`\n\niOS\n\n`ca-app-pub-3940256099942544/3986624511`\n\nLoad the native overlay ad\n\nLoading a native overlay ad is accomplished using the static `Load()` method on\nthe `NativeOverlayAd` class. The loaded `NativeOverlayAd` object is provided as\na parameter in the completion handler.\n\nThe following code uses `NativeOverlayAd` to load an ad: \n\n\n\n // These ad units are configured to always serve test ads.\n #if UNITY_ANDROID\n private string _adUnitId = \"ca-app-pub-3940256099942544/2247696110\";\n #elif UNITY_IPHONE\n private string _adUnitId = \"ca-app-pub-3940256099942544/3986624511\";\n #else\n private string _adUnitId = \"unused\";\n #endif\n\n\n private NativeOverlayAd _nativeOverlayAd;\n\n /// \u003csummary\u003e\n /// Loads the ad.\n /// \u003c/summary\u003e\n public void LoadAd()\n {\n // Clean up the old ad before loading a new one.\n if (_nativeOverlayAd != null)\n {\n DestroyAd();\n }\n\n Debug.Log(\"Loading native overlay ad.\");\n\n // Create a request used to load the ad.\n var adRequest = new AdRequest();\n\n // Optional: Define native ad options.\n var options = new NativeAdOptions\n {\n AdChoicesPosition = AdChoicesPlacement.TopRightCorner,\n MediaAspectRatio = NativeMediaAspectRatio.Any,\n };\n\n // Send the request to load the ad.\n NativeOverlayAd.Load(_adUnitId, adRequest, options,\n (NativeOverlayAd ad, LoadAdError error) =\u003e\n {\n if (error != null)\n {\n Debug.LogError(\"Native Overlay ad failed to load an ad \" +\n \" with error: \" + error);\n return;\n }\n\n // The ad should always be non-null if the error is null, but\n // double-check to avoid a crash.\n if (ad == null)\n {\n Debug.LogError(\"Unexpected error: Native Overlay ad load event \" +\n \" fired with null ad and null error.\");\n return;\n }\n\n // The operation completed successfully.\n Debug.Log(\"Native Overlay ad loaded with response : \" +\n ad.GetResponseInfo());\n _nativeOverlayAd = ad;\n\n // Register to ad events to extend functionality.\n RegisterEventHandlers(ad);\n });\n }\n\nRender and style the native overlay ad\n\nNative overlay ads are rendered using a `NativeTemplateStyle`. This class\ndefines fields that enable you to customize the ad's appearance.\n\nThe `TemplateID` is a required string which defines the native template used to\nrender the native overlay ad. Use the `NativeTemplateID` constant to choose an\nappropriate native template for your ad.\n\nThe following code renders the native overlay ad with a medium template and a\ncustom style. \n\n /// \u003csummary\u003e\n /// Renders the ad.\n /// \u003c/summary\u003e\n public void RenderAd()\n {\n if (_nativeOverlayAd != null)\n {\n Debug.Log(\"Rendering Native Overlay ad.\");\n\n // Define a native template style with a custom style.\n var style = new NativeTemplateStyle\n {\n TemplateID = NativeTemplateID.Medium,\n MainBackgroundColor = Color.red,\n CallToActionText = new NativeTemplateTextStyles\n {\n BackgroundColor = Color.green,\n FontColor = Color.white,\n FontSize = 9,\n Style = NativeTemplateFontStyle.Bold\n }\n };\n\n // Renders a native overlay ad at the default size\n // and anchored to the bottom of the screne.\n _nativeOverlayAd.RenderTemplate(style, AdPosition.Bottom);\n }\n }\n\nShow and hide the native overlay ad\n\nThe following code demonstrates how to show a loaded native overlay ad. \n\n /// \u003csummary\u003e\n /// Shows the ad.\n /// \u003c/summary\u003e\n public void ShowAd()\n {\n if (_nativeOverlayAd != null)\n {\n Debug.Log(\"Showing Native Overlay ad.\");\n _nativeOverlayAd.Show();\n }\n }\n\nHide the native overlay ad\n\nThe following code demonstrates how to hide a native overlay ad. \n\n /// \u003csummary\u003e\n /// Hides the ad.\n /// \u003c/summary\u003e\n public void HideAd()\n {\n if (_nativeOverlayAd != null)\n {\n Debug.Log(\"Hiding Native Overlay ad.\");\n _nativeOverlayAd.Hide();\n }\n }\n\nDestroy the native overlay ad\n\nWhen finished using the native overlay ad, be sure to call `Destroy()` to\nrelease resources. \n\n /// \u003csummary\u003e\n /// Destroys the native overlay ad.\n /// \u003c/summary\u003e\n public void DestroyAd()\n {\n if (_nativeOverlayAd != null)\n {\n Debug.Log(\"Destroying native overlay ad.\");\n _nativeOverlayAd.Destroy();\n _nativeOverlayAd = null;\n }\n }\n\nNext Steps\n\n- Learn more about native ads in our [native ads playbook](//admob.google.com/home/resources/native-ads-playbook/).\n- See [native ads policies and guidelines](https://support.google.com/admob/answer/6329638)."]]