65.9K
CodeProject 正在变化。 阅读更多。
Home

开始使用Amazon Mobile Ads API

starIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

1.00/5 (1投票)

2013年4月7日

CPOL

7分钟阅读

viewsIcon

18533

开始使用Amazon Mobile Ads API

引言

继应用内购买 API 取得成功之后,我们很高兴推出一项新的盈利选择,为应用开发者提供 Amazon Mobile Ads API。现在,无论您通过付费应用、应用内购买还是移动广告盈利,Amazon 都将为您提供解决方案,帮助您发展业务。

Amazon Mobile Ads API 是一款应用内展示广告 API,提供

  • 具有竞争力的 eCPM 的盈利机会
  • 来自 Amazon 和品牌广告商的高质量广告
  • 通过移动应用分发门户轻松集成和收入跟踪
  • 通过 Amazon 和其他 Android 平台大规模分发

Amazon Mobile Ads API 向美国用户提供广告,并支持 Kindle Fire、Kindle Fire HD 以及 Android 手机和平板电脑上的移动应用。使用 Amazon Mobile Ads API 的应用可以通过任何 Android 平台分发,前提是它们也可在 Amazon 上下载。

要了解如何快速集成 Amazon Mobile Ads API,请继续阅读。本快速入门指南将为您提供将 Amazon Mobile Ads API 集成到您的应用中的分步说明。Amazon Mobile Ads API 目前支持静态图像横幅广告和可扩展的富媒体视频横幅广告。

使用 Amazon Mobile Ads API 之前

适用于 Android 的 Amazon Mobile Ads API 需要 Android 1.6 (Donut) 或更高版本,并假设您已安装带有 Android 开发工具 (ADT) 插件的 Eclipse。还需要熟悉 Android 开发。

账户注册 - 自助服务

http://developer.amazon.com 登录您的分发门户账户。如果您还没有账户,系统会提示您创建一个账户。

提交您的付款信息和税务信息 

通过 付款信息页面 提交您的付款信息,并通过 税务身份调查 提交您的税务信息。(如果您已通过 Amazon Mobile App Distribution Portal 提交此信息,请跳过此步骤)接收广告需要此信息。

获取应用程序密钥

登录后,点击“我的应用”选项卡,然后选择一个现有应用或点击“添加新应用”按钮。创建新应用时,只需填写“应用标题”和“设备类型”字段,然后点击“保存”按钮。下一个屏幕将显示唯一的应用程序密钥值,这是一个 32 个字符的全局唯一字母数字字符串,用于标识您的应用。同一个应用程序密钥可以在不同平台之间使用,但每个不同的应用都必须有一个唯一的应用程序密钥。例如,IMDb 的 Android 手机和 Kindle Fire 应用使用相同的应用程序密钥,但 IMDb 问答应用具有不同的应用程序密钥。应用程序密钥用于快速入门指南 第 3 步 中提到的 setAppKey 调用,您的开发者报告将按应用程序密钥汇总数据。正确使用您的应用程序密钥可以实现准确的跟踪、报告和广告费用累积。

注意:如果您在第二个应用上展示广告时使用了为某个应用颁发的应用程序密钥,我们将不会为您支付因第二个应用上的广告而产生的任何展示次数、点击次数或其他用户操作。

使用 Amazon Mobile Ads API 的应用可以通过任何 Android 平台分发,前提是它们可以通过 Amazon 应用分发计划下载。

在 Android 应用中启用广告

本快速入门指南部分将引导您完成将广告添加到现有 Android 应用 Eclipse 项目的过程

  1. 将 API 集成到您的项目中
  2. 更新 Android Manifest
  3. 设置您的应用程序密钥
  4. 将 Amazon Ad 布局添加到您的应用

注意:如果您选择通过 Amazon Mobile App SDK Eclipse 插件将 Amazon Mobile Ads API 集成到您的项目中,第 1 步和第 2 步将自动完成。请注意,您需要将 Mobile Ads zip 文件解压到与 Apps-SDK zip 文件相同的文件夹中,才能利用此功能。您可以通过访问 此网站 了解有关 Eclipse 插件的更多信息。

1. 将 API 集成到您的项目中

将 Amazon Mobile Ads API Jar 添加到您的 Eclipse 项目

您需要将 amazon-ads-x.y.z.jar 添加到项目的构建路径中。

在 Eclipse 中

  1. 点击项目属性,这将打开属性对话框
  2. 选择“Java 构建路径”
  3. 选择顶部的“库”
  4. 点击“添加外部 JARs...”打开 JAR 选择对话框
  5. 选择 amazon-ads-x.y.z.jar 并点击“打开”

 

图 1:截图,展示了在 Eclipse 环境中将 Amazon Mobile Ads API jar 添加到项目

将 Amazon Ad 资源添加到您的项目

当您通过 Android XML 布局文件构建用户界面时,需要将 res 目录的内容复制到项目的根目录。这将把 Ads 资源的內容合并到您的项目中。例如,如果您的项目根目录是 HelloAds,那么项目 res 目录的内容应包含 Amazon 文件

./HelloAds/res/values/amazon_ads_attr.xml

2. 更新 Android Manifest

Amazon MRAID 浏览器活动

Amazon Mobile Ads API 要求在您的应用的 AndroidManifest.xml 文件中声明 com.amazon.device.ads.MraidBrowsercom.amazon.device.ads.VideoActionHandler。这是支持富媒体广告所必需的。请在 AndroidManifest.xml 文件的 application 标签内添加以下 MraidBrowserVideoActionHandler 声明

<activity android:name="com.amazon.device.ads.MraidBrowser" android:configChanges="keyboardHidden|orientation"/>

<activity android:name="com.amazon.device.ads.VideoActionHandler" android:configChanges="keyboardHidden|orientation|screenSize"/>

权限

向 Amazon Mobile Ad Network 发送广告请求需要 INTERNET 权限。此外,我们建议您包含 FINE_LOCATIONCOARSE_LOCATION,NETWORK_STATEWIFI_STATE 的权限。这些附加权限允许 Amazon 为您的用户提供相关、有针对性的广告,这可能会带来更高的 CPM。这些权限需要在 AndroidManifest.xml 文件中的 application 标签外部声明。请参阅下面的权限声明

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Manifest 示例

有关这些声明如何实现到 AndroidManifest.xml 文件的说明,请参阅下面的示例

   <?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.company"
       android:versionCode="1"
       android:versionName="1.0" >
       <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="13" />
       <application
           android:icon="@drawable/ic_launcher"
           android:label="@string/app_name" >
          <activity
              android:name=".AdTestAppActivity"
              android:label="@string/app_name" >
              <intent-filter>

                  <action android:name="android.intent.action.MAIN" />
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>    
          <activity android:name="com.amazon.device.ads.MraidBrowser" android:configChanges="keyboardHidden|orientation"/> 
          <activity android:name="com.amazon.device.ads.VideoActionHandler" android:configChanges="keyboardHidden|orientation|screenSize"/> 
      </application>
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  
  </manifest>

3. 设置您的应用程序密钥

您必须设置应用程序密钥才能接收广告。这使得 Amazon 能够跟踪您的展示次数和点击次数,并将它们与您的账户关联起来。您应该让您的应用每次启动时都使用来自 Amazon Mobile App Distribution 的应用程序密钥调用 theAdRegistration.setAppKey() 函数。您可以将此调用添加到 Activity 的 onCreate 函数或某个其他应用初始化代码中。以下是 onCreatesetAppKey 的示例

public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);

  AdRegistration.setAppKey(getApplicationContext(),
      "0123456789ABCDEF0123456789ABCDEF");
}

4. 将 Amazon Ad 布局添加到您的应用

要检索和显示广告,您将使用 AdLayout 实例,该实例可以在代码或 XML 中创建。要加载广告,请调用 AdLayout.loadAd 方法,该方法使用异步任务从 Amazon Mobile Ad Network 请求广告。一次只能加载或显示一个广告。如果由于另一个待处理的广告请求而被忽略,AdLayout.loadAd 将返回 false。要检查是否有广告正在加载,您可以调用 AdLayout.isAdLoading 方法。请求广告时,您还可以设置一些可选的定位参数;这些参数 在此处 介绍。

下面是在 Activity 的 onCreate 函数中放置的简化 AdLayout.loadAd 调用的示例

   @Override
   public void onCreate(Bundle savedInstanceState) 
   {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       AdRegistration.setAppKey(getApplicationContext(),
           "0123456789ABCDEF0123456789ABCDEF");
 
       // Programmatically create the AmazonAdLayout       
  this.adView = new AdLayout(this, AdLayout.AdSize.AD_SIZE_320x50);
      LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout);
    // Set the correct width and height of the ad.
  LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
         LinearLayout.LayoutParams.MATCH_PARENT,
         LinearLayout.LayoutParams.MATCH_PARENT);
      layout.addView(this.adView,lp);
 
      // If you declared AdLayout in your xml you would instead
      // replace the 3 lines above with the following line
      // this.adView = (AdLayout) findViewById( R.id.adview );
    
      this.adView.loadAd(new AdTargetingOptions()); // async task to retrieve an ad
  }

这是 Activity 的 onDestroy 函数

  @Override
  public void onDestroy() {
      super.onDestroy();
      this.adView.destroy();
  }

可选 - 将 AdLayout 添加到相应的布局 XML 文件

您也可以将 AdLayout 添加到 XML 布局文件中。您需要首先将 Amazon 命名空间添加到根布局,并将 AdLayout 添加到您的 layout.xml 文件中。在 AdLayout 的定义中,Amazon:adSize 属性是必需的。例如

   <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:Amazon="http://schemas.android.com/apk/res/<type your package name>"
       android:orientation="vertical"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       >
       <com.amazon.device.ads.AdLayout  
           android:id="@+id/adview" 
          android:layout_width="320dp" 
          android:layout_height="50dp" 
          Amazon:adSize="320x50"/>
   </ LinearLayout>

Amazon Mobile Ads API samples 目录包含了上述 SimpleAdSample 的完整源代码和项目文件。

可选 - 设置广告请求超时值

广告请求调用具有 10 秒的默认超时。超过超时阈值后,将调用 AdListener.onAdFailedToLoad 事件。可以使用 AdLayout.setTimeout 函数更改默认超时值,该函数以毫秒为参数。

示例

  AdLayout adLayout = new AdLayout();
  adLayout.setTimeout(20000); //20 seconds

接下来做什么?

  1. 请阅读以下章节
  2. 编译并运行位于 /Ads/samples 目录中的两个示例应用。SimpleAdSample 演示了如何加载广告的基础知识,而 FloatingAdSample 演示了如何加载从屏幕底部浮出的广告。

要了解有关 Amazon Mobile Ads API 的更多信息,请点击 此处。如果您已准备好开始,请 立即下载 Amazon Mobile Ads API。     

© . All rights reserved.