万普SDK使用说明
轉自:http://www.waps.cn/app/app_detail.jsp?app_id=AF33D08E64EB2AC6BD8830B0C5261A22
平臺介紹
使用步驟
| 萬普世紀移動營銷服務平臺(以下稱為“萬普平臺”)的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:在的應用中第一個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(); 在應用中合理設置虛擬貨幣及消費機制,可促進用戶參與應用內購買或參與廣告活動,增強應用粘性,大幅提升收益。如果您的應用開啟了虛擬貨幣功能,需要使用該接口和服務器同步用戶的虛擬貨幣余額。 ⑴獲取用戶虛擬貨幣 步驟 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接口返回 注意,所有通過萬普廣告獲得的虛擬貨幣將自動給予到用戶,無需調用該接口。該接口僅用于用戶完成了開發者指定的其他任務的情況下額外給予用戶虛擬貨幣。開發者可通過管理后臺禁用該接口。 推薦列表(也稱Offer,廣告墻)是萬普平臺提供的一種集中展示型廣告。開發者可在應用中合適的位置加入“推薦應用”、 “免費賺積分”等類似字樣的功能,獲取更高的廣告收益或參與流量交換。添加如下代碼,即可顯示萬普平臺推薦應用列表:? AppConnect.getInstance(this).showOffers(this); 提示:開發者可通過萬普后臺的【廣告設置】功能,手動設置推薦列表的顯示樣式和廣告內容。 互動廣告是一個顯示在應用內固定位置高度為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(); 推送廣告是一種在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目錄下即可使用自定義廣告樣式(如果未指定該文件則使用默認的廣告樣式);開發者可以通過修改該文件來實現任意的自定義推送廣告樣式。 迷你廣告是一種新的廣告形式,每個廣告由一個微縮圖標和文字鏈組成,高度僅為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秒切換一次廣告 開發者可通過自定義廣告廣告接口獲取所有可用廣告的元數據,自定義廣告的展現方式,便于讓廣告內容完全和您的應用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());? ⑴用戶反饋接口 在應用內增加用戶反饋功能可收集用戶意見反饋,便于改進用戶體驗;開發者可通過管理后臺查看用戶的反饋信息。添加以下代碼收集用戶反饋: 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文件內添加配置的情況。上傳到萬普平臺的版本建議不要使用該方式,不然可能無法通過萬普平臺的自動審核。 |
總結
- 上一篇: (02)Cartographer源码无死
- 下一篇: 如何提交一个高质量的bug?