首页
学习
活动
专区
工具
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.5K30

儿童游戏软件中隐藏着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.2K40

    重学安卓逆向:获得广告&弹窗静默卡

    onRestart() 当Activity从停止stop状态恢进入start状态时调用状态。...# 去广告 广告类型: 启动广告 弹窗&更新广告 横幅广告 启动广告流程: 启动Activity->广告Activity->主页Activity 修改方法: 1.修改加载时间(修改为0) 2.Acitivity...Activity,回到MT管理器的Activity记录即可复制Activity的类名 之后通过MT管理器打开apk的dex,搜索Activity的类名 点进去,可以查看代码逻辑,看到广告的时间 将广告的时间修改为...(点击放大镜按钮,选择横幅,复制资源id0xXXXXXXXX) 2.MT管理器xml搜索,选择资源id,反编译,文件内搜索资源id 3.修改xml代码(宽度和高度改为 0) android:visibility...="gone" 替换图片 开发者助手抓布局(点击放大镜按钮,选择横幅,复制资源id0xXXXXXXXX) MT管理器xml搜索,选择资源id,反编译,文件内搜索资源id 复制图片的src id MT管理器打开

    10400

    小游戏源码开发搭建技术栈和服务器配置流程

    小游戏广告 SDK:选择合适的广告平台,并获取其广告 SDK,以便在小游戏中展示广告。常见的广告平台有 Google AdMob、Facebook Audience Network、腾讯广点通等。...创建广告位:在广告平台的开发者后台中,创建对应的广告位,并获取广告位的 ID 或其他标识符,以便在游戏中加载和展示广告。...5、测试与优化:功能测试:对小游戏的各项功能进行全面测试,包括游戏玩法、广告展示、用户登录等,确保各项功能正常运行,没有漏洞和错误。...6、发布与推广:打包发布:将小游戏打包成适合 app 平台的安装包,如 Android 的 APK 文件或 iOS 的 IPA 文件。应用签名:对安装包进行签名,确保应用的安全性和完整性。...广告展示功能:开发者可以在游戏中嵌入广告,以获取广告收益。广告的展示方式可以是视频广告、横幅广告、插屏广告等。3.

    11110

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

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

    86321

    网络安全 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

    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

    80050

    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。

    44310

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

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

    5.1K11

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

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

    1.8K40

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

    与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

    97320

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

    当我们分析了客户下载的所有应用时,我们发现: 企业用户至少连接到与消费者用户一样多的数据收集库,在某些情况下更多,这使企业面临敏感数据丢失的风险; 一些顶级广告库(如 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

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

    该密文和用户在手机端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
    领券