如何获取适用于 adMob 的测试广告横幅并测试插页式广告?

2024-02-29

我正在尝试设置 adMob 广告。我有两个问题:

1)我是否正确使用了 adListener 接口? 2) 为什么我看不到插页式广告?

让我们从 adListener 开始。据我从说明中了解到,adListener 是一个接口。所以我创建了一个界面。

import com.google.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public interface AdListener {
    public void onReceiveAd(AdView ad);
    public void onFailedToReceiveAd(AdView ad, AdRequest.ErrorCode error);
    public void onPresentScreen(AdView ad);
    public void onDismissScreen(AdView ad);
    public void onLeaveApplication(AdView ad);
}

然后在我的主类中,我实现了 AdListener,完成后系统会提示我添加未实现的方法(接口中的所有方法)。

public class MainActivity extends Activity implements AdListener {
// other code for the body (here). Just showing the methods and implement

@Override
    public void onReceiveAd(AdView ad) {
        Log.d(TAG, "onReceiveAd");
        Toast.makeText(this, "onReceiveAd", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onFailedToReceiveAd(AdView ad, ErrorCode error) {
        Log.d(TAG, "onFailedToReceiveAd");
        Toast.makeText(this, "onFailedToReceiveAd", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPresentScreen(AdView ad) {
        Log.d(TAG, "onPresentScreen");
    }

    @Override
    public void onDismissScreen(AdView ad) {
        Log.d(TAG, "onDismissScreen");
    }

    @Override
    public void onLeaveApplication(AdView ad) {
        Log.d(TAG, "onLeaveApplication");
    }
}

我认为这没有任何作用的原因是我没有收到我的日志。我添加了祝酒词以双重确认我没有错过任何东西。我认为我还缺少另一个步骤才能实现这一点。

现在是广告部分。我认为我很好地遵循了说明,而且我的横幅实际上有效。但我的插页式广告不起作用。这就是我的横幅和插页式广告。

从我的横幅 xml 中的代码片段开始

<com.google.android.gms.ads.AdView 
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            ads:adUnitId="I_ADDED_CORRECT_ADUNIT_ID"
            ads:adSize="BANNER" />

在我的主要活动中,我有以下代码。再次,我想看看测试广告:

        // setup ad banner and interstitial
        final TelephonyManager tm = (TelephonyManager)getBaseContext()
            .getSystemService(Context.TELEPHONY_SERVICE);
        String testDeviceId = tm.getDeviceId();
        Log.d(TAG, "testDeviceId retrieved(" + testDeviceId + ")");

        // create interstitial
        interstitial = new InterstitialAd(this);
        interstitial.setAdUnitId("I_ADDED_CORRECT_ADUNIT_ID");

        // ad banner
        adView = (AdView)this.findViewById(R.id.adView);
        // request test interstitial ads
        AdRequest adRequestInterstitial = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .addTestDevice(testDeviceId)
            .build();

        // request test banner ads
        AdRequest adRequestBanner = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .addTestDevice(testDeviceId)
            .build();

        //load interstitial ads
        interstitial.loadAd(adRequestInterstitial);
        displayInterstitial();

        // load banner ads
        adView.loadAd(adRequestBanner);

    //NOTE: the above code is all in onCreate(). 
    //diaplayInterstitial is outside of onCreate()

    public void displayInterstitial() {
        if (interstitial.isLoaded()) {
            Log.d(TAG, "displayInterstitial()");
            interstitial.show();
        }
    }

让我们看看还有什么要告诉你的?噢,是的!我还已经在清单中设置了权限。权限 = 互联网、ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE、READ_PHONE_STATE。

我转到项目属性并添加了 google-play-services_lib

这就是我的整个设置!我尝试了很多方法,因为我对可能出现的问题有一些“感觉”。首先,我认为也许不能同时请求测试横幅广告和测试广告插页式广告。所以我将插页式代码移至 onStart()。但后来,我不确定这是否必要、有益还是更糟(而且它不起作用!)。我的第二个想法是一切正常,一旦我发布我的应用程序,一切都会好起来的。但无论如何,我的日志不适用于 AdListener。如果我能做到这一点,我想我可以更有信心地开始验证正在发生的事情。

预先感谢您的帮助。

Log SS enter image description here


好的,这里有几个问题。

1)不,您没有正确使用 AdListener 接口。 不要创建自己的界面。 AdMob 已经提供了 AdListener 接口。但是,您确实需要实施它。

注意,我个人会创建 AdListener 的匿名实现,而不是将其添加到 Activity 中,但这是您自己的设计。

接下来,您需要将侦听器附加到 AdView。所以在你的#onCreate中

// load banner ads
adView.setAdListener(new AdListener() {
   ...
});
adView.loadAd(adRequestBanner);

2) 您不太可能看到带有上述代码的任何插页式广告,因为您试图在请求后立即显示。在这么短的时间内下载插页式广告的可能性极小。无论如何,您确实不想在每次创建 Activity 时都显示插页式广告,这是一种糟糕的用户体验。

将显示 Interstitial() 的调用移至应用程序生命周期的稍后某个时间点,例如游戏会话结束时或关卡之间等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取适用于 adMob 的测试广告横幅并测试插页式广告? 的相关文章

  • 按钮点击和声音之间的延迟

    我不太明白为什么按钮点击和声音之间有延迟 以下是我的代码 button Button findViewById R id playBtn final MediaPlayer playButtonClick MediaPlayer creat
  • 如何在flutter android插件包中处理android生命周期

    我需要知道 android 插件包中 flutter 应用程序视图的当前状态 现在 我观察颤振视图中的状态https docs flutter io flutter widgets WidgetsBindingObserver class
  • 从ndk中的不同线程调用java方法

    我正在尝试使用 android 的 NDK 从 C 中的独立线程调用 java 静态方法 到目前为止我已经 JNIEnv env AttachJava jclass cls2 env gt FindClass com actvt showd
  • Android Volley:意外响应代码 405

    我的 Android Volley JsonObjectRequest 遇到 onErrorResponse 并出现以下问题 BasicNetwork performRequest Unexpected response code 405
  • Android 模拟器在 Windows 7 64 位上崩溃

    我是一名 Android 开发新手 到目前为止只在我的 Android 手机上运行了 Hello World 当我尝试在模拟器模式下运行我的应用程序时 我看到带有键盘和接听 挂断按钮的模拟器窗口 但在我的应用程序运行之前我收到一个窗口对话框
  • Google Play 服务,登录成功,但创建房间时出错

    我正在尝试 google play 服务示例 特别是 ButtonClicker2000 从 logcat 登录过程也正常 但我有另一个错误 06 01 22 43 15 478 D ButtonClicker2000 1565 Sign
  • Android 信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR) libwebviewchromium.so

    对于 android 4 4 我多次收到 Native crash at system lib libwebviewchromium so 错误 以下是设备包括 Xperia Z1 SO 01F 16 30 2 Galaxy Tab4 7
  • 如何以编程方式关闭画中画

    我在使用画中画模式时遇到了这个问题 当从 PIP 本身以外的其他位置再次打开 Activity 时 我想关闭 PIP 画中画 不是来自关闭按钮 我想要与 youtube 相同的场景 即当用户单击 PIP 画中画 时 它会打开相同的活动 但是
  • 如何在我的谷歌上嵌入转弯导航

    我想在我的 Android 应用程序中嵌入逐段导航 请给我一个教程或如何执行此操作的想法 提前致谢 如果您不固定使用谷歌地图 您可以使用基于 OpenStreetMap 地图的维基百科版本 的 SDK 有几个不错的 SDK 提供商 skob
  • 无法读取第 0 行,第 -1 列

    我正在尝试复制使用 SQLite 管理器创建的数据库 我在其中执行了以下操作 CREATE TABLE android metadata locale TEXT DEFAULT en US and INSERT INTO android m
  • android gradle插件-离线安装

    我必须在离线电脑上安装 android gradle 插件 通过谷歌搜索 我了解到我可以通过本地 Maven 存储库来做到这一点 但从不成功的尝试和所有关于这个问题的质量保证中我知道这并不简单 我从来没有和maven一起工作过 有经验的人可
  • Android 10 中没有设备筛选器的 USB_DEVICE_ATTACHED

    我正在开发一个 Android 应用程序 它在清单中为 BroadcastReceiver 注册了四个意图过滤器 这些都是 android hardware usb action USB DEVICE ATTACHED android ha
  • 布局聊天气泡问题:TextView 占满整个屏幕

    我正在研究泡泡聊天 我使用具有两种布局的适配器 一种用于传入消息 另一种用于我的消息 适配器工作正常 我的问题在于传入布局 无法很好地显示传入时间文本 当消息文本增长时 会填满屏幕的整个宽度 并隐藏消息时间的文本 第一个问题 如何才能实现这
  • 获取接收者的设备令牌以在 Firebase 中发送通知

    所以我正在学习如何使用 firebase 发送设备到设备的通知 我看到了这个answer https stackoverflow com a 42548586 5237289发送通知 看起来很简单 现在 我知道要获取发件人的令牌 它应该如下
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • 谷歌地图URL中参数的含义是什么

    我正在 Android 上使用 Webkit 浏览器 我想在以下 URL 中获得一个红色 A 符号
  • 使用 Android O 的“android:fontFamily”时出现错误“文件名必须以 .xml 结尾”?

    Android O 引入了一项新功能 XML 中的字体 它允许您将字体用作资源 我正在创建font资源文件中的文件夹 由安卓开发者 https developer android com preview features working w
  • 如何像UCBrowser一样使用webview打开url

    我是安卓新手 我正在尝试制作一个示例应用程序来在 webview 中打开网站 问题是 网站以桌面模式打开 如何才能像UC浏览器 手机模式 一样打开网站 尝试这个 它应该有效 webview1 getSettings setJavaScrip
  • 无法 ACTION_VIEW 外部存储上的文件

    我的 Android 手机的外部存储中有一个文件 在本例中是模拟的 知道通往它的路径和 或拥有File代表它的对象 我如何使用Intent在适当的应用程序中打开它 我尝试的第一件事是 startActivity new Intent Int
  • Android 可扩展列表视图随机播放子项

    你好 我正在使用 Android Expandable listview 并用不同的视图在其中膨胀子视图 我遇到的问题是 当我展开视图然后打开另一个父视图时 布局中的子视图会变得混乱并在代码中膨胀错误的布局 这是我的两个项目的示例代码 这是

随机推荐

  • 如何在msbuild文件中给出相对路径?

    我正在编写一个 msbuild 文件来使用 galio 运行测试 现在 我需要给出
  • 如何在汇编中通过字符串进行索引

    给定变量 var1 db abcdefg NULL 我将如何执行循环来导航每个字母 在 C 中 您可以在循环内执行类似 var x 的操作 然后每次递增 x 有任何想法吗 在 C 和 C 中 字符串以 NUL 结尾 这意味着将 ASCII
  • 我可以向量化这个Python代码吗?

    我编写了这段 python 代码来获取标签的邻居 一组共享一些公共属性的像素 标签的邻居被定义为位于边界另一侧的其他标签 相邻标签共享边界 所以 我写的代码可以工作 但速度非常慢 segments It is a 2 dimensional
  • 删除 sourceSets.main.runtimeClasspath 中的 jar

    我的 gradle 中有这个 sourceSets main compileClasspath configurations provided runtimeClasspath configurations provided test co
  • 从选择框中删除重复条目

    我如何使用 jQuery 删除重复项
  • 如何制作在 iOS 上的 VLC 中播放的音乐文件的 URL?

    我想通过我的网站向 iPhone 和 iPad 用户提供 MP3 和其他文件格式 VLC 的 iOS 应用程序似乎符合要求 但他们说 Additionally third party websites and apps may includ
  • 从 VBA 项目中删除密码

    如何以编程方式从 Excel VBA 项目中删除 已知 密码 需要明确的是 我想从 VBA 项目中删除密码 而不是从工作簿或任何工作表中删除密码 删除 VBA 项目密码的另一种方法是 使用十六进制编辑器打开 xls 文件 即十六进制编辑ht
  • 如何调试 Captive Portal 中的浏览器?

    强制门户有一个浏览器 当您尝试连接到无线网络时 该浏览器有时会打开 有谁知道我该如何调试它 我已经尝试过的 我尝试运行模拟器 但模拟器无法打开门户 我尝试过将 iPhone 连接到我的 Mac 并使用 Safari 开发进行调试 但这仅在
  • 如何在雪豹上安装gem pg

    我需要在雪豹上安装 gem pg 因为我正在 Rails 代码库上运行 rake 我没有使用 postgres 这是我收到的错误 sudo gem install pg Password Sorry try again Password B
  • 自动映射器有什么用?

    What s 自动映射器 http www codeplex com AutoMapper for 它将如何帮助我处理域和控制器层 asp net mvc 也许一个例子会有所帮助 假设您有一个很好标准化的数据库模式 如下所示 Orders
  • Python——词法分析和标记化

    我希望加快我的发现过程 因为这是我第一次涉足词法分析领域 也许这甚至是一条错误的道路 首先 我将描述我的问题 我有非常大的属性文件 大约 1 000 个属性 经过提炼后 实际上只有大约 15 个重要属性 其余属性可以生成或很少更改 因此 例
  • 在加载时应用选择背景颜色?

    请查看以下链接以查看我的代码的运行情况 http codepen io DigitalSquid pen mAkuC http codepen io DigitalSquid pen mAkuC 如何使背景颜色出现在页面加载时 on win
  • MVC 模式中的“Hello World”

    在面试某家公司的时候 我被问到了这个问题 你知道哪些设计模式 然后我被告知基于 MVC 设计模式编写最简单的 hello world 应用程序 我想出了一个 JavaScript 程序 var arr a b c d this is an
  • 应用 pyspark ALS 的“recommendProductsForUsers”时出现 StackOverflow 错误(尽管可用 >300GB RAM 的集群)

    寻找专业知识来指导我解决以下问题 背景 我正在尝试使用受启发的基本 PySpark 脚本这 例子 https github com GoogleCloudPlatform spark recommendation engine blob m
  • Laravel 至少需要一个字段

    我有两个字段billable option and billable option yes 我想验证至少一个字段是必填字段 我努力了 this gt validate request billable option gt required
  • 获取linux可执行文件加载地址(__builtin_return_address和addr2line)

    我正在编写一些代码来存储每个内存分配的回溯 然后 我将这些列表写入文件以进行离线分析 在win32中我使用 AddressOfReturnAddress然后手动创建回溯 由于我使用的每次运行的地址都是随机的GetModuleInformat
  • 无法在 Crashlytics 中获取本机崩溃的堆栈跟踪

    我有一个 Android 项目 其中包含本机库 so 我已将 firebase crashlytics 集成到我的项目中 我能够在 firebase crashlytics 中获取 Java 崩溃的崩溃转储 但是 如果发生本机崩溃 堆栈跟踪
  • 如何定义具有键类型和值类型之间相关性的 Map,而它们都是并集

    这是显示我想要实现的目标的示例 除了两个问题之外 它几乎可以工作 设置不显示错误代码的错误 Immer Draft 类型 或任何 DeepWritable 实用程序类型 完全搞乱了这个技巧 基本上在我看来 我在这里所做的事情并不是什么真正的
  • 在 scrapyd 中启用 HttpProxyMiddleware

    阅读scrapy文档后 我认为HttpProxyMiddleware是默认启用的 但是当我通过 scrapyd 的 webservice 接口启动蜘蛛时 HttpProxyMiddleware 未启用 我收到以下输出 2013 02 18
  • 如何获取适用于 adMob 的测试广告横幅并测试插页式广告?

    我正在尝试设置 adMob 广告 我有两个问题 1 我是否正确使用了 adListener 接口 2 为什么我看不到插页式广告 让我们从 adListener 开始 据我从说明中了解到 adListener 是一个接口 所以我创建了一个界面