广告Android SDK集成

更新时间:2015/09/18 访问次数:28157

1. 设置广告位ID

每个应用都需要设置广告位id,商务会提供不同广告样式的广告位id,以下简称为“slotid”。

具体参考:新手指引

2. SDK集成

SDK 集成方法

demo下载:点击下载

3 广告样式

3.1. 插屏

代码:

 

步骤 1:添加插屏layout 添加插屏广告的layout,并获取插屏view控件

 

<com.taobao.munion.view.interstitial.MunionInterstitialView
    android:id="@+id/interstitialView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:visibility="gone" />

View intersView = (MunionInterstitialView) findViewById(R.id.interstitialView);

 

步骤 2:加载并展示广告

 

// 广告位id
String slotid = "12345";
AlibabaSDK.getService(AdService.class).loadAd(this, intersView,slotid);

 

步骤 3:关闭广告

 

@Override
public void onBackPressed() {
    // 关闭插屏广告
    AlibabaSDK.getService(AdService.class).handleAdEvent(intersView,
    AdService.AD_EVENT_TYPE_CLOSED);
super.onBackPressed();
}

 

步骤 4:Taobao账号处理

在展示广告的Activity内,"onActivityResult"方法内增加Taobao账号服务相关操作,用于处理返回的账号处理结果。

注意:广告SDK使用的requestCode取值,请参考“alisdk-system"库包内"com.alibaba.sdk.android.system.RequestCode"类的常量定义,请媒体确认数值是否被占用,如果取值有占用,可以直接修改"com.alibaba.sdk.android.system.RequestCode"类内事件的数致定义

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (!AlibabaSDK.getService(AdService.class).handleAccountServiceResult(
            this, requestCode, resultCode, data)) {
    super.onActivityResult(requestCode, resultCode, data);
    }
}

图3-1 插屏展示效果

3.2. 横幅

代码:

 

步骤 1:添加横幅展示控件 添加横幅广告的layout,并获取横幅view控件

 

<com.taobao.munion.view.banner.MunionBannerView
    android:id="@+id/bannerView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

View bannerView = (MunionBannerView) findViewById(R.id.bannerView);

 

步骤 2:加载并展示广告

 

// 广告位id
String slotid = "12345";
AlibabaSDK.getService(AdService.class).loadAd(this, bannerView,slotid);

 

步骤 3:系统返回事件处理

 

@Override
public void onBackPressed() {
boolean interrupt = false;
if (bannerView != null) {
// 通知Banner推广返回键按下,如果Banner进行了一些UI切换将返回true
// 否则返回false(如从 expand状态切换会normal状态将返回true)
    interrupt = AlibabaSDK.getService(AdService.class).
        handleAdEvent(bannerView,AdService.AD_EVENT_TYPE_PRESSED_BACK);
}

if (!interrupt)
    super.onBackPressed();
}

 

步骤 4:Taobao账号处理

在展示广告的Activity内,"onActivityResult"方法内增加Taobao账号服务相关操作,用于处理返回的账号处理结果。

注意:广告SDK使用的requestCode取值,请参考“alisdk-system"库包内"com.alibaba.sdk.android.system.RequestCode"类的常量定义,请媒体确认数值是否被占用,如果取值有占用,可以直接修改"com.alibaba.sdk.android.system.RequestCode"类内事件的数致定义

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (!AlibabaSDK.getService(AdService.class).handleAccountServiceResult(
            this, requestCode, resultCode, data)) {
    super.onActivityResult(requestCode, resultCode, data);
    }
}

图3-2 横幅展示效果

3.3. 推广墙

代码:

 

步骤 1:添加推广墙layout

 

<!-- 推广墙布局 -->
<RelativeLayout
    android:id="@+id/rlayout"
    android:layout_width="55dp"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="25dp" >

    <!-- 推广墙点击图标 -->
    <ImageView
        android:id="@+id/imageview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="5dp"
        android:scaleType="fitXY" />

    <!-- 推广墙文字 -->
    <TextView
        android:id="@+id/textview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginRight="5dp"
        android:gravity="center"
        android:text=""
        android:textColor="#000"
        android:textSize="12sp" />

    <!-- 新广告提示布局 -->
    <RelativeLayout
        android:id="@+id/newtip_area"
        android:layout_width="28dp"
        android:layout_height="20dp"
        android:layout_alignParentRight="true"
        android:gravity="right" >

        <ImageView
            android:id="@+id/newtip_iv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:scaleType="fitCenter" />

        <TextView
            android:id="@+id/newtip_tv"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_alignParentRight="true"
            android:gravity="center"
            android:paddingBottom="4dp"
            android:textColor="#ffffff"
            android:textSize="8sp"
            android:textStyle="bold" />
    </RelativeLayout>
</RelativeLayout>

 

步骤 2:加载并展示广告

 

// 广告位id
String slotid = "12345";
RelativeLayout rl = (RelativeLayout)findViewById(R.id.rlayout);
AlibabaSDK.getService(AdService.class).loadAd(this, rl,
MainActivity.SLOT_ID_HANDLER);

 

步骤 3:Taobao账号处理

在展示广告的Activity内,"onActivityResult"方法内增加Taobao账号服务相关操作,用于处理返回的账号处理结果。

注意:广告SDK使用的requestCode取值,请参考“alisdk-system"库包内"com.alibaba.sdk.android.system.RequestCode"类的常量定义,请媒体确认数值是否被占用,如果取值有占用,可以直接修改"com.alibaba.sdk.android.system.RequestCode"类内事件的数致定义

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (!AlibabaSDK.getService(AdService.class).handleAccountServiceResult(
            this, requestCode, resultCode, data)) {
    super.onActivityResult(requestCode, resultCode, data);
    }
}

特殊场景: 如果媒体想隐藏“推广墙”的icon展示,可以在Layout文件中隐藏“推广墙”相关的布局声明,然后在需要展示“推广墙”内容的地方,通过调用performClick()方法手工模拟“推广墙”icon被点击即可。

图3-3 推广墙Icon展示效果

图3-3 推广墙内容展示效果

3.4. Api doc

Class Method
AlibabaSDK /**
* 获取指定的服务对象
* @param clazz 服务类,
* 获取广告服务,请填写com.taobao.tae.sdk.api.AdService.class
* @return 具体服务对象
*/
public static  T getService(Class  clazz)
AdService
/**
* 加载,展示广告
* @param context 上下文
* @param adView 待执行加载操作的广告控件
* @param slotId 广告位id
*/
public void loadAd(Context context, View adView, String slotId)

/**
* 事件处理,不同广告样式可支持的事件处理,请具体参考AdDemo * @param adView 当前的广告控件
* @param eventType 事件类型,
包括返回事件:{@link AdService#AD_EVENT_TYPE_PRESSED_BACK},
关闭事件:{@link AdService#AD_EVENT_TYPE_CLOSED}等。
* @return 事件处理结果
*/
public boolean handleAdEvent(View adView, int eventType)

/**
* 处理账户服务结果,目前仅支持账户登录服务的结果处理
* @param context 上下文
* @param requestCode 请求码
* @param resultCode 结果码
* @param data 结果数据
* @return 操作处理成功返回true,反之false,false需要媒体自行处理结果
*/
public boolean handleAccountServiceResult(Context context,int requestCode, int resultCode, Intent data)

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部