处理广告错误

警告

自 2020 年 6 月 1 日起,适用于 Windows UWP 应用的 Microsoft 广告盈利平台将关闭。 了解详细信息

AdControlInterstitialAdNativeAdsManagerV2 类均具有 ErrorOccurred 事件,该时间在发生广告相关错误时引发。 应用代码可以处理此事件并检查事件参数对象的 ErrorCodeErrorMessage 属性,以帮助确定错误原因。

XAML 应用

若要在 XAML 应用中处理与广告相关的错误:

  1. AdControlInterstitialAdNativeAdsManagerV2 对象的 ErrorOccurred 事件分配到事件处理程序委托的名称。

  2. 对错误事件处理委托进行编码,以便它可以处理两个参数:发送者的 ObjectAdErrorEventArgs 对象。

以下示例中,一个名为 OnAdError 的委托被分配给名为 myBannerAdControlAdControl 对象的 ErrorOccurred 事件。

myBannerAdControl.ErrorOccurred = OnAdError;

以下是 OnAdError 委托的示例定义,该委托将错误信息写入 Visual Studio 中的输出窗口。

private void OnAdError(object sender, AdErrorEventArgs e)
{
    System.Diagnostics.Debug.WriteLine("AdControl error (" + ((AdControl)sender).Name + "): " + e.Error +
        " ErrorCode: " + e.ErrorCode.ToString());
}

有关在 XAML 和 C# 中演示 AdControl 错误处理的演练,请参阅 XAML/C# 中的错误处理演练

JavaScript/HTML 应用

若要在 JavaScript 应用中处理 ErrorOccur 错误:

  1. onErrorOccurred 事件分配给事件处理程序。

  2. 对事件处理程序进行编码。

以下示例中,一个名为 errorLogger 的事件处理程序被分配到 AdControl 对象的 ErrorOccurred 事件。

<div id="myAd" style="position: absolute; top: 53px; left: 0px; width: 250px; height: 250px; z-index: 1"
     data-win-control="MicrosoftNSJS.Advertising.AdControl"
     data-win-options="{applicationId: '00001111-aaaa-2222-bbbb-3333cccc4444', adUnitId: 'test', onErrorOccurred: errorLogger}">
</div>

该错误处理程序函数具有声明性,必须括在 markSupportedForProcessing 函数中。

当发生错误时,该错误处理程序会捕获 JavaScript 错误对象。 该错误对象向错误处理程序提供两个参数。

以下是一个名为 errorLogger 的错误处理函数的示例,该函数可处理 onErrorOccurred 事件。

WinJS.Utilities.markSupportedForProcessing(
window.errorLogger = function (sender, evt) {
    console.log(new Date()).toLocaleTimeString() + ": " + sender.element.id + " error: " + evt.errorMessage +
    " error code: " + evt.errorCode + \n");
});

有关在 JavaScript 中演示 AdControl 错误处理的演练,请参阅 JavaScript 中的错误处理演练