diff --git a/FoxTube.Core/FoxTube.Core.csproj b/FoxTube.Core/FoxTube.Core.csproj
index 90ee4b8..8cade6a 100644
--- a/FoxTube.Core/FoxTube.Core.csproj
+++ b/FoxTube.Core/FoxTube.Core.csproj
@@ -189,6 +189,11 @@
Visual C++ 2015 Runtime for Universal Windows Platform Apps
+
+
+ ..\..\..\..\NuGet\microsoft.advertising.xaml\10.1811.22001\SDK\Windows Kits\10\ExtensionSDKs\Microsoft.Advertising.Xaml\10.0\References\CommonConfiguration\neutral\Microsoft.Advertising.winmd
+
+
14.0
diff --git a/FoxTube.Core/Helpers/Utils.cs b/FoxTube.Core/Helpers/Utils.cs
index 29d87cd..1f8cfdf 100644
--- a/FoxTube.Core/Helpers/Utils.cs
+++ b/FoxTube.Core/Helpers/Utils.cs
@@ -1,7 +1,6 @@
-using System;
-using System.Net.Http;
+using Microsoft.Advertising.WinRT.UI;
+using System;
using Windows.ApplicationModel.Core;
-using Windows.UI.Notifications;
namespace FoxTube.Core.Helpers
{
@@ -32,5 +31,7 @@ namespace FoxTube.Core.Helpers
Settings.ResetSettings();
RestartApp();
}
+
+ public static NativeAdsManagerV2 AdManager => new NativeAdsManagerV2("9ncqqxjtdlfh", "1100044398");
}
}
diff --git a/FoxTube/Controls/Cards/AdvertCard.xaml b/FoxTube/Controls/Cards/AdvertCard.xaml
index 9567cf9..962cdbe 100644
--- a/FoxTube/Controls/Cards/AdvertCard.xaml
+++ b/FoxTube/Controls/Cards/AdvertCard.xaml
@@ -11,7 +11,12 @@
d:DesignWidth="400"
HorizontalAlignment="Stretch"
Margin="3"
- SizeChanged="UserControl_SizeChanged">
+ SizeChanged="UserControl_SizeChanged"
+ Visibility="Collapsed"
+ Opacity="0">
+
+
+
diff --git a/FoxTube/Controls/Cards/AdvertCard.xaml.cs b/FoxTube/Controls/Cards/AdvertCard.xaml.cs
index c861c4d..ba58a57 100644
--- a/FoxTube/Controls/Cards/AdvertCard.xaml.cs
+++ b/FoxTube/Controls/Cards/AdvertCard.xaml.cs
@@ -1,14 +1,51 @@
-using Windows.UI.Xaml;
+using FoxTube.Core.Helpers;
+using Microsoft.Advertising.WinRT.UI;
+using Microsoft.Toolkit.Uwp.UI.Controls;
+using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace FoxTube.Controls.Cards
{
+ ///
+ /// Advert which is looks similar to video cards
+ ///
public sealed partial class AdvertCard : UserControl
{
- public AdvertCard() =>
+ NativeAdsManagerV2 manager = Utils.AdManager;
+ NativeAdV2 advert;
+ public AdvertCard()
+ {
InitializeComponent();
+ manager.AdReady += AdReady;
+ manager.ErrorOccurred += ErrorOccurred;
+ manager.RequestAd();
+ }
+ private void ErrorOccurred(object sender, NativeAdErrorEventArgs e)
+ {
+ (Parent as StaggeredPanel)?.Children.Remove(this);
+ Metrics.AddEvent("Error has occured while loading ad",
+ ("Code", e.ErrorCode.ToString()),
+ ("Message", e.ErrorMessage),
+ ("Request ID", e.RequestId));
+ }
+
+ private void AdReady(object sender, NativeAdReadyEventArgs e)
+ {
+ advert = e.NativeAd;
+
+ if (string.IsNullOrWhiteSpace(advert.CallToActionText))
+ cta.Visibility = Visibility.Collapsed;
+
+ description.Text += $"{advert.Price} {advert.Rating}";
+
+ e.NativeAd.RegisterAdContainer(grid);
+
+ Metrics.AddEvent("Advert loaded",
+ ("Region", Settings.Region),
+ ("Version", Metrics.CurrentVersion));
+ }
void UserControl_SizeChanged(object sender, SizeChangedEventArgs e) =>
Height = .75 * ActualWidth;
}
-}
+}
\ No newline at end of file
diff --git a/FoxTube/Controls/ItemsGrid.xaml.cs b/FoxTube/Controls/ItemsGrid.xaml.cs
index a62d8e5..bf20e13 100644
--- a/FoxTube/Controls/ItemsGrid.xaml.cs
+++ b/FoxTube/Controls/ItemsGrid.xaml.cs
@@ -1,4 +1,5 @@
using FoxTube.Controls.Cards;
+using FoxTube.Core.Helpers;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
@@ -16,8 +17,8 @@ namespace FoxTube.Controls
{
empty.Opacity = 0;
- //if (!StoreInterop.AdsDisabled && ItemsCount % 5 == 0 && ItemsCount > 0)
- // Items.Add(new AdvertCard());
+ if (!StoreInterop.AdsDisabled && ItemsCount % 5 == 0 && ItemsCount > 0)
+ Items.Add(new AdvertCard());
Items.Add(item);
}