【问题标题】:How to implement Admob AdView in Android app如何在 Android 应用中实现 Admob AdView
【发布时间】:2010-08-30 20:43:11
【问题描述】:

我想在我的应用中使用 Admob。我已经下载了 SDK 并按照步骤操作。有时,我会收到一个广告作为回报,但大多数时候,我会在 LogCat 中收到一个条目,上面写着“服务器没有找到任何广告”或类似的内容。 Admob 网站说,测试模式已启用。我想我可能做错了什么。在哪里可以获得在 Android 应用中插入 admob 广告的分步指南? Admob 开发者网站相当缺乏。

另外,让我们假设一切顺利,我现在想部署应用程序。如何关闭 Admob 广告的测试模式?

谢谢。

【问题讨论】:

标签: android admob logcat ads


【解决方案1】:

下载 AdMob jar 文件http://www.admob.com/my_sites/

在您的项目上创建一个包并将其命名为“libs”并将此文件 AdMob.jar 粘贴到那里

右键单击您的项目并选择库,在其中添加您刚刚保存的 ADMOB.jar 的路径。

如果您在 XML 上创建 AdView,则可以添加此行。

这是一个测试示例。当您从 ADMob 获得自己的 ID 后,将其放在 adUnitID 上并擦除测试行。

 com.google.ads.AdView

    android:id="@+id/adView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    ads:adSize="BANNER"
    ads:adUnitId="a14f59e5c442767"
    ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
    ads:loadAdOnCreate="true"

</com.google.ads.AdView>

现在转到调用此布局并创建 AdView 的 .java 文件

AdView adView = (AdView)this.findViewById(R.id.adView1);
adView.loadAd(new AdRequest());

我就是这样做的,到目前为止效果很好。

抱歉英语不好,写了很多代码,没有睡觉!

【讨论】:

    【解决方案2】:

    只需按照本网站上的说明进行操作: http://developer.admob.com/wiki/Android#AdMob_Android_SDK

    我猜你没有为你的设备或模拟器激活测试模式?!

    AdManager.setTestDevices( new String[] {                 
       AdManager.TEST_EMULATOR,             // Android emulator
       "E83D20734F72FB3108F104ABC0FFC738",  // My T-Mobile G1 Test Phone
    } );  
    

    【讨论】:

      【解决方案3】:

      似乎这可能已更改为

      AdRequest request = new AdRequest();
      request.addTestDevice(AdRequest.TEST_EMULATOR);
      request.addTestDevice("E83D20734F72FB3108F104ABC0FFC738"); // My T-Mobile G1 test phone
      

      http://code.google.com/mobile/ads/docs/android/intermediate.html

      根据 Tom 在下方的评论,为 addTestDevice 提供的值实际上是设备 ID 的 MD5 哈希值。你可以从 logcat 中得到这个。

      【讨论】:

      • 我认为需要注意的是,为addTestDevice 提供的值实际上是设备 ID 的 MD5 哈希(如果可用)(基于 Manifest.xml 中的权限)。我不确定它如何分配这些值,但测试和记录可能会很有趣。
      【解决方案4】:

      只需向 Android mainfest 添加权限:

      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
      

      检查一次。

      然后添加这段代码:

      AdManager.setTestDevices( new String[] {                 
         AdManager.TEST_EMULATOR,                 // Android emulator
         "E83D20734F72FB3108F104ABC0FFC738",      // My T-Mobile G1 Test Phone
      } );  
      

      【讨论】:

      • AdManager 似乎未包含在最新版本的 AdMob SDK(参考 6.4.1)中。还有,为什么要添加位置权限?
      【解决方案5】:

      您不需要以编程方式调用它。

      我花了一段时间才知道什么设备是 AdMob 的 sdk 期待什么,因为我认为它与真实设备有关,例如 (adb devices)

      但这里有一条来自官方文档的评论来澄清它。

      会有一条日志消息,其中包含添加当前所需的代码 设备到测试设备列表

      你可能会收到类似的消息

      I/Ads(26674): To get test ads on this device, call adRequest.addTestDevice("F1254CDFBA84BDC27F5C7C6E12445D06");
      

      之后您要做的就是将此 ID 放入您的布局 xml 中,如下所示

      <com.google.ads.AdView
          android:layout_alignParentBottom="true"
          android:id="@+id/adView"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          ads:adSize="BANNER"
          ads:adUnitId="@string/publisherId"
          ads:loadAdOnCreate="true"
          ads:testDevices="TEST_EMULATOR, F1254CDFBA84BDC27F5C7C6E12445D06" />
      

      希望对大家有所帮助

      保罗·米格尔·阿尔梅达

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-18
        相关资源
        最近更新 更多