Я использую Microsoft Advertising SDK для UWP: https://marketplace.visualstudio.com/items?itemName=AdMediator.MicrosoftAdvertisingSDK и хочу добавить нативную рекламу в свое приложение
Вот код, демонстрирующий проблему:
auto NativeAdManager = ref new Microsoft::Advertising::WinRT::UI::NativeAdsManager("d25517cb-12d4-4699-8bdc-52040c712cab", "10043134");
NativeAdManager->AdReady += ref new Windows::Foundation::EventHandler<Platform::Object^>([](Platform::Object ^ s, Platform::Object ^ ad)
{
Platform::String^ Title = static_cast<Microsoft::Advertising::WinRT::UI::NativeAd^>(ad)->Title;
Platform::String^ desc = static_cast<Microsoft::Advertising::WinRT::UI::NativeAd^>(ad)->Description;
__debugbreak();
});
NativeAdManager->ErrorOccurred += ref new Windows::Foundation::EventHandler<Microsoft::Advertising::WinRT::UI::AdErrorEventArgs^>([](Platform::Object^ sender, Microsoft::Advertising::WinRT::UI::AdErrorEventArgs^ e) {
auto x = e->ErrorMessage;
__debugbreak();
});
NativeAdManager->RequestAd();
После вызова RequestAd()
get обработчик события AdReady
запускается, как и ожидалось, но проблема в том, что рекламные данные бессмысленны. Например, Title
— это nullptr
, Description
— недопустимый дескриптор строки, AdIcon
— недопустимый класс изображения и т. д. Событие ErrorOccurred
никогда не срабатывает. В окне вывода отладки Visual Studio также есть какой-то странный вывод:
info:get_AppId() invoked. [Windows::ApplicationModel::Store::CurrentAppFactory::get_AppId]
The thread 0x3ce0 has exited with code 0 (0x0).
ERROR:ChkHr(spStoreCommerce->Initialize(HStringReference(wszCV).Get())) (0x803f6107) [Windows::ApplicationModel::Store::CurrentAppFactory::GetStoreCommerce]
ERROR:ChkHr(GetStoreCommerce(&spStoreCommerce)) (0x803f6107) [Windows::ApplicationModel::Store::CurrentAppFactory::get_AppId]
info:GetAppReceiptAsync() invoked. [Windows::ApplicationModel::Store::CurrentAppFactory::GetAppReceiptAsync]
ERROR:ChkHr(spStoreCommerce->Initialize(HStringReference(wszCV).Get())) (0x803f6107) [Windows::ApplicationModel::Store::CurrentAppFactory::GetStoreCommerce]
ERROR:ChkHr(GetStoreCommerce(&spStoreCommerce)) (0x803f6107) [Windows::ApplicationModel::Store::CurrentAppFactory::GetAppReceiptAsync]
WLID Error: 80860003Exception thrown at 0x00007FFA59024008 in Advertising.exe: Microsoft C++ exception: Concurrency::task_canceled at memory location 0x00000064AFDFF228.
Что я делаю неправильно?
Это известная проблема, и MSFT выпустит еще один выпуск Ads SDK, который должен перестать вызывать эту проблему с собственной рекламой. Пожалуйста, проверьте эту ссылку: social.msdn.microsoft.com/Forums/windowsapps/en-US/…