#

Download:

Datei 1: MainPage.xaml
Datei 2: MainPage.xaml.cs

 

Wenn man unter UWP Universal Windows Platform Apps eine Werbung einbinden möchte, dann benötigt man hierzu das

Nuget Package: Microsoft.Services.Store SDK

 

The Microsoft Store Services SDK includes advertising and engagement frameworks. After adding this NuGet to your project, add a reference to the extensions you want, such as "Microsoft Advertising SDK for XAML" or "Microsoft Engagement Framework" (may require reopening project).

 

Im Projekt mit der rechten Maustaste->NuGet Packages, dann Store eingeben und Microsoft Services installieren

 

Anschliessend muss man unter Projekt->Verweise im Dialog:Verweis-Manger->Universal Windows->Erweiterungen

 ein Häckchen aktivieren bei: Microsoft Advertising SDK for XAML  (Targets UAP 10.0.10240.0)

 

Anschliessend kann man im XAML Code den Namespace von Microsoft Advertising hinzufügen

xmlns:ad="using:Microsoft.Advertising.WinRT.UI"

Und einen AdControl Block

        <ad:AdControl ApplicationId="74380a21-df76-47ae-9d4c-057a19101233"

         AdUnitId="123456789"

         HorizontalAlignment="Left"

         Height="250"

         VerticalAlignment="Top"

         Width="300"/>

 

 

Die ApplicationID bekommt man unter Package.appxmanifest als Nummer im Feld: Packetname

 

Zum AdControl

Dabei ist das AdControl das eigentliche UIElement, welches zur Anzeige von klassischen werbebannern dient.

Mit der Einstellung der AdUnitID kann man eine Nummer eingeben, unter welcher man die Daten im Store Dev Center auswerten und verfolgen kann.

AdControl class

Represents a control that displays banner ads in an app

 

AdUnitId

Read/write

Gets or sets the ad unit identifier for this AdControl object. This value is available in Windows Dev Center.

 

 

Testwerte unter AdUnitID und ApplicationID

 

Während der Test- und Entwicklungsphase soll man in der App Testwerte eintragen.

Zum Richtigen Betrieb im Appstore muss man dann die Werte durch eigene Werte austauschen. Im echten Betrieb schreibt man dann unter ApplicationID die App-PackageNummer und in der AdUnitID eine eigene frei einstellbare Nummer oder Text.

Diese AdControl Testwerte findet man unter:

https://docs.microsoft.com/en-us/windows/uwp/monetize/test-mode-values

 

im Abschnitt Bannerwerbung

(Test Banner Windows 10) AdUnitID:        test

(Test Banner Windows 10) ApplicationID: 3f83fe91-d6be-434d-a0ae-7351c5a997f1

 

 

AdControl-Bannergrößen

Für die Bannergrößen muss man vorgegebne Werte einstellen. Diese findet man unter

https://docs.microsoft.com/en-us/windows/uwp/monetize/supported-ad-sizes-for-banner-ads

Die Webseite gibt dabei eine grobe Vorschau, wie diese aussehen könnten.

 

Für Windows 10 Apps gelten folgende Bannerwerbungen als Vorgabegrößen:

Bannergrößen UWP Windows 10

300x250 AdSizes Windows 300x250

728x90 AdSizes Windows 728x90

160x600 AdSizes Windows 160x600

300x600 AdSizes Windows 300x600

 

 

Für die Darstellung und als Beispiel Code habe ich eine Beispiel App erstellt, welche alle Werbebanner darstellt und ausführt

App: uwp_Advertiser

 

Folgender XAML Code zeigt die Beispielanwendung mit allen vier Adcontrol Werbebannern von Microsoft

<Page

    x:Class="uwp_Advertiser.MainPage"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:local="using:uwp_Advertiser"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    xmlns:ad="using:Microsoft.Advertising.WinRT.UI"

    mc:Ignorable="d">

 

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

        <Grid.RowDefinitions>

            <RowDefinition Height="11*"/>

            <RowDefinition Height="149*"/>

        </Grid.RowDefinitions>

        <TextBlock HorizontalAlignment="Left" Margin="56,10,0,0" TextWrapping="Wrap" Text="Microsoft AdControl" VerticalAlignment="Top" Height="46" Width="187"/>

        <ScrollViewer x:Name="scrollBanner" Grid.Row="1">

            <Grid x:Name="gridBanner" >

                <Grid.ColumnDefinitions>

                    <ColumnDefinition Width="150" MinWidth="150"/>

                    <ColumnDefinition Width="400"/>

                    <ColumnDefinition Width="400*"/>

                </Grid.ColumnDefinitions>

                <Grid.RowDefinitions>

                    <RowDefinition Height="40"/>

                    <RowDefinition Height="250"/>

                    <RowDefinition Height="90"/>

                    <RowDefinition Height="600"/>

                    <RowDefinition Height="600*"/>

                </Grid.RowDefinitions>

                <Border x:Name="background_Row_0" Grid.Row="0" Grid.ColumnSpan="2" Background="#e0e0e0" BorderBrush="Black" BorderThickness="1"></Border>

                <Border x:Name="background_Col_0" Grid.RowSpan="5" Grid.Column="0" Background="#e0e0e0" BorderBrush="Black" BorderThickness="1"></Border>

 

                <TextBlock x:Name="lblHeader_BannerSize" Grid.Row="0" Grid.Column="0" Text="Banner Size"

                       FontSize="30" VerticalAlignment="Center" />

                <TextBlock x:Name="lblHeader_BannerControl" Grid.Row="0" Grid.Column="1" Text="Banner Control"

                       FontSize="30" />

                <TextBlock x:Name="lblHeader_Interstitial" Grid.Row="0" Grid.Column="2" Text="Interstitial Fullsize as Interrupt"

                       FontSize="30" />

 

                <TextBlock x:Name="lblBanner1" Grid.Row="1" Grid.Column="0" Text="300x250"

                       FontSize="30" VerticalAlignment="Center"/>

 

                <ad:AdControl x:Name="adBanner_300x250" Grid.Row="1" Grid.Column="1" Background="#F0F0F0"

                ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1"

                AdUnitId="test"

                Width="300" Height="250"               

             />

 

                <TextBlock x:Name="lblBanner2" Grid.Row="2" Grid.Column="0" Text="728x90"

                       FontSize="30" VerticalAlignment="Center"/>

 

                <ad:AdControl x:Name="adBanner_728x90" Grid.Row="2" Grid.Column="1" Background="#F0F0F0"

                ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1"

                AdUnitId="test"        

                          Width="728" Height="90"

             />

                <TextBlock x:Name="lblBanner3" Grid.Row="3" Grid.Column="0" Text="160x600"

                       FontSize="30" VerticalAlignment="Center"/>

 

                <ad:AdControl x:Name="adBanner_160x600" Grid.Row="3" Grid.Column="1" Background="#F0F0F0"

                ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1"

                AdUnitId="test"    

                Width="160" Height="600"

             />

                <TextBlock x:Name="lblBanner4" Grid.Row="4" Grid.Column="0" Text="300x600"

                       FontSize="30" VerticalAlignment="Center"/>

 

                <ad:AdControl x:Name="adBanner_300x600" Grid.Row="4" Grid.Column="1" Background="#F0F0F0"

                ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1"

                AdUnitId="test"

                Width="300" Height="600"

             />

 

                <Button x:Name="btnStart_InterAd" Click="btnStart_InterAd_Click"

                   Grid.Row="1" Grid.Column="2"

                        Width="200" Height="100" VerticalAlignment="Center" HorizontalAlignment="Center"

                        Content="start Ad InterStitial"

                        ></Button>

            </Grid>

        </ScrollViewer>

    </Grid>

</Page>

 

 

<!--AdSizes for Windows 10 300x250  728x90 160x600 300x600 -->

 

 

 

 

B) Interstitial Werbung

Im Gegensatz zu Banneranzeigen wird Interstitialwerbung (oder Interstitialanzeigen) auf dem gesamten Bildschirm der App angezeigt. In Spielen werden häufig zwei grundlegende Formen verwendet.

Wird beschrieben unter: https://docs.microsoft.com/de-de/windows/uwp/monetize/interstitial-ads

 

Intersitial Werbung wird nicht über XAML eingebunden, sondern nur über den Code behind, also C# der Page.

 

Dieses Beispiel zeigt eine Interstitial Werbung.

Der Werbebanner geht über die gesamte App und unterbricht die aktuelle Darstellung.

Links unten ist eine Zahl eingeblendet, wie lange die Werbung noch läuft. Wenn man die App in den Background stellt, dann wird auch die Werbung angehalten und diese startet wieder, sobald man die App darstellt.

Beim Klick auf die Werbung wird im linken oberen Eck auch ein Zurück-Button eingeblendet.

 

Hier der Code zum Einbinden eines FullScreen Advertisers

 

//< Advertising >

using Microsoft.Advertising.WinRT.UI;

//</ Advertising >

 

namespace uwp_Advertiser

{

 

    public sealed partial class MainPage : Page

    {

        //< Advertise >

        InterstitialAd myInterstitialAd;

        string myAppId = "d25517cb-12d4-4699-8bdc-52040c712cab";

        string myAdUnitId = "test";

        //</ Advertise >

 

        public MainPage()

        {

            this.InitializeComponent();

 

            //< create AdControl >

            myInterstitialAd = new InterstitialAd();

            //</ create AdControl >

        }

 

        private void btnStart_InterAd_Click(object sender, RoutedEventArgs e)

        {

            //------------< btnStart_InterAd_Click() >------------

            //< get new Advertise >

            myInterstitialAd.RequestAd(AdType.Video, myAppId, myAdUnitId);

            //</ get new Advertise >

 

            //< show Advertise >

            if (InterstitialAdState.Ready == myInterstitialAd.State)

            {

                myInterstitialAd.Show();

            }

            //</ show Advertise >

            //------------</ btnStart_InterAd_Click() >------------

        }

    }

}

 

 

Mobile

.

yesmovies