如何在自己的Android APP中加入广告

如何在自己的Android APP中加入广告,第1张

首先是需要在www.admob.com获得自己的发布者ID并且下载admob的JAR包作为开发使用。

获得ID和JAR包后具体做法如下:

注意:admob要求的最低版本为android1.5,目标编译版本最低为android3.2,即

android:minSdkVersion="3"

android:targetSdkVersion="13"

若targetSdkVersion无法满足,请在项目上点击右键->Properties->Android,选在Project Build Target,然后点击Apply,OK保存即可。

1.首先是将JAR包导入到eclipse

最新版的ADT和SDK在导入JAR包的时候,应该先将JAR包Copy到libs目录下再通过Build Path导入,否则会出现错误。

2.在AndroidManifest.xml中声明com.google.ads.AdActivity

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.example.adtest.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity android:name="com.google.ads.AdActivity"

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

</application>

注意

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize",如果android:targetSdkVersion低于13这里会报错。

3.申请网络权限

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

4.以上做好编译无错误后就可以具体写java和布局文件了

广告的显示有两种方式:一是直接在XML中布局显示,二是通过代码动态加入。

方法一:xml中布局显示:

<com.google.ads.AdView android:id="@+id/adView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

ads:adUnitId=“MY_AD_UNIT_ID”

ads:adSize="BANNER"

ads:loadAdOnCreate="true"/>

方法二:通过JAVA代码动态加入:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

adView = new AdView(this, AdSize.BANNER,"a151ca4d8cc2454")

LinearLayout layout = (LinearLayout)findViewById(R.id.layout1)

// Add the adView to it

layout.addView(adView)

// Initiate a generic request to load it with an ad

adView.loadAd(new AdRequest())

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

if (adView != null) {

adView.destroy()

}

super.onDestroy()

}

OK,就是这么简单。

转载

先简单的描述一下在广告方面遇到的问题.

开发一款App有了一定的用户量之后通常会想接入第三方广告来实现变现,

然而在很多市场不让这类带广告的App上架,除非接的是他们家的广告.

在这里我只能呵呵了.这点困难就想难倒我们.

那接下来ShowTime.怎么做呢?

没错,就是插件化.

以广点通广告为例

这里我使用的是360开源的 RePlugin ,具体介绍和使用方法请看官方文档.

一. RePlugin插件接入指南

第 1 步:添加 RePlugin Plugin Gradle 依赖

在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-plugin-gradle 依赖:

第 2 步:添加 RePlugin Plugin Library 依赖

在 app/build.gradle 中应用 replugin-plugin-gradle 插件,并添加 replugin-plugin-lib 依赖:

接下来您就可以像正常接入广告那样,开发插件。生成出来的是APK,既可以“安装到设备”,又可以“作为插件”使用。

二. RePlugin主程序接入指南

第 1 步:添加 RePlugin Host Gradle 依赖

在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-host-gradle 依赖:

第 2 步:添加 RePlugin Host Library 依赖

在 app/build.gradle 中应用 replugin-host-gradle 插件,并添加 replugin-host-lib 依赖:

第 3 步:配置 Application 类

三. 宿主App 调用 插件广告

1.编译插件广告,将生成的xx.apk包重命名xx.jar

将 xx.jar放到宿主App的 assets/plugins 目录下 , Replugin将会自动获取该内置插件

2.处理广点通开屏广告

由于广点通开屏广告的展示点击都由SDK封装处理了.

我们这里采用的方式是,由宿主跳转到插件的闪屏页,在插件中完成请求,展示,点击结束后回到宿主的主页面.

(1)宿主跳转到插件Activity

(2)插件开屏广告请求处理,就按正常的广告逻辑走

(3)插件回到宿主的主页面

(4)宿主的清单文件中添加必要配置,否则广告无反应

注意 : 尽量使宿主和插件的包名一致,已避免广告无收益

3.处理广点通原生广告

广点通原生广告不同于开屏广告,其展示曝光和点击曝光都由自己处理.

我们只能通过反射的方案去请求广告

(1)在插件中先对广告请求做一层封装

(2)宿主中反射LoadManager的requestNativeAD()方法

a.拿到插件的ClassLoader

b.取得需要反射的类

c.由于请求广告的requestNativeAD()方法中有一个参数是接口.

(这里得使用动态代理)

取得被代理接口

d.接下来就是反射请求接口了

注意传入的Context必须是插件的Context

e.在动态代理中取得回调

这里我使用了EventBus将回调的广告传到请求的界面中

点击曝光的反射

四.最后,第一次写文章,欢迎点评

宿主App : https://github.com/AndWong/RePluginHostForAD/tree/master/app

插件App : https://github.com/AndWong/RePluginHostForAD/tree/master/pluginApp

Android Studio安装插件的方式其实和Eclipse大同小异。废话不多说,直接上图:

区域1:你当前已经安装了的插件

区域2:在线安装

区域3:从硬盘安装,即针对你已经下载好了的插件,可通过这项选择到你下好的插件,进行安装。

还有一个Install JetBrains plugin其实和区域2是一样的,只是这边将JetBrains类型的插件放一起了,便于安装而已。

这边再讲下区域2,点击出现下图,可以直接在输入框中搜索你要安装的插件,然后点击右边的install按键即可。

比如我要安装Findbugs:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11280861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存