首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自动从admob测试广告id更改为正确的横幅广告id生成签名的apk

在开发和发布 Android 应用时,使用 AdMob 广告是一个常见的需求。在开发阶段,通常会使用 AdMob 提供的测试广告 ID,以确保广告集成正确且不会违反 AdMob 的政策。然而,在发布应用时,需要将测试广告 ID 更改为实际的广告 ID。

以下是一个详细的步骤指南,展示如何自动从 AdMob 测试广告 ID 更改为正确的横幅广告 ID,并生成签名的 APK。

1. 配置 AdMob 广告 ID

首先,在你的 Android 项目中配置 AdMob 广告 ID。通常,这些 ID 会在 res/values/strings.xml 文件中定义。

res/values/strings.xml

代码语言:javascript
复制
<resources>
    <!-- AdMob Test Ad Unit ID -->
    <string name="admob_test_banner_id">ca-app-pub-3940256099942544/6300978111</string>
    <!-- AdMob Real Ad Unit ID -->
    <string name="admob_real_banner_id">ca-app-pub-xxxxxxxxxxxxxxxx/yyyyyyyyyy</string>
</resources>

2. 在代码中使用广告 ID

在你的代码中,根据构建类型(debug 或 release)使用不同的广告 ID。

MainActivity.java

代码语言:javascript
复制
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, initializationStatus -> {});

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

res/layout/activity_main.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/admob_test_banner_id"/>
</RelativeLayout>

3. 使用 Gradle 构建脚本自动替换广告 ID

build.gradle 文件中,使用 Gradle 构建脚本自动替换广告 ID。

app/build.gradle

代码语言:javascript
复制
android {
    ...
    buildTypes {
        debug {
            resValue "string", "admob_banner_id", "@string/admob_test_banner_id"
        }
        release {
            resValue "string", "admob_banner_id", "@string/admob_real_banner_id"
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

在你的布局文件中,使用 admob_banner_id 作为广告单元 ID。

res/layout/activity_main.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/admob_banner_id"/>
</RelativeLayout>

4. 生成签名的 APK

4.1 配置签名信息

app/build.gradle 文件中配置签名信息。

代码语言:javascript
复制
android {
    ...
    signingConfigs {
        release {
            keyAlias 'your-key-alias'
            keyPassword 'your-key-password'
            storeFile file('path/to/your/keystore.jks')
            storePassword 'your-store-password'
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}

4.2 生成签名的 APK

使用 Gradle 命令生成签名的 APK。

代码语言:javascript
复制
./gradlew assembleRelease

5. 验证和发布

生成的 APK 文件将位于 app/build/outputs/apk/release/ 目录下。你可以使用 Android Studio 或命令行工具来验证 APK 文件,并将其上传到 Google Play 商店。

通过上述步骤,你可以自动从 AdMob 测试广告 ID 更改为正确的横幅广告 ID,并生成签名的 APK。这种方法确保了在开发和发布阶段使用不同的广告 ID,从而避免了在开发过程中违反 AdMob 的政策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【iOS开发】在 App 中加入 AdMob 广告 - 入门介绍与编程技巧

用户最好全局代理,自动代理的话访问起来会很卡)。...3.接下来过程就不赘述了,无非是去AdMob里面添加个应用,拿到一个类似 app-key 识别码(AdMob里面叫ca-app-pub,每个广告对应一个识别码,一个App可以加入多个横幅广告或插页式广告...而插页式广告则是以弹窗形式出现,用户需要去左上角或者右上角点击一下关闭按钮才行,应该说是比横幅广告讨厌一些(反正我是这么觉得),应该说这是略为严重打扰了用户对App使用。...、设置广告ID、加载广告请求 self.tableView.contentInset = UIEdgeInsetsMake( 0, 0, admob.frame.height, 0) 注释部分代码可以参考这里...而理想情况是:30s时没能加载好广告,我们就开始轮询,直到广告加载好了,也就是40s时,把广告显示出来,然后设定第70s时展示下一次广告

4.3K30

flutter集成admob库时碰到至今为止都没解决

play console后台看到下载此应用用户很多不英语区国家,但我这个产品目前只针对英语,而且软件里ui显示文字只有英语。这就导致用户使用后不太满足自己要求。...验证完成后会如下图显示: 验证成功后就可以添加广告单元了,我图省事添加了两个最简单横幅广告,每个广告单元有唯一广告ID,后面在代码集成时候会用到。...google_mobile_ads: ^5.1.0 然后再写一个专门显示横幅广告widget. class BannerAdWidget extends StatefulWidget { String...Column(children:[ BannerAdWidget( //上面在admob中创建广告单元ID adUid, ), ]) 这样在你应用中就可以显示广告了...最后碰到无解坑。 本来一切都顺利。但打包测试时候,发现加载完广告后,应用掉帧厉害,跳转界面时能明显感觉到不流畅。起初以为是哪个地方设置不对,但找了一圈也没找到原因。

7710
  • 儿童游戏软件中隐藏着Tekya木马风险预警

    广告软件通常通过弹出式窗口、横幅广告、内文链接等广告方式来呈献广告内容,主要是为了提高相关网站、产品知名度。这能为软件开发商带来一定广告收入。...而广告木马软件则通常通过单击链接和其他交互式元素来模拟网页上用户操作,实现无声地模拟与广告网站交互如点击广告提高网站访问率或自动订阅付费服务,从而增加广告带来收入。...该木马是一款模拟用户点击来自Google AdMob,Facebook等机构广告进行移动广告欺诈木马软件。...图2-1 注册Receiver广播 接收到开机以及运行广播后,利用反射机制来调用apk文件中libego.so文件。 ? ?...图2-7 进行模拟点击事件 三、服务器后台 接下来我们对Tekya木马家族进行真机模拟抓包测试,通过实际运行我们可以看到此类软件在后台运行多种广告并进行对应服务器访问。 ? ? ? ?

    87840

    关于广告

    (apktool、dex2jar、jd-gui,可以提取目标apk资源及反编译源代码,这里反编译不是为了干坏事,而是别人那里学习技术,你并不能完全得到一个好破解代码,但你可以通过代码片段来获取信息学习或者进行搜索从而学到各种技术...1万普添加应用后得到ID,千万不要填错哦。...2.到你要添加广告平台添加新应用来获取对应ID,并把这些ID设置到1步骤芒果平台对应ID设置中(点对应平台后面的“未设置”)。...会得到一个芒果ID备用,下载芒果广告SDK。...然后将应用签名打包,上传到各个广告平台审核。(平均分配是为了审核人员保证有机会能看到你应用上有展示他们平台广告),审核均通过后就可以发布到各个市场上来开始收益旅程了。

    2.1K40

    Android静态分析之初级篇(二)

    接着《Android静态分析之初级篇》来,这次来看看如何在反编译后apk包中添加一个页面,类似植入广告~ 在app中进行广告植入,正常思路是:在app开始启动时增加一个广告页面,代码里就是新建一个Activity...假设我们没有原apk源代码,那我们需要新建一个跟这个apk包一样项目目录,包名要跟我们要插入广告页面的apk一致: ? 添加一个HackActivity页面,代码如下图: ? 效果如下: ?...保存,重新回编译,同样使用jarsigner进行签名,将生成安装包安装到Android机上,看看效果: ? 可以看到是一个空白页,现在我们想办法给这个空白页添加点内容进去。...重新打包,签名,并反编译,重新将反编译后两个HackActivitysmali文件放到smali文件夹下,同时,还要把新添加xml文件放到原apk反编译后layout文件夹下: ?...add.xmlID; 4、 修改HackActivity.smali文件中add.xmlID; 5、 修改AndroidManifest.xml文件,将入口Activity改为HackActivity

    85921

    网络安全 Google Play恶意软件分析

    攻击者可以使用受影响设备发表有利于恶意应用虚假评论,并通过点击弹出广告来进行广告欺诈。 技术分析 攻击活动中名为Speed Clean程序具有提升移动设备性能功能。...在安装了“alps-14065.apk”之后,启动程序或设备程序列表上也不会显示任何应用程序图标。...本次攻击活动中使用一些典型恶意广告欺诈行为如下: 1、模拟用户点击广告。恶意应用集成在合法移动广告平台中,如谷歌AdMob和Facebook等。...恶意软件变体以及与此攻击活动相关恶意有效载荷中获取信息如下: 还注意到受感染最严重国家或地区是日本、中国台湾、美国、印度和泰国。...可以将国家/地区代码地理参数值修改为任何国家/地区代码,甚至是随机不存在国家/地区代码,远程广告配置服务器始终返回恶意内容,但是该活动排除了中国用户。

    1.7K10

    IOS原生浏览器使用智能应用横幅宣传应用,创建横幅网站在App Store上推广您应用。

    效果如图:图片图片图片图片图片图片图片与其他促销方法相比,Smart App Banners极大地改善了用户浏览体验。在iOS中,智能应用横幅广告可为用户带来一致外观。...他们相信点击横幅将把他们带到App Store,而不是第三方广告。他们喜欢在网页顶部贴上醒目的横幅,而不是全屏显示,以免打断他们对Web内容体验。借助醒目的大型“关闭”按钮,横幅很容易消除。...如果您包含URL,并且用户安装了您应用程序,则他们可以网站跳转到iOS应用程序中相应位置。...通常,保留导航上下文是有益,因为:如果用户深入到您网站导航层次结构中,则可以传递文档整个URL,然后在应用程序中对其进行解析,以将用户重新路由到应用程序中正确位置。...如果用户正在创建内容,则可以传递会话ID来将Web会话状态下载到您应用程序,以便用户可以无损地恢复其工作。您可以app-argument使用服务器端脚本为每个页面动态生成参数。

    1.5K10

    360加固apk自动签名

    今天说说用360怎么一键加固apk。 加固保为移动应用提供专业安全保护,可防止应用被逆向分析、反编译、 二次打包,防止嵌入各类病毒、广告等恶意代码,源头保护数据安全和开发者 利益。...基本配置 签名配置 点击“配置信息”,选择“签名配置” ,勾选“启用自动签名”,点击“浏览” 按钮,选择需要使用签名 Keystore 文件,并输入 Keystore 密码。...密码正确时 会显示别名,然后输入正确别名密码,点击“添加”,完成签名配置操作。 ?...加固应用及发布 点击“加固应用”选择要加固 APK 文件,自动完成“应用加固—自动签 名—多渠道打包”。 加固助手支持批量添加多个 APK 进行加固。...您可在文件夹中直接选择多个 需要加固 APK 文件,或者直接将 APK 拖拽到加固窗口中,完成批量加固操作。 ? ? ? 辅助选项 大家也可以根据自己需要一键渠道签名,打包等。 ?

    2.5K70

    iOS多渠道来源追踪怎么做,多种方案可选择

    说起 iOS 渠道统计,不少人会想到苹果官方 App 分析功能(iTunes Connect),但实际操作中我们会发现,这个服务统计维度还不够全面,许多广告主和运营人员关心是各个推广渠道实际带来安装量...同样在“App分析”“来源”中点击“营销活动”,右上角有个“生成营销活动链接”,进入后就能自定义给每个渠道生成对应唯一标识。...,营销活动才会在“App 分析”中显示; 无法兼容 Android 和 iOS企业签名,采用不同统计方法可能会让数据统一性较差; iOS 8.0 及以上版本用户可以选择是否将自己应用使用情况数据发送给...另一方面,Google Analytics iOS 安装跟踪功能仅适用于通过移动广告网络(例如投放应用内广告AdMob)投放广告。...在推广渠道相当多情况下,通过分发 h5 落地页给不同渠道,每个渠道来用户,没有任何感知情况下,后台可以统计到他激活及注册时渠道 ID (甚至其他任意参数)。

    4.9K11

    Kemoge:一款影响超过20国安卓恶意程序

    在初始启动时,Kemoge收集设备信息并将其上传到广告服务器,无论受害者当前是在干什么在一定时间都会看到广告横幅(即使停留在Android主屏幕,也可能会突然弹出)。 ?...下图为反汇编生成DES密钥Java代码片段: ? 从上图反汇编DES密钥代码片段中我们获得了Key2,接着就可以生成Key1了。...使用上面相同方法获得Key1,但随着作为输出不同加密字节,Kemoge生成ZIP保护密码。...解压这个文件后,其中提取出以下文件: AndroidRTService.apk root.sh busybox su .root root_001, root_002, ..., root_008 (...,使用了与Kemoge相同签名,所以其应该是同一位开发者,其在Google Play中此应用已经有10万—50万下载量,基于开发者名称Zhang Long以及集成与App中第三方库(cn.wap3

    78450

    Dynamic Feature 上线 1 年实践分享

    这些 APK 看起来长这样: 那 Dynamic Feature APK 是怎么生成呢?是 Google Play 用我们在上架时提供 AAB 包和提前上传签名文件生成。...APK 生成使用 bundle-tool。 在线测试有两种方式:内部应用分享和内部测试。...如果你 debug 签名文件和平台上 debug 签名文件不是同一个,则 App 验签相关逻辑会失败,如微信登录/QQ登录这种会验签步骤。 额外:是否必须进行在线测试?...这里提供两个插桩参考方案: 重写 R.jar——processReleaseResource 执行后会生成 R.jar,此时修改字节码改为 Dynamic Feature Module R 类继承...产品部分广告源 SDK,如字节 Pangle SDK,已明确不支持 Dynamic Feature。

    27410

    Android 广告包使用之字节穿山甲介绍

    [9] 全屏视频广告 全屏播放视频广告,5秒可跳过,高收益同时兼顾用户感受。...[9] 插屏广告 在操作切换间弹出,充分渗透用户等待时间,拥有强信息表现力。 [9] banner广告 可灵活选择版位标准横幅广告,样式美观灵活,曝光率优异。...[ 绑定SDK 申请应用CodeId 请在穿山甲平台上创建好应用ID广告ID. 这一步必不可少,毕竟要接入到平台内。...导入aar及SDK依赖jar包 官网下载jar包,导入到工程内,创建文件夹libs. image.png 并将以下代码添加到您appbuild.gradle中: repositories {...,没有设置网络下点击下载apk会有二次确认弹窗,弹窗中会披露应用信息 .supportMultiProcess(false) //是否支持多进程,true支持

    1.8K40

    移动广告库为企业数据带来重大风险

    当我们分析了客户下载所有应用时,我们发现: 企业用户至少连接到与消费者用户一样多数据收集库,在某些情况下更多,这使企业面临敏感数据丢失风险; 一些顶级广告库(如 AdMob,AirPush 和 Flurry...)会泄露私人信息,例如你下载到手机上移动应用,精确地理位置数据(包括你邮政编码),设备ID号,网页浏览历史记录等等。...毫不奇怪,两个类别中顶级域名都属于顶级广告库(AdMob,Airpush,Flurry,MillenialMedia)以及社交媒体(Facebook,Twitter,LinkedIn,Google +...暴露数据类型包括: Android ID 广告ID 设备品牌和型号 移动网络浏览器类型和版本 IP 地址 Airpush 生成ID 应用程序名称 设备上安装移动应用程序列表(可选退出选项...用户和 IT 管理员必须了解他们设备收集哪些数据、数据发往何处以及如何使用这些数据,这一点至关重要。

    1.9K00

    安卓新型恶意木马Xavier发展过程和技术分析

    近日,一个名为Xavier安卓系统广告库木马被发现,它会在用户不知情情况下窃取和泄露用户信息,同时还可以在root过安卓设备上静默安装任何APK。...与其他广告库木马不同是,它将从远程服务器下载代码并加载执行恶意行为嵌入到自身,同时使用数据加密和仿真程序检测等方法来保护自己不被查杀。...接下来一个变种版本出现在2016年1月,这一变种调整了字符串加密算法,对远程服务器下载代码进行加密,同时还添加了一些反射调用。 ?...Xavier删除了apk安装和root检查,同时增加了数据加密茶叶算法(TEA algorithm)。 ? 很快,Xavier更新版本增加了一种可以逃脱动态检测机制。...卡所属国家 产品名称 生产商ID SIM卡运营商 服务ID 系统语言 分辨率 型号 操作系统版本 设备名称 设备ID 已安装APP 安卓ID 邮箱地址 ?

    1.1K70

    安卓逆向系列篇:基本概念&环境配置

    与res/raw目录不同是, assets目录支持任意深度子目录,同时该目录下面的文件不会生成资源ID。...,对非文件夹非签名文件文件,逐个用SHA1生成摘要信息,再用Base64进行编码。...CERT.SF (对摘要文件签名文件) :对于生成MANIFEST.MF文件利用SHA1-RSA算法对开发者私钥进行签名。在安装时只有公共密钥才能对其解密。...3、apk打包流程 官网流程图中看出整个打包流程共分为七个步骤: 打包资源文件,生成R.java文件 处理aidl文件,生成相应.Java文件 编译项目源代码,生成class文件 转换所有的class...文件,生成classes.dex文件 打包生成APK文件 对APK文件进行签名签名APK文件进行对齐处理 详细见此文 Android中apk打包流程 https://zhuanlan.zhihu.com

    96120

    智能摄像头安全分析及案例参考

    该密文和用户在手机端APK登录时加密后密码完全一致。 ? 这也证明了通过逆向加密算法而推导出解密算法是正确。...可成功将密码修改为123456789。随后测试中,发现还可以控制摄像头重启或关机。...根据返回值不同即可进行云端ID号码暴力枚举,使用枚举到在线手机端设备,可使用默认密码尝试添加查看。 管理后台存在越权漏洞 在进行APK测试时,发现APK广告管理平台存在越权。...访问URL:http://xx.xxx.com/Service/AdsList.do可查看所有广告信息。 ? 通过该越权也可以轻易修改或删除广告信息,进而影响所有APK接收到广告。...风险分析: 1、相比摄像头设备漏洞,攻击者可能擅长web服务器入手,服务器一旦出现问题,那么所有的用户和设备信息都将受到威胁; 2、未授权访问可能导致供应商信息泄露、广告被恶意篡改,甚至管理员密码失窃等

    2.8K31

    智能摄像头安全分析及案例参考

    该密文和用户在手机端APK登录时加密后密码完全一致。 ? 这也证明了通过逆向加密算法而推导出解密算法是正确。...可成功将密码修改为123456789。随后测试中,发现还可以控制摄像头重启或关机。...根据返回值不同即可进行云端ID号码暴力枚举,使用枚举到在线手机端设备,可使用默认密码尝试添加查看。 管理后台存在越权漏洞 在进行APK测试时,发现APK广告管理平台存在越权。...访问URL:http://xx.xxx.com/Service/AdsList.do可查看所有广告信息。 ? 通过该越权也可以轻易修改或删除广告信息,进而影响所有APK接收到广告。...风险分析: 1、相比摄像头设备漏洞,攻击者可能擅长web服务器入手,服务器一旦出现问题,那么所有的用户和设备信息都将受到威胁; 2、未授权访问可能导致供应商信息泄露、广告被恶意篡改,甚至管理员密码失窃等

    2.2K20

    智能摄像头安全分析及案例参考

    该密文和用户在手机端APK登录时加密后密码完全一致。 ? 这也证明了通过逆向加密算法而推导出解密算法是正确。...可成功将密码修改为123456789。随后测试中,发现还可以控制摄像头重启或关机。...根据返回值不同即可进行云端ID号码暴力枚举,使用枚举到在线手机端设备,可使用默认密码尝试添加查看。 管理后台存在越权漏洞 在进行APK测试时,发现APK广告管理平台存在越权。...访问URL:http://xx.xxx.com/Service/AdsList.do可查看所有广告信息。 ? 通过该越权也可以轻易修改或删除广告信息,进而影响所有APK接收到广告。...风险分析: 1、相比摄像头设备漏洞,攻击者可能擅长web服务器入手,服务器一旦出现问题,那么所有的用户和设备信息都将受到威胁; 2、未授权访问可能导致供应商信息泄露、广告被恶意篡改,甚至管理员密码失窃等

    1.3K32
    领券