如何在Android应用程序中实现Admob AdView

7
我想在我的应用程序中使用Admob广告。我已经下载了SDK并按照步骤进行操作。有时候,我会得到一个广告,但大多数情况下,我会在LogCat中看到一条消息,说“服务器没有找到任何广告”或类似的内容。Admob网站上显示测试模式已启用,我认为我可能做错了什么。我在哪里可以找到逐步指南来在Android应用程序中插入admob广告? Admob开发者网站缺乏相关信息。
此外,假设一切顺利,我现在想部署应用程序。如何关闭Admob广告的测试模式?
谢谢。

他们以简单的方式更新了这篇文章,请查看 https://developers.google.com/mobile-ads-sdk/docs/android/fundamentals - swiftBoy
5个回答

8

下载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>

现在打开调用此布局的.java文件, 创建你的AdView。
AdView adView = (AdView)this.findViewById(R.id.adView1);
adView.loadAd(new AdRequest());

这是我的做法,目前为止效果不错。

抱歉英语不好,因为写了太多代码而缺乏睡眠!


4

请按照此网站上的说明进行操作: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中获取此值。


1
我认为需要注意的是,对于addTestDevice提供的值实际上是设备ID的MD5哈希值(如果在Manifest.xml中有权限的话)。我不确定它如何分配这些值,但测试和记录可能会很有趣。 - Tom

1

只需在Android清单文件中添加一个权限:

<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
} );  

最新版本的AdMob SDK(指6.4.1)似乎没有包含AdManager。另外,为什么需要添加位置权限呢? - Tom

1
你不需要以编程方式调用它。
我花了一些时间才明白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" />

希望它能帮助你们,伙计们。

保罗·米格尔·阿尔梅达


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接