admob 广告分析

news2025/8/12 7:37:02

1、测试广告集成,官方文档 https://developers.google.com/admob/android/quick-start?hl=zh-cn

dependencies {
  implementation("com.google.android.gms:play-services-ads:23.3.0")
}

2、广告集成,集成测试激励广告。

public class MainActivity extends AppCompatActivity {
    String TAG = "admob";
    private RewardedAd rewardedAd;
    Context context;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        context = this;
        new Thread(() -> {
                    // Initialize the Google Mobile Ads SDK on a background thread.
                    MobileAds.initialize(this, initializationStatus -> {});
                }).start();


        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AdRequest adRequest = new AdRequest.Builder().build();
                RewardedAd.load(context, "ca-app-pub-3940256099942544/5224354917",
                        adRequest, new RewardedAdLoadCallback() {
                            @Override
                            public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                                // Handle the error.
                                Log.d(TAG, loadAdError.toString());
                                rewardedAd = null;
                            }


                            @Override
                            public void onAdLoaded(@NonNull RewardedAd ad) {
                                rewardedAd = ad;
                                Log.d(TAG, "Ad was loaded.");
                                if (rewardedAd != null) {
                                    Activity activityContext = MainActivity.this;
                                    rewardedAd.show(activityContext, new OnUserEarnedRewardListener() {
                                        @Override
                                        public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
                                            // Handle the reward.
                                            Log.d(TAG, "The user earned the reward.");
                                            int rewardAmount = rewardItem.getAmount();
                                            String rewardType = rewardItem.getType();
                                        }
                                    });
                                } else {
                                    Log.d(TAG, "The rewarded ad wasn't ready yet.");
                                }


                                rewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() {
                                    @Override
                                    public void onAdClicked() {
                                        // Called when a click is recorded for an ad.
                                        Log.d(TAG, "Ad was clicked.");
                                    }


                                    @Override
                                    public void onAdDismissedFullScreenContent() {
                                        // Called when ad is dismissed.
                                        // Set the ad reference to null so you don't show the ad a second time.
                                        Log.d(TAG, "Ad dismissed fullscreen content.");
                                        rewardedAd = null;
                                    }


                                    @Override
                                    public void onAdFailedToShowFullScreenContent(AdError adError) {
                                        // Called when ad fails to show.
                                        Log.e(TAG, "Ad failed to show fullscreen content.");
                                        rewardedAd = null;
                                    }


                                    @Override
                                    public void onAdImpression() {
                                        // Called when an impression is recorded for an ad.
                                        Log.d(TAG, "Ad recorded an impression.");
                                    }


                                    @Override
                                    public void onAdShowedFullScreenContent() {
                                        // Called when ad is shown.
                                        Log.d(TAG, "Ad showed fullscreen content.");
                                    }
                                });
                            }
                        });
            }
        });
    }
}

3、查看广告activity

adb shell dumpsys avtivity top

TASK 10266:com.mycode.admobdemo id=73 userId=0
  ACTIVITY com.mycode.admobdemo/com.google.android.gms.ads.AdActivity 90fc91c pid=13407
...

View Hierarchy:
      DecorView@a5b4167[AdActivity]
        android.widget.LinearLayout{df84975 V.E...... ........ 0,0-1080,2088}
          android.view.ViewStub{d73fddf G.E...... ......I. 0,0-0,0 #10201b3 android:id/action_mode_bar_stub}
          android.widget.FrameLayout{66808ac V.E...... ........ 0,0-1080,2088 #1020002 android:id/content}
            com.google.android.gms.ads.internal.overlay.h{fc4f65f V.E...... ........ 0,0-1080,2088 #3e8}
              com.google.android.gms.ads.internal.webview.ab{88e3228 V.E...... ........ 0,0-1080,2088}
                com.google.android.gms.ads.internal.video.s{b373a2c V.E...... ........ 0,0-1080,2088}
                  android.widget.FrameLayout{4455cf5 V.E...... ........ 0,594-1080,1204}
                    com.google.android.gms.ads.internal.video.exoplayer.n{e596a8a V.ED..... ........ 0,1-1080,608}
                com.google.android.gms.ads.internal.webview.ai{b4498fb VFEDHVC.. .F...... 0,0-1080,2088 aid=2}
                android.widget.TextView{ff3cd18 V.ED..... ........ 465,0-614,56}
              com.google.android.gms.ads.internal.overlay.r{bdbd371 VFE...C.. ........ 0,0-0,0}
                android.widget.ImageButton{16ba556 GFED..C.. ......I. 0,0-0,0}
        android.view.View{e971d0a V.ED..... ........ 0,2088-1080,2220 #1020030 android:id/navigationBarBackground}

4、Layout Inspector查看布局
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056635.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习大数据DAY41 Hive 分区表创建

目录 分区表 分区表应用场景 oracle 分区表种类 oracle 分区-范围分区 oracle 分区-列表分区 oracle 分区-散列分区 oracle 分区-组合分区 oracle 分区-分区表操作 hive 分区-创建分区表 hive 分区-分区表操作 hive 分区-动态分区表配置 上机练习 分区表 分区是将一…

常见古典密码介绍

文章目录 Vigenre 密码变异凯撒摩斯密码栅栏密码加密方式一加密方式二 Caesar和ROT13的区别ROT13加密原理ROT13查找表 Vigenre 密码 由于频率分析法可以有效的破解单表替换密码,法国密码学家维吉尼亚于1586年提出一种多表替换密码,   即维吉尼亚密码&…

什么是局域网管理软件?这款局域网管理软件简直太好用了丨好物分享

在信息技术日新月异的今天,企业的内部网络管理如同古代战场上的排兵布阵,需有精良之器以应对复杂多变的局势。 局域网,作为企业内部信息交流与资源共享的重要平台,其管理效率与安全性直接影响到企业的运营与发展。 一、局域网管理…

Docker-安装软件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装MySQL(一)拉取MySQL镜像(二)运行MySQL容器(1)数据卷概念 (三&#x…

开发 LLM 支持的应用程序:Azure 上的 Llama 2(5/n)

微软与 Meta 联手在 Azure 上提供 Meta 的开源大型语言模型 (LLM) Llama 2,打开了闸门!信不信由你,这是一件大事。 亚马逊的 AWS 于去年年底发布了 Amazon SageMaker Jumpstart,它与 Azure 类似,支持部署开源模型供公共…

常见而不容忽视,电器中微型紧固件的四大影响

技术和创新催生了数以百万计的电器,它们已成为每个家庭和人类日常使用的一部分。从微波炉和冰箱到笔记本电脑和智能手机,这些部件的技术影响正在迅速增长,成为现代生活的一部分。 在许多人的不经意间,这些功能强大的发明为我们许多…

[Linux#42][线程] 锁的接口 | 原理 | 封装与运用 | 线程安全

互斥量 mutex • 大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间 内,这种情况,变量归属单个线程,其他线程无法获得这种变量。 • 但有时候,很多变量都需要在线程间共享,这…

代码随想录算法训练营第二十一天(二叉树 八)

今天是二叉树复习最后一天! 力扣题部分: 669. 修剪二叉搜索树 题目链接:. - 力扣(LeetCode) 题面: 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low…

使用 Dify 和 AI 大模型理解视频内容:Qwen 2 VL 72B

接下来的几篇相关的文章,聊聊使用 Dify 和 AI 大模型理解视频内容。 本篇作为第一篇内容,以昨天出圈的“黑神话悟空制作人采访视频”为例,先来聊聊经常被国外厂商拿来对比的国产模型:千问系列,以及它的内测版。 写在…

Linux非VP扩容方案

Linux系统非VP扩容方案 描述:现有虚拟机磁盘1TB 容量不够,需要扩容。 采用:https://bbs.sangfor.com.cn/forum.php?modviewthread&tid110403 扩容失败。原因是没有VP 和LV 解决方案: 1,查看分区 cat /proc/p…

鸿蒙内核源码分析(中断概念篇) | 海公公的日常工作

关于中断部分系列篇将用三篇详细说明整个过程. 中断概念篇 中断概念很多,比如中断控制器,中断源,中断向量,中断共享,中断处理程序等等.本篇做一次整理.先了解透概念才好理解中断过程.本篇的主角是海公公,用…

全国计算机二级C语言笔试试题及答案

一、选择题(每小题2分,共70分)   下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。 请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。   (1)下列叙述中正确的是 A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 …

day06-SpringBootWeb请求响应

前言 在上一次的课程中,我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。 其实呢,是我们在浏览器发起请求,请求了我们的…

[Meachines] [Easy] Bastion SMB未授权访问+VHD虚拟硬盘挂载+注册表获取NTLM哈希+mRemoteNG远程管理工具权限提升

信息收集 IP AddressOpening Ports10.10.10.134TCP:22, 135, 139, 445, 5985, 47001, 49664, 49665, 49666, 49667, 49668, 49669, 49670 $ nmap -p- 10.10.10.134 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH fo…

Bonree ONE 3.0:全域可观测 运维新境界

2024年8月16日,备受瞩目的Bonree ONE 3.0产品发布会上海站在上海中心大厦隆重举行。此次发布会以”Take IT Easy“——全域可观测,运维新境界为主题,博睿数据正式发布了一体化智能可观测平台Bonree ONE 3.0版本。Bonree ONE 3.0凭借领先的全域…

超声波清洗机哪个品牌好用?值得入手的超声波清洗机品牌推荐

许多人初次使用超声波清洗机的场景,往往发生在眼镜店内。它能灵巧穿梭于眼镜鼻托等细微缝隙间,实现彻底清洁,成效显著。这不仅限于眼镜,各式小件物品同样能享受到这份深度洁净的待遇。尽管超声波清洗机或许并非日常生活中的绝对必…

LeetCode.80.删除有序数组中的重复项II

题目描述: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间…

【MySQL-23】万字总结<InnoDB引擎>——【逻辑存储结果&架构(内存结构,磁盘结构,后台线程)&事务原理&MVCC】

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

【nginx】详细详细超详细,包括编译安装nginx+升级+回滚+核心配置+高级配置+反向代理+Nginx Rewrite相关功能等等

理论部分: 企业高性能Web服务器Nginx是一个开源的、高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP协议。它由俄罗斯人Igor Sysoev开发,并在2004年以BSD-like协议发布。Nginx因其卓越的性能、稳定性、丰富的功能集以及简单的配置而…

连锁美业门店收银系统怎么选?什么样的美业系统好用?美业管理系统源码分享

通过“PCiPAD手机APP微信小程序”的便捷功能操作, 提升预约服务、 会员管理、 收银管理、 库存管理、 客勤维护、员工管理、 排班管理等流程效率, 让门店员工的工作重心回归到服务质量上。 ▲ 小程序 ▲ 手机APP ▲ PC管理后台