在Windows Phone模拟器上运行时,我无法让InterstitialAd
在我的UWP应用程序中工作(请注意,我还没有在实际的真实手机上试过它)
当我在模拟器或本地计算机中将我的UWP应用程序作为Windows应用商店应用运行时,它可以正常工作。
有什么想法吗?
感谢。
更新 - 1
以下是我用来显示InterstitialAd的代码。在我的MainPage.xaml.cs中,我有以下代码:
public sealed partial class MainPage : Page
{
private InterstitialAd interstitialAd;
public MainPage()
{
this.InitializeComponent();
// Instantiate the interstitial video ad
interstitialAd = new InterstitialAd();
// Attach event handlers
interstitialAd.ErrorOccurred += OnAdError;
interstitialAd.AdReady += OnAdReady;
interstitialAd.Cancelled += OnAdCancelled;
interstitialAd.Completed += OnAdCompleted;
}
}
// This is an event handler for the interstitial ad. It is
// triggered when the interstitial ad is ready to play.
private void OnAdReady(object sender, object e)
{
// The ad is ready to show; show it.
interstitialAd.Show();
}
// This is an event handler for the interstitial ad. It is
// triggered when the interstitial ad is cancelled.
private void OnAdCancelled(object sender, object e)
{
}
// This is an event handler for the interstitial ad. It is
// triggered when the interstitial ad has completed playback.
private void OnAdCompleted(object sender, object e)
{
}
// This is an error handler for the interstitial ad.
private void OnAdError(object sender, AdErrorEventArgs e)
{
}
我已经从他们的UWP商店样本中获取了这些代码,除了不是从按钮启动它,我在我的页面加载时启动它:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
// Request an ad. When the ad is ready to show,
// the AdReady event will fire.
// The application id and ad unit id are passed in here.
// The application id and ad unit id can be obtained from Dev
// Center.
// See "Monetize with Ads" at https://msdn.microsoft.com/
// en-us/library/windows/apps/mt170658.aspx
#if DEBUG
interstitialAd.RequestAd(AdType.Video,
"d25517cb-12d4-4699-8bdc-52040c712cab", "11389925");
#else
interstitialAd.RequestAd(AdType.Video,
"d25517cb-12d4-4699-8bdc-52040c712cab", "11389925");
#endif
}
我暂时将ApplicationId和UnitAdId作为测试值,因为我还没有发布它,好吧,不管广告是不是。
由于
更新 - 2:
我在各种事件中添加了一些调试日志,这就是我得到的:
Page_Loaded: 00:00:00.0001590
Page_Loaded - RequestAd: 00:00:00.0091840
OnAdReady - Elasped Time: 00:01:04.6923865
OnAdError: NetworkConnectionFailure : Media timeout occurred
during playback. - Elasped
Time: 00:00:08.1955928
触发OnAdReady需要1分多钟,这真的很奇怪,然后我在8秒后得到一个OnAdError,所以从这些日志中你可以认为存在网络问题,但我的数据正确加载,这都是从网络服务中提取,所以肯定有联系。此外,我的AdMediator按预期显示广告(好吧,那种!那是另一个故事!)。
我明天会尝试将它直接转移到我的手机上,看看是否有任何差异,我将笔记本电脑插入以太网端口而不是使用无线,但我的无线网络相当不错,所以我不知道为什么我遇到了网络连接错误。
答案 0 :(得分:1)
上面的代码是正确的,实际上可以在Windows Phone上使用UWP,但它在模拟器中的效果并不好:
我刚将我的应用程序上传到商店并将其下载到我的手机上,它按预期工作。它会立即或在几秒钟左右显示广告。
我建议你不要浪费太多时间通过手机模拟器尝试它,因为它似乎是主要问题。实施您的代码,然后直接在您的设备上进行测试,或者假设您还没有发布您的应用,请从商店下载。
<强>更新强>
我只是觉得我更新了我的答案,因为我刚刚阅读了有关UI and User Experience Guidelines 的插页式广告以及我实际的方式的做法和不做的事情。这样做,是避免&#34;避免&#34;列表。
它建议您提前30-60秒获取广告,并且在应用启动时您不会显示它,这就是我正在做的事情,所以我想我会更改逻辑关于。