當前位置:首頁 » 安卓系統 » 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計時器來實現

熱點內容
phprecv 發布:2025-05-17 11:55:00 瀏覽:610
福建時鍾監控網關伺服器雲主機 發布:2025-05-17 11:54:28 瀏覽:248
c資料庫壓縮 發布:2025-05-17 11:39:22 瀏覽:960
安卓手機如何連接音響功放 發布:2025-05-17 11:37:48 瀏覽:958
破解exe加密視頻 發布:2025-05-17 11:23:41 瀏覽:976
我的世界伺服器圈太大了怎麼辦 發布:2025-05-17 11:15:21 瀏覽:614
便宜的免費雲伺服器 發布:2025-05-17 11:08:50 瀏覽:779
中國頂級dhcp解析伺服器地址 發布:2025-05-17 11:06:27 瀏覽:36
php轉義html 發布:2025-05-17 11:04:00 瀏覽:569
鋼筋籠加密區規范 發布:2025-05-17 10:59:50 瀏覽:6