2016-03-07 6 views
2

Я не могу получить InterstitialAd для работы в моем приложении UWP при работе на эмуляторе Windows Phone (обратите внимание, что я еще не пробовал его на реальном телефоне)InterstitialAd не работает с Windows Phone 10 (UWP - Windows 10)

Работает так, как ожидалось, когда я запускаю свое приложение UWP в Simulator или Local Machine в качестве приложения для Windows Store.

Любые идеи?

Спасибо.

ОБНОВЛЕНИЕ - 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 в качестве контрольных значений на данный момент, как я не выпустил его еще, ну, не с рекламой в любом случае.

Благодаря

UPDATE - 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 

Это займет более 1 минуты для OnAdReady, который будет запущен, который действительно нечетный, а затем я получаю OnAdError через 8 секунд, поэтому из этих журналов вы предположили бы, что есть сетевая проблема, но мои данные загружаются правильно, которые все вытащены из веб-службы, поэтому есть определенная связь. Также мой AdMediator отображает объявления как ожидаемые (ну, вроде! Это еще одна история!).

Я попытаюсь перенести его прямо на свой телефон завтра и посмотреть, не имеет ли он каких-либо различий, и я подключаю свой ноутбук к порту Ethernet вместо использования беспроводной сети, но моя беспроводная связь довольно приличная, поэтому я не уверен почему я получаю ошибки подключения к сети.

+0

Просьба представить более подробную информацию. Детали как - как вы реализовали InterstitialAd и т. Д. –

+0

@VineetChoudhary Я добавил код, который я использую. Надеюсь, это поможет выяснить проблему. Спасибо – Thierry

+0

Вы пытались поставить точку останова в 'private void OnAdError (object sender, AdErrorEventArgs e)' method. Возможно, это связано с некоторой ошибкой при загрузке рекламы. –

ответ

1

Приведенный выше код правильно, и на самом деле работает с UWP на Windows Phone, но он не работает большой в эмуляторе как:

  • он периодически генерирует ошибки с подключением к сети, когда они нет.
  • может потребоваться минута, чтобы отобразить объявление, но в конце концов оно будет.

Я только что загрузил свое приложение в магазин и загрузил его на свой телефон, и он работает должным образом. Он отображает объявление сразу или в течение нескольких секунд или около того.

Я бы порекомендовал вам не тратить слишком много времени на пробуждение через эмулятор телефона, поскольку это, по-видимому, основная проблема. Внесите свой код, а затем протестируйте его прямо на своем устройстве или загрузите его из магазина, если вы еще не выпустили приложение.

UPDATE:

Я просто думал, что я обновляю свой ответ, я просто читал о делать и Dont в межстраничных объявлениях от UI and User Experience Guidelines и между прочим, я на самом деле делаю это, это одна из точек в списке «избегать».

Он рекомендует, чтобы вы получили рекламу на 30-60 секунд раньше времени, и вы не показываете ее, когда приложение запускается, что я делаю, поэтому, я думаю, я изменю логику в этом отношении.

+0

Внимание! предварительная выборка рекламы заранее может привести ваше приложение в черный список к покупателям (из-за того, как работает рынок RTB). 60 секунд толкает его. – James

+0

@James, Просто процитировал, что говорят MS, но спасибо за то, что разделил этот момент. Думаю, как и было рекомендовано, лучше всего использовать значение по умолчанию, т.е. 30 секунд. – Thierry

+0

techqa.info, candoerz.com и SO ... где еще вы задали тот же вопрос? PS. У меня такая же проблема, но не в эмуляторе, а на самой локальной машине ... Считаете ли вы, что проблема связана с серверами объявлений? –

Смежные вопросы