处理广告错误

警告

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

AdControlInterstitialAdNativeAdsManagerV2 类都有一个 ErrorOccurred 事件,如果发生广告相关错误,将触发该事件。 应用代码可以处理此事件,并检查 ErrorCodeErrorMessage 事件参数对象的属性,以帮助确定错误的原因。

XAML 应用

若要处理 XAML 应用中与广告相关的错误,请执行以下操作:

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

  2. 对错误事件处理委托进行编码,使其采用两个参数:发送方 对象AdErrorEventArgs 对象。

以下示例将名为 OnAdError 的委托分配给 AdControl 对象名为 myBannerAdControlErrorOccurred 事件。

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 错误处理