每个应用都需要设置广告位id,商务会提供不同广告样式的广告位id,以下简称为“slotid”。
具体参考:新手指引
demo下载:点击下载
代码:
步骤 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 插屏展示效果
代码:
步骤 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 横幅展示效果
代码:
步骤 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 推广墙内容展示效果
Class | Method |
AlibabaSDK | /** * 获取指定的服务对象 * @param clazz 服务类, * 获取广告服务,请填写com.taobao.tae.sdk.api.AdService.class * @return 具体服务对象 */ public static |
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) |