当前位置:首页 » 安卓系统 » Android广告开发

Android广告开发

发布时间: 2023-02-12 03:58:19

㈠ Android新手,求助Banner广告条的开发办法

参考下面代码
1.源文件
java] view plain print?
package com.eyeandroid.viewpager;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;

@SuppressLint("HandlerLeak")
public class MainActivity extends Activity {
private ImageView[] imageViews = null;
private ImageView imageView = null;
private ViewPager advPager = null;
private AtomicInteger what = new AtomicInteger(0);
private boolean isContinue = true;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initViewPager();
}

private void initViewPager() {
advPager = (ViewPager) findViewById(R.id.adv_pager);
ViewGroup group = (ViewGroup) findViewById(R.id.viewGroup);

// 这里存放的是四张广告背景
List<View> advPics = new ArrayList<View>();

ImageView img1 = new ImageView(this);
img1.setBackgroundResource(R.drawable.advertising_default_1);
advPics.add(img1);

ImageView img2 = new ImageView(this);
img2.setBackgroundResource(R.drawable.advertising_default_2);
advPics.add(img2);

ImageView img3 = new ImageView(this);
img3.setBackgroundResource(R.drawable.advertising_default_3);
advPics.add(img3);

ImageView img4 = new ImageView(this);
img4.setBackgroundResource(R.drawable.advertising_default);
advPics.add(img4);

// 对imageviews进行填充
imageViews = new ImageView[advPics.size()];
//小图标
for (int i = 0; i < advPics.size(); i++) {
imageView = new ImageView(this);
imageView.setLayoutParams(new LayoutParams(20, 20));
imageView.setPadding(5, 5, 5, 5);
imageViews[i] = imageView;
if (i == 0) {
imageViews[i]
.setBackgroundResource(R.drawable.banner_dian_focus);
} else {
imageViews[i]
.setBackgroundResource(R.drawable.banner_dian_blur);
}
group.addView(imageViews[i]);
}

advPager.setAdapter(new AdvAdapter(advPics));
advPager.setOnPageChangeListener(new GuidePageChangeListener());
advPager.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
isContinue = false;
break;
case MotionEvent.ACTION_UP:
isContinue = true;
break;
default:
isContinue = true;
break;
}
return false;
}
});
new Thread(new Runnable() {

@Override
public void run() {
while (true) {
if (isContinue) {
viewHandler.sendEmptyMessage(what.get());
whatOption();
}
}
}

}).start();
}

private void whatOption() {
what.incrementAndGet();
if (what.get() > imageViews.length - 1) {
what.getAndAdd(-4);
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {

}
}

private final Handler viewHandler = new Handler() {

@Override
public void handleMessage(Message msg) {
advPager.setCurrentItem(msg.what);
super.handleMessage(msg);
}

};

private final class GuidePageChangeListener implements OnPageChangeListener {

@Override
public void onPageScrollStateChanged(int arg0) {

}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override
public void onPageSelected(int arg0) {
what.getAndSet(arg0);
for (int i = 0; i < imageViews.length; i++) {
imageViews[arg0]
.setBackgroundResource(R.drawable.banner_dian_focus);
if (arg0 != i) {
imageViews[i]
.setBackgroundResource(R.drawable.banner_dian_blur);
}
}

}

}

private final class AdvAdapter extends PagerAdapter {
private List<View> views = null;

public AdvAdapter(List<View> views) {
this.views = views;
}

@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(views.get(arg1));
}

@Override
public void finishUpdate(View arg0) {

}

@Override
public int getCount() {
return views.size();
}

@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(views.get(arg1), 0);
return views.get(arg1);
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}

@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {

}
@Override
public Parcelable saveState() {
return null;
}

@Override
public void startUpdate(View arg0) {
}

}
}
2.布局文件
这个文件在屏幕上的图片显示具有至关重要的作用

[html] view plain print?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="//schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- ViewPager是一个控件 -->
<android.support.v4.view.ViewPager
android:id="@+id/adv_pager"
android:layout_width="fill_parent"
android:layout_height="160dp" >

</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/viewGroup"
android:layout_below="@id/adv_pager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-25px"
android:gravity="right"
android:orientation="horizontal" >
</LinearLayout>
</RelativeLayout>

</LinearLayout>

㈡ Android插件化突破应用市场无法上广告的问题

先简单的描述一下在广告方面遇到的问题.
开发一款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应用中添加广告

<span style="font-family:Courier New, monospace;"><!-- 连接网络权限INTERNET (必须)-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 用于下载前检查网络状态 (必须)-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<!-- 往SDCard写入数据权限(必须) -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 获取设备相关信息(必须) -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 获取mac地址 ,支持一些Pad设备不能获取imei的bug(必须) -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<!-- 获取地理位置信息,用于帮助精确统计开发者的程序发布之后的用户分布情况 (可选)-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- 支持Push短信广告模式(可选) -->
<uses-permission android:name="android.permission.WRITE_SMS" />
</span> <span style="font-family: 'Courier New', monospace;"><!-- 支持Push短信广告模式(可选) --></span>
先封装接口

㈣ android安卓开发 添加广告的流程

1.应用市场是帮你宣传, 让更多的人下载你的应用。
2.广告平台一般都有后台管理和统计自己的应用。
3.每个广告平台对开发的利益产生模式不一样, 如展示次数, 有效点击, 有效下载等。
4.我不喜欢youmi平台

㈤ 安卓开发之广告开屏界面

效果图如下所示。屏幕约3/4的上方用来放置广告图,1/4的下方放置该APP相关的图片,界面右上角有个显示3秒倒计时的按钮。点击广告图即打开广告链接进入相应界面(我使用了webView来装载),点击下方图片或者倒计时按钮则进入APP主界面,也可以什么都不做,等待界面3秒后自动跳转。

㈥ 哪位知乎大神 懂android广告sdk的开发

不知道你是要做cp,还是要做开发者
cp的话,做的大一点,就是自己搭建后台,与广告商谈接入,然后开发自己的SDK,里面封装请求网络等一系列方法,从数据库读取广告数据,展示在开发者开发应用的广告位上
这里涉及的问题比较广,考虑的因素也比较多

如果你是说开发者的话,从广告代理商那里拿到广告sdk嵌入到自己的应用中,sdk在初始化完成后会请求自身服务器拿取广告数据

㈦ 现在android应用开发哪个广告平台好

国内的,有米广告比较好;国外的,Admob广告比较好。
有米广告主要针对国内的,是中文广告,本土化。
Admob广告被Google收购了,广告量比较大,而且广告不够时可以从Google那里获取广告,展示率比较高。不过新申请的帐号可能在国内展示率很低,当此帐号的有效点击积累的金额超过50美元后,Admob会保证你的程序有广告投放,在中国也会有中文的广告的。

㈧ 如何:在Android应用中加入广告方法步骤

广告墙和推送广告我使用万普,广告条我使用芒果的聚合,暂时打算用多盟、有米这2个平台。(之所以用多个平台是可以根据情况做实时的在线比例分配,这样可以有更多的选择余地,当然也不是越多越好,加的平台越多应用就越臃肿,你的收入当然就分散了,而每个平台都至少要求100元才能提款的。)


首先我们来添加广告墙和推送广告。


1.登录万普平台,进入开发者页面,点击添加应用,输入应用名称,点保存,之后打开应用详情页面,记下WAPS_ID的值备第2步骤使用。后面的信息也尽量完善起来,


文件程序等最后完成广告集成并测试后再上传即可。


2.在我的项目的AndroidManifest.xml文件下添加广告需要的权限(具体要哪些权限参加广告SDK的帮助和实际情况定):


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

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

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

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

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

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


在Application项加入:


<meta-data android:name="WAPS_ID" android:value="" />

<meta-data android:name="WAPS_PID" android:value="WAPS" />

<activity android:name="com.waps.OffersWebView"

android:configChanges="keyboardHidden|orientation" />


第一行android:value对应的字符串要替换成步骤1从万普添加应用后得到的ID,千万不要填错哦。


第二行是万普进行渠道设置选项,最好按其开发者手册最后对应的表格来填写


第三行是展示广告墙所使用的activity,不添加会导致展示不了广告墙


3.Eclipse->Project->Properties->Java Build Path->Libraries->Add External JARs->选择我们前面下载解压出来的AppOffer_1.5.3.jar,来完成添加万普SDK的Jar包。

在对应更多应用菜单的处理事件里加入AppConnect.getInstance(this).showOffers(this);来打开广告墙。


运行应用,点击更多应用,顺利打开推荐列表如图:


4.打开项目的入口Activity,在onCreate事件里写入


AppConnect.getInstance(this);


AppConnect.getInstance(this).getPushAd(); //自动推送使用,如果你在万普web端配置自动推送则可以注释次行


在退出应用的地方(我是在入口Activity的onDestroy事件)写入


AppConnect.getInstance(this).finalize();


运行推送效果如下图:


点击通知(推送广告) 打开如图


这样我们就把万普的广告墙和推送模式的广告集成好了,将应用使用正式签名(方法网上搜很多,这里不介绍)编译后将apk上传到万普审核,同时就可以发布到市场渠道去让用户下载了。(关于市场发布下篇里再介绍)


下面介绍使用芒果聚合来添加广告条:


1.登录芒果平台,添加新应用,打*的必须填写,点下一步来进入广告平台选择页面。


2.到你要添加的广告平台添加新应用来获取对应的ID,并把这些ID设置到1步骤芒果平台对应的ID设置中(点对应平台后面的“未设置”)。


3.点击芒果页面上对应平台后面的按钮来打开对应平台的状态,并点击开启测试,以便接下来测试是否能正常获取测试广告。同时将2个平台的比例均配成50%。


4.点击下一步,应用就添加完成了。会得到一个芒果ID备用,下载芒果广告的SDK。(因为该SDK里已经包含了其所支持的所有平台的jar包,所以不需要单独再去下载其他广告平台的包了,而且聚合平台不一定及时更新所有平台的包,可能会对广告平台的更新没有及时更改其SDK,所以也必须从这里下)


5.解压芒果上下载下来的SDK,并将其libs下对应平台的包加入工程(我这里加入AdsMOGO-SDK-Android.jar[芒果]、youmi-android.jar[有米]、domob_android_sdk.jar[多盟])。


6.修改AndroidManifest.xml文件,添加必要的权限,以及到芒果SDK的开发帮助文档里找到对应平台要求添加的activity。我这里加入:


<!-- 多盟integration -->

<activity android:name="cn.domob.android.ads.DomobActivity"

android:theme="@android:style/Theme.Translucent" />

<!-- 有米integration -->

<activity android:name="net.youmi.android.AdActivity"

android:configChanges="keyboard|keyboardHidden|orientation" />

<activity android:name="net.youmi.android.spotad.AdActivity"

android:configChanges="keyboard|keyboardHidden|orientation" />


7.加入芒果Key的meta-data ,将值替换你在芒果平台最后得到的KEY值,我这边如下:


<meta-data android:value="" android:name="ADMOGO_KEY" />


8.在要展示的地方添加代码如下:


AdMogoLayout adview = new AdMogoLayout(this,""); //ID跟xml配置的相同

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(

FrameLayout.LayoutParams.WRAP_CONTENT,

FrameLayout.LayoutParams.WRAP_CONTENT);

// 设置广告出现的位置(悬浮于顶部)

params.topMargin = 0;

params.gravity = Gravity.TOP|Gravity.CENTER_HORIZONTAL;

addContentView(adview, params);


这段代码作用是新建一个芒果广告的View,并将它加到activity的最顶端。


9.OK,代码都添加完成,运行测试,广告正常展示如下:



自己点击测试下,是否能正常打开广告页面。到芒果web页面调整广告平台的分配比例,分别测试所有你的平台是否均成功展示。如果有失败,请核对芒果上配置的ID或密码是否相同(包括前后不能有空格),任然有问题的话联系平台技术人员帮你协助解决。


10.最后一步,将芒果web页面上的比例平均分配,关闭测试模式。然后将应用签名打包,上传到各个广告平台审核。(平均分配是为了审核人员保证有机会能看到你的应用上有展示他们平台的广告),审核均通过后就可以发布到各个市场上来开始收益旅程了。


http://blog.csdn.net/fenger8293/article/details/6922992

㈨ 哪位知乎大神 懂android广告sdk的开发

1、去广告渠道下载SDK
点金:http://mjoy.91.com/

2、解压缩包,一般会有demo项目,doc文档还有库文件

3、将lib目录下的dianjin.jar复制到项目的libs目录

4、查看doc文档,按照步骤接入,配置Androidmanifext.xml文件

5、在代码进行sdk初始化、方法调用等

6、运行到模拟器或者真机查看广告效果

㈩ Android新手,求助Banner广告条的开发办法

可以使用Viewpager组件,用timer计时器来实现

热点内容
步科编程软件 发布:2025-05-17 09:09:18 浏览:824
ps4密码设置有什么要求 发布:2025-05-17 08:49:16 浏览:70
文本编译工具 发布:2025-05-17 08:47:47 浏览:3
phpc语言 发布:2025-05-17 08:45:30 浏览:806
苹果6s怎么设置4位密码 发布:2025-05-17 08:41:14 浏览:180
如何玩cf端游越南服务器 发布:2025-05-17 08:38:54 浏览:184
噪声的危害和控制设计脚本 发布:2025-05-17 08:22:29 浏览:474
esr算法 发布:2025-05-17 08:16:09 浏览:195
安卓手机怎么用拟我表情 发布:2025-05-17 08:10:13 浏览:919
给U盘安装kalilinux 发布:2025-05-17 08:07:26 浏览:250