博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android App添加广告
阅读量:4165 次
发布时间:2019-05-26

本文共 9216 字,大约阅读时间需要 30 分钟。

在Android应用中添加广告是开发者收入之一,但有广告的应用对于用户来说比较反感,很多事情都是相互矛盾。如何在我们的APP中添加广告呢?移动广告平台为我们提供了相应的SDK,只需要他们的SDK,按他们的开发文档添加就可以了。

下面是一些广告平台:

一、百度移动联盟:http://munion.baidu.com/

1.百度移动联盟SDK下载:http://munion.baidu.com/about.html#/sdk/mobSdk

2.百度移动联盟积分墙SDK下载:http://munion.baidu.com/about.html#/sdk/statSdk

二、有米:http://www.youmi.net/

还有其它的一些广告平台如:多盟、力美、酷果

关于更多移动广告平台信息可以查看:http://baike.baidu.com/link?url=4MavjKAnjUsqLuhs0rdOkjzfWdzJBv_2pDEh36blDxDwNzp2R-0LoEP1mRLjb-KbId8w-FXnYg4EWc5QWAdFLa

下面是我使用百度推广SDK的例子,其实跟百度提供的例子是一样的,只是我自己练了一遍

首先把百度推广SDK包下载,解压后的目录

\

在《Baidu_MobAds_SDK_Manual.doc》文档中教你如何把广告添加到你的APP中

目录结构<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140410/2014041009321272.png" alt="\">

AndroidManifest.xml文件中声明权限和Activity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!--?xml version=
"1.0"
encoding=
"utf-8"
?-->
<manifest xmlns:android=
""
package
=
"com.dzt.baidu"
android:versioncode=
"1"
android:versionname=
"1.0"
>
 
    
<uses-sdk android:minsdkversion=
"8"
android:targetsdkversion=
"17"
>
 
    
<uses-permission android:name=
"android.permission.INTERNET"
>
    
<uses-permission android:name=
"android.permission.READ_PHONE_STATE"
>
    
<uses-permission android:name=
"android.permission.ACCESS_NETWORK_STATE"
>
    
<uses-permission android:name=
"android.permission.ACCESS_COARSE_LOCATION"
>
    
<uses-permission android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
>
    
<uses-permission android:name=
"android.permission.ACCESS_WIFI_STATE"
>
    
<!-- 以下为可选权限 -->
    
<uses-permission android:name=
"android.permission.CHANGE_WIFI_STATE"
>
    
<uses-permission android:name=
"android.permission.RECORD_AUDIO"
>
    
<uses-permission android:name=
"android.permission.VIBRATE"
>
    
<uses-permission android:name=
"android.permission.CAMERA"
>
    
<uses-permission android:name=
"android.permission.ACCESS_FINE_LOCATION"
>
    
<uses-permission android:name=
"com.android.browser.permission.READ_HISTORY_BOOKMARKS"
>
 
     
        
<meta-data android:name=
"BaiduMobAd_APP_ID"
android:value=
"debug"
>
        
<meta-data android:name=
"BaiduMobAd_APP_SEC"
android:value=
"debug"
>
 
         
         
         
         
         
         
            
<intent-filter>
                 
 
                
<category android:name=
"android.intent.category.LAUNCHER"
>
            
</category></action></intent-filter>
        
</activity>
    
</activity></activity></activity></activity></activity></meta-data></meta-data></application>
 
</uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-sdk></manifest>


调试过程中,建议先设置APPSID和计费名的值为debug,以便进行广告调试。调试成功后,务必改为自己的APPSID和计费名,并上传应用至联盟端审核,审核通过后才能为您计费,如果还未审核通过而APPSID和计费名的值不为debug,则没有广告显示。

AdActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package
com.dzt.baidu;
 
import
android.app.Activity;
import
android.content.Intent;
import
android.os.Bundle;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
 
/**
 
* 使用百度推广示例 dzt
 
*
 
* @author Administrator 2014.04.09
 
*
 
*/
public
class
AdActivity
extends
Activity
implements
OnClickListener {
 
    
@Override
    
protected
void
onCreate(Bundle savedInstanceState) {
        
super
.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
initWidgets();
    
}
 
    
private
void
initWidgets() {
        
Button btn = (Button) findViewById(R.id.simple_declaring);
        
btn.setOnClickListener(
this
);
        
btn = (Button) findViewById(R.id.simple_coding);
        
btn.setOnClickListener(
this
);
        
btn = (Button) findViewById(R.id.simple_inters);
        
btn.setOnClickListener(
this
);
        
btn = (Button) findViewById(R.id.simple_icon);
        
btn.setOnClickListener(
this
);
    
}
 
    
@Override
    
public
void
onClick(View v) {
        
// TODO Auto-generated method stub
        
switch
(v.getId()) {
        
case
R.id.simple_declaring:
            
StartActivity(DeclaringActivity.
class
);
            
break
;
        
case
R.id.simple_coding:
            
StartActivity(CodingActivity.
class
);
            
break
;
        
case
R.id.simple_inters:
            
StartActivity(InterstitialActivity.
class
);
            
break
;
        
case
R.id.simple_icon:
            
StartActivity(IconsActyvity.
class
);
            
break
;
        
default
:
            
break
;
        
}
    
}
 
    
private
void
StartActivity(Class<!--?--> cls) {
        
Intent intent =
new
Intent(AdActivity.
this
, cls);
        
startActivity(intent);
    
}
}

相应的xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
<relativelayout xmlns:android=
""
xmlns:tools=
""
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".AdActivity"
>
 
    
<textview android:id=
"@+id/tv_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerhorizontal=
"true"
android:layout_margintop=
"10dp"
android:text=
"@string/hello_world"
>
 
    
<button android:id=
"@+id/simple_declaring"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/tv_text"
android:layout_centerhorizontal=
"true"
android:layout_margintop=
"10dp"
android:text=
"@string/simple_declaring"
>
 
    
</button><button android:id=
"@+id/simple_coding"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/simple_declaring"
android:layout_centerhorizontal=
"true"
android:layout_margintop=
"10dp"
android:text=
"@string/simple_coding"
>
 
    
</button><button android:id=
"@+id/simple_inters"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/simple_coding"
android:layout_centerhorizontal=
"true"
android:layout_margintop=
"10dp"
android:text=
"@string/simple_inters"
>
 
    
</button><button android:id=
"@+id/simple_icon"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/simple_inters"
android:layout_centerhorizontal=
"true"
android:layout_margintop=
"10dp"
android:text=
"@string/simple_icon"
>
 
</button></textview></relativelayout>


横幅banner广告有两种添加方式

一、代码添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package
com.dzt.baidu;
 
import
org.json.JSONObject;
 
import
com.baidu.mobads.AdSettings;
import
com.baidu.mobads.AdSize;
import
com.baidu.mobads.AdView;
import
com.baidu.mobads.AdViewListener;
 
import
android.app.Activity;
import
android.os.Bundle;
import
android.util.Log;
import
android.widget.RelativeLayout;
 
public
class
CodingActivity
extends
Activity {
 
    
private
static
final
String TAG =
"dzt"
;
 
    
@Override
    
protected
void
onCreate(Bundle savedInstanceState) {
        
// TODO Auto-generated method stub
        
super
.onCreate(savedInstanceState);
        
// setContentView(R.layout.coding);
        
// 人群属性
        
AdSettings.setKey(
new
String[] {
"baidu"
,
"中国"
});
        
AdSettings.setCity(
"上海"
);
        
AdSettings.setZip(
"123456"
);
        
AdSettings.setJob(
"工程师"
);
        
AdSettings.setEducation(AdSettings.Education.BACHELOR);
        
AdSettings.setSalary(AdSettings.Salary.F10kT15k);
        
AdSettings.setHob(
new
String[] {
"羽毛球"
,
"足球"
,
"baseball"
});
        
RelativeLayout rlMain =
new
RelativeLayout(
this
);
        
// 创建广告View
        
AdView adView =
new
AdView(
this
, AdSize.Banner,
"01"
);
        
// 设置监听器
        
adView.setListener(
new
AdViewListener() {
            
public
void
onAdSwitch() {
                
Log.w(TAG,
"[CodingActivity]->onAdSwitch"
);
            
}
 
            
public
void
onAdShow(JSONObject info) {
                
Log.w(TAG,
"[CodingActivity]->onAdShow "
+ info.toString());
            
}
 
            
public
void
onAdReady(AdView adView) {
                
Log.w(TAG,
"[CodingActivity]->onAdReady "
+ adView);
            
}
 
            
public
void
onAdFailed(String reason) {
                
Log.w(TAG,
"[CodingActivity]->onAdFailed "
+ reason);
            
}
 
            
public
void
onAdClick(JSONObject info) {
                
Log.w(TAG,
"[CodingActivity]->onAdClick "
+ info.toString());
            
}
 
            
public
void
onVideoStart() {
                
Log.w(TAG,
"[CodingActivity]->onVideoStart"
);
            
}
 
            
public
void
onVideoFinish() {
                
Log.w(TAG,
"[CodingActivity]->onVideoFinish"
);
            
}
 
            
@Override
            
public
void
onVideoClickAd() {
                
Log.w(TAG,
"[CodingActivity]->onVideoClickAd"
);
            
}
 
            
@Override
            
public
void
onVideoClickClose() {
                
Log.w(TAG,
"[CodingActivity]->onVideoClickClose"
);
            
}
 
            
@Override
            
public
void
onVideoClickReplay() {
                
Log.w(TAG,
"[CodingActivity]->onVideoClickReplay"
);
            
}
 
            
@Override
            
public
void
onVideoError() {
                
Log.w(TAG,
"[CodingActivity]->onVideoError"
);
            
}
        
});
        
rlMain.addView(adView);
        
setContentView(rlMain);
    
}
}

二、xml文件添加

1
2
3
4
5
6
7
<!--?xml version=
"1.0"
encoding=
"utf-8"
?-->
<relativelayout xmlns:android=
""
xmlns:baiduadsdk=
""
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"#fdfefa"
android:orientation=
"vertical"
>
 
    
<com.baidu.mobads.adview android:id=
"@+id/adView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_alignparentbottom=
"true"
android:layout_alignparentleft=
"true"
baiduadsdk:adid=
""
baiduadsdk:adsize=
"0"
>
    
<!-- 注: baiduadsdk:adId可以指定为
""
,表示默认广告位 -->
 
</com.baidu.mobads.adview></relativelayout>

xmlns:baiduadsdk="http://schemas.android.com/apk/res/com.dzt.baidu" 其中com.dzt.baidu为你app的包名,xmlns:baiduadsdk为自定义控件的属性域

相应的属性文件attrs.xml

1
2
3
4
5
6
7
<!--?xml version=
"1.0"
encoding=
"utf-8"
?-->
<resources>
    
<declare-styleable name=
"com.baidu.mobads.AdView"
>
         
         
    
</attr></attr></declare-styleable>
</resources>


相应的Demo:

转载:

你可能感兴趣的文章
vue项目打包后无法运行报错空白页面
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>