XAML 和 .NET 中的 AdControl

警告

自 2020 年 6 月 1 日起,适用于 Windows UWP 应用的 Microsoft 广告盈利平台将关闭。 了解详细信息

本演练演示如何使用 AdControl 类在通用 Windows 平台 (UWP) XAML 应用中显示横幅广告,以便使用 C# 实现Windows 10或Windows 11。

注意

Microsoft 广告 SDK 还支持使用 C++ 实现的 XAML 应用。 有关完整示例项目,请参阅 GitHub 上的广告示例

先决条件

在应用中集成横幅广告

  1. 在 Visual Studio 中,打开项目或创建新项目。

    注意

    如果你使用现有项目,请打开项目中的 Package.appxmanifest 文件并确保已选择 Internet(客户端)功能。 应用需要使用此功能接收测试广告和实时广告。

  2. 如果你的项目面向任何 CPU,请更新你的项目以使用特定于体系结构的生成输出(例如,x86)。 如果你的项目面向任何 CPU,你将无法在以下步骤中成功添加对 Microsoft Advertising 库的引用。 有关详细信息,请参阅项目中由面向任何 CPU 引起的引用错误

  3. 在你的项目中添加对 Microsoft 广告 SDK 的引用:

    1. 解决方案资源管理器窗口中,右键单击引用,然后选择添加引用...
    2. 引用管理器中,展开通用 Windows、单击扩展,然后选中适用于 XAML 的 Microsoft 广告 SDK(版本 10.0)旁边的复选框。
    3. 引用管理器中,单击“确定”。
  4. 修改你要在其中嵌入广告的页面的 XAML,以包含 Microsoft.Advertising.WinRT.UI 命名空间。 例如,在由 Visual Studio 生成的默认示例应用中(即,在应用 MyAdFundedWindows10AppXAML 中),XAML 页面是 MainPage.XAML

    由 Visual Studio 生成的 MainPage.xaml 文件的页面部分具有以下代码。

    <Page
      x:Class="MyAdFundedWindows10AppXAML.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="using:MyAdFundedWindows10AppXAML"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d">
      <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
      </Grid>
    </Page>
    

    添加命名空间引用 Microsoft.Advertising.WinRT.UI,以使 MainPage.xaml 文件的页面部分具有以下代码。

    <Page
      x:Class="MyAdFundedWindows10AppXAML.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="using:MyAdFundedWindows10AppXAML"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:UI="using:Microsoft.Advertising.WinRT.UI"
      mc:Ignorable="d">
      <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
      </Grid>
    </Page>
    
  5. 在“网格”标记中,为 AdControl 添加代码。 将 AdUnitIdApplicationId 属性分配至测试广告单元值。 另外还要调整控件的“高度”和“宽度”,以使其适应横幅广告支持的广告大小

    注意

    每个 AdControl 都有一个对应的广告单元,我们的服务使用该广告单元来为控件提供广告,每个广告单元都包含单元 ID应用程序 ID。 在这些步骤中,你将为控件分配测试广告单元 ID 和应用程序 ID 值。 这些测试值只能在应用的测试版本中使用。 在将应用发布到 Microsoft Store 之前,必须在合作伙伴中心将这些测试值替换为实时值

    完整的“网格”标记看起来像此代码。

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <UI:AdControl ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1"
            AdUnitId="test"
            HorizontalAlignment="Left"
            Height="250"
            VerticalAlignment="Top"
            Width="300"/>
    </Grid>
    

    MainPage.xaml 文件的完整代码应如下所示。

    <Page
      x:Class="MyAdFundedWindows10AppXAML.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="using:MyAdFundedWindows10AppXAML"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:UI="using:Microsoft.Advertising.WinRT.UI"
      mc:Ignorable="d">
      <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
            <UI:AdControl ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1"
                  AdUnitId="test"
                  HorizontalAlignment="Left"
                  Height="250"
                  VerticalAlignment="Top"
                  Width="300"/>
      </Grid>
    </Page>
    
  6. 编译并运行应用以查看是否带有广告。

发布包含实时广告的应用

  1. 确保在应用中对横幅广告的使用遵循我们的横幅广告指南

  2. 在合作伙伴中心中,转到应用内广告页,然后创建广告单元。 对于广告单元类型,请指定横幅。 记下广告单元 ID 和应用程序 ID。

    注意

    测试广告单元和实时 UWP 广告单元的应用程序 ID 值采用不同的格式。 测试应用程序 ID 值为 GUID。 在合作伙伴中心中创建实时 UWP 广告单元时,该广告单元的应用程序 ID 值始终与应用的 Store ID(例如 Store ID 值类似于 9NBLGGH4R315)匹配。

  3. 你可以选择通过配置中介设置部分(位于应用内广告页面上)的设置为 AdControl 启用广告中介。 广告中介显示来自多个广告网络(包括其他付费广告网络,如 Taboola 和 Smaato)的广告及 Microsoft 应用促销活动的广告,从而使你能够最大化你的广告收益和应用促销能力。

  4. 在你的代码中,将测试广告单元值(ApplicationId 和 AdUnitId)替换为你在合作伙伴中心生成的实时值。

  5. 使用合作伙伴中心提交应用至 Microsoft Store。

  6. 在合作伙伴中心中查看广告性能报告

在应用中管理多个广告控件的广告单元

可在一个应用中使用多个 AdControl 对象(例如,应用中的每页可以托管不同的 AdControl 对象)。 在此情况下,我们建议你为每个控件分配不同的广告单元。 对每个控件使用不同的广告单元使你可以分别配置中介设置并获取每个控件的独立报告数据。 这还使我们的服务能够更好地优化我们为应用提供的广告。

重要

每个广告单元都只能在一个应用中使用。 如果在多个应用中使用某个广告单元,将不为该广告单元提供广告。