開始使用
原生重疊廣告會透過平台原生的 UI 元件向使用者顯示。這些廣告會以疊加的方式顯示在應用程式上方。這與橫幅廣告的運作方式類似,但可自訂廣告外觀。
原生重疊廣告支援中介服務和影片廣告。這是原生重疊廣告相較於原生廣告的主要優勢。
本指南將說明如何在 Unity 應用程式中實作原生疊加廣告,以及在實作過程中應考量的幾項重要事項。
必要條件
- 完成入門指南。
- Unity 外掛程式 9.0.0 以上版本。
請務必使用測試廣告進行測試
下列範例程式碼包含廣告單元 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;
}
}