万普SDK使用说明

来源:互联网 发布:linux vim 颜色配置 编辑:程序博客网 时间:2024/04/29 15:24
平台介绍
万普世纪移动营销服务平台(以下称为“万普平台”)的Android 版SDK 提供了一套现成的开发包及Demo源代码,便于开发者在Android应用中方便的集成万普平台的各项功能,包括万普统计、虚拟货币、流量交换、互动广告、推送广告、迷你广告、自定义广告等功能。
本文档描述了标准版SDK 的用途与用法,并提供了示例代码。您仅需要在现有的应用中加入少量新代码,就可以集成万普平台的各项功能,轻松获得用户量和收入的倍增。
使用步骤
1
加入jar包
将AppOffer_1.6.3.jar 包放入工程指定的lib目录
2
修改AndroidManifest.xml文件
⑴确保应用具有以下几项Permission权限:
< uses-permission android:name="android.permission.INTERNET" />
< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
< uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
< uses-permission android:name="android.permission.READ_PHONE_STATE" />
< uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
< uses-permission android:name="android.permission.GET_TASKS" />
< !--以下两个权限为可选项,用于支持特殊广告形式-->
< uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
< uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
⑵在< application>段内添加以下内容
< activity android:name="com.waps.OffersWebView" android:configChanges="keyboardHidden|orientation"/>
< !--以下属性为应用ID,从万普后台获取-->
< meta-data android:name="WAPS_ID" android:value="应用标识" />
< !--以下属性为分发渠道ID,编码表参见本文档末附表-->
< meta-data android:name="WAPS_PID" android:value="分发渠道标识" />
WAPS_ID(或APP_ID)为应用标识,该值由万普平台添加应用后自动生成,点击“应用详情”获取
WAPS_PID(或APP_PID)为分发渠道标识,上传到万普平台的版本填“WAPS”,分发给其他渠道的版本填写相应值(比如“Google”)后重新打包即可;不同的分发包应填写不同的渠道标识,才能在万普统计平台区分来自不同渠道的数据。该值必须由英文字母和数字组成,不能是纯数字,不能包含空格或中文。常见WAPS_PID编码表请参见本文档附表《常用渠道标识编码表》。
开发者可以通过代码实现来替代本段设置,详见本文档第4节《自定义代码模式》
⑶如果应用进行了混淆编译,需要在混淆的配置文件中加入以下代码,才能确保SDK功能正常使用:
-keep public class com.waps.** {*;}
-keep public interface com.waps.** {*;}
3
加入接口代码

  1. 数据统计接口
    该接口是所有其他接口能正常使用的基础,在每次应用启动时,必须调用该接口,才能保证获得准确的统计数据。
      步骤 1:在的应用中第一个Activity类中(启动的第一个类),添加下面一行代码:
    //方式①:通过AndroidManifest文件读取WAPS_ID和WAPS_PID
    AppConnect.getInstance(this); //必须确保AndroidManifest文件内配置了WAPS_ID
    //方式②:通过代码设置WAPS_ID和WAPS_PID
    AppConnect.getInstance("WAPS_ID","WAPS_PID",this);
      步骤 2:在程序退出的处理方法中, 添加下面一行代码:
    //以下方法将用于释放SDK占用的系统资源
    AppConnect.getInstance(this).finalize();
  2. 虚拟货币接口
    在应用中合理设置虚拟货币及消费机制,可促进用户参与应用内购买或参与广告活动,增强应用粘性,大幅提升收益。如果您的应用开启了虚拟货币功能,需要使用该接口和服务器同步用户的虚拟货币余额。
    ⑴获取用户虚拟货币
    步骤 1: 从服务器端获取用户点数/虚拟货币余额:
    AppConnect.getInstance(this).getPoints(this);
    步骤 2: 确保在this类中实现 UpdatePointsNotifier接口,实现下面的两个方法,用于异步接收服务器返回的结果:
    public void getUpdatePoints(String currencyName, int pointTotal);//获取成功
    public void getUpdatePointsFailed(String error);//获取失败
    ⑵花费用户虚拟货币
    花费(扣除)用户的虚拟货币接口:
    AppConnect.getInstance(this).spendPoints(int amount, this);
    调用此方法的响应结果将通过this中实现的UpdatePointsNotifier接口返回
    ⑶奖励用户虚拟货币
    授予(增加)用户虚拟货币的接口:
    AppConnect.getInstance(this).awardPoints(int amount, this);
    调用此方法的响应结果将通过this中实现的UpdatePointsNotifier接口返回
    注意,所有通过万普广告获得的虚拟货币将自动给予到用户,无需调用该接口。该接口仅用于用户完成了开发者指定的其他任务的情况下额外给予用户虚拟货币。开发者可通过管理后台禁用该接口。
  3. 推荐列表接口
    推荐列表(也称Offer,广告墙)是万普平台提供的一种集中展示型广告。开发者可在应用中合适的位置加入“推荐应用”、 “免费赚积分”等类似字样的功能,获取更高的广告收益或参与流量交换。添加如下代码,即可显示万普平台推荐应用列表:
    AppConnect.getInstance(this).showOffers(this);
    提示:开发者可通过万普后台的【广告设置】功能,手动设置推荐列表的显示样式和广告内容。
  4. 互动广告接口
    互动广告是一个显示在应用内固定位置高度为50像素广告条,将自动显示万普平台提供的广告。结合虚拟货币功能使用,可获得最佳的广告效果和用户体验。
    步骤 1: 复制如下代码到相应Activiy的Layout文件中,并放置在合适的位置:
    < LinearLayout
    android:id="@+id/AdLinearLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"/>
    步骤 2: 在调用样式文件的Activity类中, 添加下面的代码:
    LinearLayout container =(LinearLayout)findViewById(R.id.AdLinearLayout);
    new AdView(this,container).DisplayAd();
  5. 推送广告接口
    推送广告是一种在Android手机通知栏显示的新型广告形式。其特点是不占用广告位,广告点击率高,极少误点击,不费用户流量,比传统的广告形式收入有大幅提升。
    万普推送广告采用了纯绿色推送模式,只在应用开启时才接收广告;用户通过推送广告下载应用同样能获得虚拟货币。推送广告分为自动和手动调用两种模式;
    开发者可通过万普管理平台的“广告设置”随时开启和关闭自动推送广告,设置推送广告播放频度和延时等参数。开发者也可通过手动调用API获取推送广告。
    ⑴手动获取推送广告
    开发者可通过API手动获取一条推送广告:
    AppConnect.getInstance(this).getPushAd();
    该接口限制每个应用2小时内最多调用一次,凌晨0:00-7:00期间禁止调用;开发者也可通过管理后台“广告设置”随时关闭该接口。
    ⑵自定义图标和声音
    //自定义通知栏图标;res_id参数为图标的ResourceId的值
    //例如res_id设置为R.drawable.icon值,可使用当前应用的Icon作为通知栏图标
    AppConnect.getInstance(this).setPushIcon(int res_id);
    //自定义推送广告是否播放提示音;on_off参数设置true开启,默认false为关闭
    AppConnect.getInstance(this).setPushAudio(boolean on_off);
    ⑶自定义通知栏广告样式
    将SDK自带的demo工程中的layout/push_layout.xml文件拷贝到当前工程的layout目录下即可使用自定义广告样式(如果未指定该文件则使用默认的广告样式);开发者可以通过修改该文件来实现任意的自定义推送广告样式。
  6. 迷你广告接口
         迷你广告是一种新的广告形式,每个广告由一个微缩图标和文字链组成,高度仅为24像素,文字颜色、背景颜色及透明度可自定义,特别适用于广告位空间有限的游戏类应用。和传统的Banner大广告条相比,迷你广告采用了流量压缩和本地缓存方式轮换广告,不仅省广告位,而且非常省流量,广告轮换频率更高,相比传统Banner广告条有更高的收益。
    步骤 1: 复制如下代码到相应Activiy的Layout文件中,并放置在合适的位置:
    < LinearLayout android:id="@+id/miniAdLinearLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal"/>
    步骤 2: 在调用样式文件的Activity类中, 添加下面的代码:
    //设置迷你广告背景颜色
    AppConnect.getInstance(this).setAdBackColor(Color.argb(50, 120, 240, 120));
    //设置迷你广告广告语颜色
    AppConnect.getInstance(this).setAdForeColor(Color.YELLOW);
    //若未设置以上两个颜色,则默认为黑底白字
    LinearLayout miniLayout =(LinearLayout)findViewById(R.id.miniAdLinearLayout);
    new MiniAdView(this, miniLayout).DisplayAd(10); //默认10秒切换一次广告
  7. 自定义广告接口
    开发者可通过自定义广告广告接口获取所有可用广告的元数据,自定义广告的展现方式,便于让广告内容完全和您的应用UI融合,可显著提升广告效果。
    ⑴初始化(预先加载)广告数据
    AppConnect.getInstance(this).initAdInfo();
    说明:该接口将在首次调用时,需要预先将所有可用广告的元数据(通常20条左右)全部获取到手机内存,便于程序随时快速调用。广告数据首次加载时间视网络情况决定,通常需要花几秒钟时间,因此,如果应用内需要使用自定义广告功能,建议在程序启动后,尽早先调用initAdInfo()方法预先异步加载一次元数据,便于后续调用getAdInfo()或getAdInfoList()方法时能立即获得数据。
    ⑵随机获取一条广告的元数据
    AdInfo adInfo = AppConnect.getInstance(this).getAdInfo();//每次调用将自动轮换广告
    String adId = adInfo.getAdId(); //广告id
    String adName = adInfo.getAdName(); //广告标题
    String adText = adInfo.getAdText(); //广告语文字
    Bitmap adIcon = adInfo.getAdIcon(); //广告图标(48*48像素)
    int adPoint = adInfo.getAdPoints(); //广告积分
    String description = adInfo.getDescription(); //应用描述
    String version = adInfo.getVersion(); //程序版本
    String filesize = adInfo.getFilesize(); //安装包大小
    String provider = adInfo.getProvider(); //应用提供商 String[] imageUrls = adInfo.getImageUrls(); //应用截图的url数组,每个应用2张截图
    //1.6.3新增属性:
    String adPackage = adInfo.getAdPackage();//广告应用包名
    String action = adInfo.getAction(); //用于存储“安装”或“注册”的字段
    ⑶获取所有可用广告的元数据
    List< AdInfo> adInfoList = AppConnect.getInstance(this).getAdInfoList();
    ⑷自定义广告事件处理接口
    //当广告被点击时,显示广告详情
    AppConnect.getInstance(this).clickAd(adInfo.getAdId());
    //当用户确认要下载广告应用时,启动下载(仅适用于应用下载类广告)
    AppConnect.getInstance(this).downloadAd(adInfo.getAdId());
  8. 工具组件接口
    ⑴用户反馈接口
    在应用内增加用户反馈功能可收集用户意见反馈,便于改进用户体验;开发者可通过管理后台查看用户的反馈信息。添加以下代码收集用户反馈:
    AppConnect.getInstance(this).showFeedback();
    ⑵自家应用列表
    自家应用列表可采用类似推荐列表的形式,列出将开发者自己在万普平台发布的所有应用供用户下载,便于开发者自家应用之间相互推荐。添加以下代码显示开发者自家应用列表:
    AppConnect.getInstance(this).showMore(this);
    ⑶在线配置接口
    String value=AppConnect.getInstance(this).getConfig(String key);
            开发者可以通过万普平台管理后台的“在线配置”功能设置各种参数值,便于在线修改应用的各项配置。其中参数key为在线配置的参数ID,通过次方法可获取到对应的值。
    注意:该方法将在统计器初始化时返回所有参数值,缓存到本地调用,因此需在主界面加载完成后再调用该方法,才能保障可靠获取到在线参数值。
    ⑷推送消息接口
    AppConnect.getInstance(this).pushMessage(title, content, url);
            从1.6版SDK开始,取消了原有的自动推送消息功能,增加了手动API调用方式,方便开发者在通知栏显示各种自定义消息。其中的title、content、url三项参数可自定义,也可结合“在线配置”功能从服务器端获取。
    ⑸错误报告接口
    开发者可通过代码开启错误报告功能,并通过管理后台的“错误报告”功能随时查看收集到的错误报告,以便及时进行修正。
    AppConnect.getInstance(this).setCrashReport(false);//默认值true开启,设置false关闭
    ⑹自动更新接口
    自动更新功能可以检查程序的最新版本,提醒用户下载升级程序。开发者在万普平台【应用详情】中勾选了“检查新版本”选项,每次应用启动时将自动检查新版本。开发者也可以关闭自动检查新版本功能,使用以下代码实现手动检查新版本:
    AppConnect.getInstance(this).checkUpdate();

4
自定义代码模式
某些不便于在AndroidManifest内添加配置的情况下,可使用自定义代码模式取代原有的配置。原有的常规配置方式为:
< activity android:name="com.waps.OffersWebView" android:configChanges="keyboardHidden|orientation"/>
< meta-data android:name="WAPS_ID" android:value="WAPS_ID" />
< meta-data android:name="WAPS_PID" android:value="WAPS_PID" />
使用自定义代码模式替代以上配置的方法:
步骤1:自定义一个OffersWebView类的子类(类名任意指定):
public class MyAdView extends com.waps.OffersWebView { }
步骤2:在AndroidManifest内注册该子类,在< application>段内添加:
< activity android:name="MyPackage. MyAdView"
android:configChanges="keyboardHidden|orientation"/>
其中“MyPackage. MyAdView”值要替换为具体的包名和类名,比如“com.waps.MyAdView”
步骤3:使用以下方式替代AppConnect.getInstance(this)方法初始化统计器:
//AppConnect.getInstance("WAPS_ID",this); //设置WAPS_ID
AppConnect.getInstance("WAPS_ID","WAPS_PID",this); //设置WAPS_ID和WAPS_PID
//在初始化统计器的代码之后,紧接着添加以下代码 ;
AppConnect.getInstance(this).setAdViewClassName("MyPackage. MyAdView");
此外,也可以通过另外一种在AndroidManifest文件内添加配置的方式,来替代以上步骤3的代码:
< meta-data android:name="ADVIEW" android:value="MyPackage. MyAdView" />
< meta-data android:name="APP_ID" android:value="应用标识" />
< meta-data android:name="APP_PID" android:value="分发渠道标识" />
注意,自定义代码模式仅用于不便于在AndroidManifest文件内添加配置的情况。上传到万普平台的版本建议不要使用该方式,不然可能无法通过万普平台的自动审核。
原创粉丝点击