原生重叠式广告
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
入门指南
原生重叠式广告通过平台原本就有的界面组件向用户呈现。这些广告以重叠式广告的形式显示在应用顶部。这与横幅广告的运作方式类似,但能够自定义广告的外观。
原生重叠式广告支持中介和视频广告。这是原生重叠式广告相对于原生广告的一项关键优势。
本指南介绍了如何在 Unity 应用中植入原生重叠式广告,以及在此过程中需要注意的一些重要事项。
前提条件
- 通读入门指南。
- Unity 插件 9.0.0 或更高版本。
务必用测试广告进行测试
以下示例代码包含一个广告单元 ID,您可以使用该 ID 来请求加载测试广告。该 ID 已经过专门配置,可针对每个请求返回测试广告(而非实际投放的广告),因此能够安全地使用。
不过,在 Ad Manager 网页界面中注册应用并创建您自己的广告单元 ID 以便在您的应用中使用后,您需要在开发期间明确地将您的设备配置为测试设备。
/21775744923/example/native
加载原生重叠式广告
原生重叠式广告的加载是通过对 NativeOverlayAd
类使用静态 Load()
方法完成的。加载的 NativeOverlayAd
对象是作为完成处理程序中的参数提供的。
以下代码使用 NativeOverlayAd
来加载广告:
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/native";
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;
}
}
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):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"]],["最后更新时间 (UTC):2025-09-02。"],[[["\u003cp\u003eNative overlay ads are presented as overlays within the app, similar to banners, but with customizable appearances and support for mediation and video ads.\u003c/p\u003e\n"],["\u003cp\u003eImplementing native overlay ads in Unity requires the Google Mobile Ads Unity plugin 9.0.0 or higher and completion of the Get Started guide.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can load, render with custom styles, and control the display (show/hide) of native overlay ads using the provided code examples and the \u003ccode\u003eNativeOverlayAd\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eAlways test with test ads during development and remember to destroy the ad object when finished to release resources.\u003c/p\u003e\n"]]],["Native overlay ads are implemented in Unity using the `NativeOverlayAd` class. Key actions include loading ads with `NativeOverlayAd.Load()`, utilizing an ad request and optional native ad options. Rendering involves `RenderTemplate()`, allowing customization via `NativeTemplateStyle`. Ads can be shown using `Show()`, hidden with `Hide()`, and resources released by calling `Destroy()`. Testing is recommended using the provided test ad unit ID, and later configure actual ad units for development, and test devices.\n"],null,["Select platform: [Android](/ad-manager/mobile-ads-sdk/android/native \"View this page for the Android platform docs.\") [iOS](/ad-manager/mobile-ads-sdk/ios/native \"View this page for the iOS platform docs.\") [Flutter](/ad-manager/mobile-ads-sdk/flutter/native \"View this page for the Flutter platform docs.\") [Unity](/ad-manager/mobile-ads-sdk/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](/ad-manager/mobile-ads-sdk/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\nAd Manager web interface and created your own ad unit\nIDs for use in your app, explicitly [configure your device as a test\ndevice](/ad-manager/mobile-ads-sdk/unity/test-ads#enable_test_devices) during\ndevelopment.\n\n`/21775744923/example/native`\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\n // This ad unit is configured to always serve test ads.\n private string _adUnitId = \"/21775744923/example/native\";\n\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 }"]]