目的
1洞豁、Unity集成openinstall sdk逛薇?基于免填邀請(qǐng)碼安裝的渠道追蹤統(tǒng)計(jì)服務(wù)
最近在使用一個(gè)叫openinstall的SDK萍启,通過(guò)它實(shí)現(xiàn)免填邀請(qǐng)碼的功能女揭,集成到unity游戲開發(fā)中。對(duì)App安裝流程的優(yōu)化趴腋,尤其是免填寫邀請(qǐng)碼安裝试伙,App推廣的有獎(jiǎng)邀請(qǐng)活動(dòng)更大程度的達(dá)到推廣爆炸式的效果嘁信。
在分享鏈接自定義各種動(dòng)態(tài)參數(shù)(如推廣渠道號(hào),邀請(qǐng)碼疏叨,游戲房間號(hào)潘靖,用戶id等等)。通過(guò)在分享鏈接url中附帶app邀請(qǐng)人的用戶id蚤蔓,就可達(dá)到免填邀請(qǐng)碼的效果;或者app通過(guò)在url中附帶游戲房間號(hào)實(shí)現(xiàn)直達(dá)游戲房間也可建立上下級(jí)關(guān)系卦溢;unity開發(fā)中免不了邀請(qǐng)用戶獲得獎(jiǎng)勵(lì);新老用戶直達(dá)游戲場(chǎng)景秀又;從各種瀏覽器一鍵拉起游戲場(chǎng)景等等单寂;
那么如何在unity集成openinstall呢?是的吐辙,沒錯(cuò)宣决,openinstall平臺(tái)整合了方便 unity 集成使用 openinstall的方案步驟
注冊(cè)/登錄openinstall開發(fā)者平臺(tái)http://developer.openinstall.io/并創(chuàng)建應(yīng)用
可以參考官方文檔
導(dǎo)入 openinstall.unitypackage
右擊 Assets
,選擇 Import Package
中的 Custom Package...
在文件選擇框中選中 openinstall.unitypackage
昏苏,導(dǎo)入所有文件
將 Assets/Plugins/OpenInstall
下的 OpenInstall.prefab
拖入對(duì)應(yīng)的場(chǎng)景中使用 openinstall 實(shí)現(xiàn)業(yè)務(wù)邏輯
平臺(tái)配置
iOS 平臺(tái)
無(wú)需寫一句Object-C代碼尊沸,只需進(jìn)行如下配置
備注:
1、如果用戶使用了 IMPL_APP_CONTROLLER_SUBCLASS
宏生成自己的 customAppController
,請(qǐng)?jiān)谧约旱?customAppController
中添加初始化方法和拉起回調(diào)方法贤惯,并刪除掉 Assets/Plugins/iOS/libs
中的 CustomAppController.mm
文件洼专;
2、如果用戶使用了 iOS9.0 新 API application:openURL:options:
孵构,請(qǐng)?jiān)谛?API 中添加 if ([OpenInstallSDK handLinkURL:url]) return YES;
回調(diào)判斷
初始化配置
在 Info.plist 文件中配置 appKey 鍵值對(duì)屁商,如下:
<key>com.openinstall.APP_KEY</key>
<string>從openinstall官網(wǎng)后臺(tái)獲取應(yīng)用的appkey</string>
universal links配置(iOS9以后推薦使用)
對(duì)于iOS,為確保能正常跳轉(zhuǎn)颈墅,AppID必須開啟 Associated Domains 功能蜡镶,請(qǐng)到 蘋果開發(fā)者平臺(tái),選擇 Certificate, Identifiers & Profiles
恤筛,選擇相應(yīng)的 AppID帽哑,開啟 Associated Domains。注意:當(dāng) AppID 重新編輯過(guò)之后叹俏,需要更新相應(yīng)的 mobileprovision 證書。(詳細(xì)步驟請(qǐng)看openinstall官網(wǎng)后臺(tái)文檔僻族,universal link需從后臺(tái)獲取)
scheme配置
在 Info.plist
文件中粘驰,在 CFBundleURLTypes
數(shù)組中添加應(yīng)用對(duì)應(yīng)的 scheme
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>openinstall</string>
<key>CFBundleURLSchemes</key>
<array>
<string>"從openinstall官網(wǎng)后臺(tái)獲取應(yīng)用的scheme"</string>
</array>
</dict>
</array>
Android 平臺(tái)
將 sample 目錄中的 AndroidManifest.xml
文件拷貝到項(xiàng)目的 Assets/Plugin/Android/
目錄下,并修改文件內(nèi)容:將 openinstall 為應(yīng)用分配的 appkey
和 scheme
替換至相應(yīng)位置
備注:如已存在 AndroidManifest.xml
述么,請(qǐng)參考文件進(jìn)行合并處理
使用指南
使用 OpenInstall
之前蝌数,請(qǐng)先導(dǎo)入命名空間
using io.openinstall.unity;
然后通過(guò) GameObject
獲取 OpenInstall
實(shí)例
private OpenInstall openinstall;
// Use this for initialization
void Start () {
openinstall = GameObject.Find("OpenInstall").GetComponent<OpenInstall>();
}
獲取拉起數(shù)據(jù)
在 Start
方法中,獲取到實(shí)例之后注冊(cè)拉起回調(diào)度秘,這樣當(dāng) App 被拉起時(shí)顶伞,會(huì)回調(diào)方法饵撑,并可在回調(diào)中獲取拉起數(shù)據(jù)
openinstall.registerWakeupHandler(getWakeupFinish);
public void getWakeupFinish(OpenInstallData wakeupData)
{
Debug.Log("OpenInstallUnity getWakeupFinish : 渠道編號(hào)=" +wakeupData.channelCode
+ ", 自定義數(shù)據(jù)=" + wakeupData.bindData);
}
獲取安裝數(shù)據(jù)
在應(yīng)用需要安裝參數(shù)時(shí)唆貌,調(diào)用以下 api 獲取由 SDK 保存的安裝參數(shù)滑潘,可設(shè)置超時(shí)時(shí)長(zhǎng),單位秒
openinstall.getInstall(8, getInstallFinish);
public void getInstallFinish(OpenInstallData installData)
{
Debug.Log("OpenInstallUnity getInstallFinish : 渠道編號(hào)=" + installData.channelCode
+ "锨咙,自定義數(shù)據(jù)=" + installData.bindData);
}
渠道統(tǒng)計(jì)
SDK 會(huì)自動(dòng)完成訪問量语卤、點(diǎn)擊量、安裝量酪刀、活躍量粹舵、留存率等統(tǒng)計(jì)工作。其它業(yè)務(wù)相關(guān)統(tǒng)計(jì)由開發(fā)人員代碼埋點(diǎn)上報(bào)
注冊(cè)上報(bào)
在用戶注冊(cè)成功后骂倘,調(diào)用接口上報(bào)注冊(cè)量
openinstall.reportRegister();
效果點(diǎn)上報(bào)
統(tǒng)計(jì)終端用戶對(duì)某些特殊業(yè)務(wù)的使用效果眼滤,如充值金額,分享次數(shù)等等历涝。調(diào)用接口前诅需,請(qǐng)先進(jìn)入 openinstall 管理后臺(tái) “效果點(diǎn)管理” 中添加效果點(diǎn),第一個(gè)參數(shù)對(duì)應(yīng)管理后臺(tái) 效果點(diǎn)ID
openinstall.reportEffectPoint("effect_test", 1);
打包測(cè)試