Pubcenter广告无法点击

时间:2014-10-20 07:43:36

标签: xaml windows-phone-8 ads direct3d

我的头脑出现了奇怪的问题,来自microsoft pubcenter的广告不是clickabkle 应用程序使用D3D / XAML互操作。 但是我在Windows商店看到很多游戏都有pubcenter广告并明确使用d3d / xaml - 如何让这两个游戏一起工作?

重现问题的简单步骤: (VS2013 - 包含所有最新更新,pibcenter ctrl也更新到最新版本)

VS2013 - >新 - >项目 - > (Visual C ++ / Store Apps) - > DirectX和XAML应用程序(Windows手机)

(注意:这是Windows phone 8.1 app, NOT windows phone 8.1 silverlight app)

创建项目时,只需转到DirectXPage.xaml

并将其编辑为如下所示:

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:AdTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:UI="using:Microsoft.Advertising.Mobile.UI"
    x:Class="AdTest.DirectXPage"
    mc:Ignorable="d">

    <SwapChainPanel x:Name="swapChainPanel">

        <!-- Grid definition, to place ad on bottom (may remove if no ads) -->
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="50"/>
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <TextBlock Text="Hello from XAML!"
HorizontalAlignment="Right"
VerticalAlignment="Top"
FontSize="30" />

        <UI:AdControl Grid.Column="0" Grid.Row="1" x:Name="adBanner" AutoRefreshIntervalInSeconds="60" ApplicationId="xxxxxxxxxxx" AdUnitId="xxxxx" HorizontalAlignment="Right" Height="50" IsAutoRefreshEnabled="True" Margin="0,0,0,0" VerticalAlignment="Bottom" Width="320"/>

    </SwapChainPanel>

    <!-- Uncomment this if using the app bar in your phone application.
  <Page.BottomAppBar>
        <CommandBar>
            <AppBarButton Icon="Play" AutomationProperties.Name="Sample Button" 
                            AutomationProperties.AutomationId="SampleAppBarButton" Click="AppBarButton_Click" />
        </CommandBar>
    </Page.BottomAppBar>-->
</Page>

用真实应用/单位ID替换xxxxx并运行示例 - 现在当横幅显示时,尝试点击它 - 它不起作用:/ 有没有办法让它可点击? (它没有被任何其他控件覆盖,它可以正常输入,所以我不知道问题是什么)。

1 个答案:

答案 0 :(得分:0)

你解决了问题吗? 这似乎与它是一个c ++应用程序有关,我也遇到了很多问题。 我找到的一个解决方法是将方法添加到控件中:

    adPubcenter->Tapped += ref new Windows::UI::Xaml::Input::TappedEventHandler(this, &OpenGLESPage::OnAdTapped);


void OpenGLESPage::OnAdTapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e){

然后

void OpenGLESPage::OnAdTapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e){
    //Handle touch yourself (ie. opens a game that you have)
    Windows::System::Launcher::LaunchUriAsync(ref new Uri("http://www.windowsphone.com/s?appid=bb8d4ce2-1853-47b6-9b0d-bb1af5a07436"));
}

至少通过这种方式,广告会在点击时执行某些操作。