背景:
做產(chǎn)品和運營的小伙伴隘击,對裂變營銷情有獨鐘,主要原因無非裂變營銷有一些獨有的優(yōu)勢:
成本低眯分,低預(yù)算就可以達到很好的效果
易傳播误甚,在各個平臺上基于人群的傳播速度非掣克Γ快
容易形成口碑,在人群中傳播容易形成對品牌的口碑
但是在做裂變營銷的過程中窑邦,對于很多初創(chuàng)團隊或者非互聯(lián)網(wǎng)企業(yè)來說擅威,實現(xiàn)這套流程是有難度的,包括時間成本奕翔,系統(tǒng)的復(fù)用性裕寨,系統(tǒng)的健壯性和在不同社交媒體的適配等,都是問題派继,短時間內(nèi)很難上線宾袜,所以今天我們屢一下這個路徑里面所用到的技術(shù)支撐。
場景
我們今天將以這個場景來看一下技術(shù)的鏈路:
1. A用戶從App分享活動到社交平臺
2. B用戶可以在社交平臺看到活動信息驾窟,參加活動
3. 系統(tǒng)判斷A和B的邀請關(guān)系庆猫,以及B的活動完成情況
4. 系統(tǒng)發(fā)放獎勵給邀請者A和被邀請者B
技術(shù)鏈路
社交裂變基本需要涉及到這么幾個模塊:
1. App內(nèi)的分享能力,支持分享到多平臺绅络,如微信月培,QQ,微博等
2. 在社交平臺內(nèi)傳播恩急,需要記錄傳播關(guān)系
3. 傳播鏈接或二維碼杉畜,能夠無縫啟動應(yīng)用,或者引導(dǎo)用戶去下載App
4. 用戶啟動App后衷恭,需要能夠在App內(nèi)做場景還原
5. 確定邀請關(guān)系此叠,并上報服務(wù)器
以上這套能力基本上是可以完成整個社交裂變分享場景的能力,接下來我們將以市場是第三方公司友盟提供的一些能力随珠,來實現(xiàn)這套鏈路灭袁。
分享能力
分享現(xiàn)在已經(jīng)是非常成熟的能力了猬错,如果只專注微信,則直接集成官方的SDK就可以了茸歧, 可以直接在微信開放平臺倦炒,申請賬號,獲得Key和Security软瞎,然后按照說明文檔執(zhí)行就好逢唤。
如果是集成多個平臺,如微信铜涉,QQ智玻,微博等,建議使用集合式SDK芙代,一個套件就可以完成多平臺集成:
在友盟官網(wǎng)下載集合SDK,勾選所需要的平臺
集成可以采用自動集成方式盖彭,也可以使用手動集成方式纹烹,手動集成基本上就是解壓包拿到j(luò)ar包以后,放在自己的工程里
接下來根據(jù)不同的Android或iOS平臺召边,一步一步集成就好铺呵,這個可以參考官網(wǎng)文檔,不做贅述隧熙,比較簡單
傳播關(guān)系記錄
如果要記錄傳播關(guān)系片挂,是需要在工程里面自定義一些參數(shù),并將這些參數(shù)在分享時候傳遞出去的贞盯,比如我們在代碼里設(shè)置下面幾個:
user_id=xxx(設(shè)置你自己App的用戶識別碼)
share_platfrom=android/ios(區(qū)分哪個系統(tǒng)分享出來的)
share_target_platform=sdk.platform(區(qū)分分享到微信還是QQ等哪個平臺去了)
.....
其他一些你希望帶出去的參數(shù)音念,都可以提前定義好湾蔓。定義完成以后敲街,我們其實不能明文傳出去,因為有些還是涉密信息的姆打,所以這里有個加密過程件余,可以調(diào)用SDK里面的方法讥脐,將這些參數(shù)打包變?yōu)橐粋€rootTrackcode,將這個code信息放在鏈接中對外傳播啼器。
此時還需要做一件事旬渠,就是在分享的H5鏈接里面,需要能夠接收到你分享出來的參數(shù)端壳,所以此時需要在H5里面集成一個JS SDK告丢。
其實這個SDK很簡單,主要完成兩個能力:
用于接收我們客戶端分享出來的信息
用DeepLink的能力更哄,最后將我們的App啟動起來
所以這個SDK是一個必備的信息芋齿,他的實現(xiàn)也比較簡單腥寇,就跟正常集成三方的JS SDK一樣的步驟。
啟動App
啟動App這一步觅捆,是用DeepLink能力赦役,Deeplink(深度鏈接)是一種能夠?qū)崿F(xiàn)應(yīng)用之間無縫跳轉(zhuǎn)的技術(shù)。在移動端栅炒,DeepLink能夠?qū)崿F(xiàn)點擊H5鏈接直接跳轉(zhuǎn)到目標(biāo)App具體頁面的功能掂摔。例如您可以將App內(nèi)的一個H5頁面鏈接通過微信分享給好友,好友點擊這個鏈接就能直接拉起對應(yīng)的App并直接跳轉(zhuǎn)到對應(yīng)詳情頁赢赊,而不是App首頁乙漓。如果好友未下載App則會跳轉(zhuǎn)到App下載頁面,下載成功后仍然能打開App指定頁面释移。這樣能大大縮短用戶使用路徑叭披,降低用戶流失率。因此Deeplink功能被廣泛用在眾多行業(yè)App拉新推廣等場景玩讳,例如:
電商類App:在分享商品鏈接中點擊涩蜘,進入 App 內(nèi)對應(yīng)店鋪或購物頁面
資訊類App:在分享新聞鏈接中點擊,進入 App 內(nèi)對應(yīng)內(nèi)容頁面
游戲類App:在分享邀請組隊的鏈接中點擊熏纯,進入 App 內(nèi)對應(yīng)的游戲房間或戰(zhàn)隊隊伍中
廣告App:在社交平臺點擊相關(guān)廣告同诫,進入 App 內(nèi)對應(yīng)內(nèi)容頁面
拉新活動:例如老帶新邀請、福利抽獎等 H5 頁面活動樟澜,參與者可以點擊進入 App 內(nèi)對應(yīng)活動參與頁面
由于Deeplink技術(shù)已經(jīng)演變了很多年误窖,因此不同操作系統(tǒng)都有著不同版本的Deeplink技術(shù),下面會介紹兩種最常用的Deeplink方法
1.URL Scheme方法
在iOS 9和安卓10(M)之前秩贰,移動端實現(xiàn)Deeplink的方式都是通過URL Scheme霹俺。一般形式是這樣的:Scheme://host:port/path?query=xxxxxxx。
Scheme:表示的是一個 URL 中最初始的位置萍膛,即?://?之前的那段字符吭服,我們可以用Scheme來定位對應(yīng)的App。例如淘寶的Scheme就是taobao蝗罗、支付寶的Scheme就是alipay艇棕,新浪微博的Scheme是sinaweibo。
path:代表了想要跳轉(zhuǎn)的指定頁面
query:代表了想要傳遞的參數(shù)串塑。URL Scheme方式優(yōu)點在于實現(xiàn)簡單沼琉,但弊端也很明顯:
微信、微博桩匪、手百禁掉了部分App的Scheme打瘪。造成的后果是用戶不能直接從微信內(nèi)H5頁面喚起APP,而是得通過右上角瀏覽器打開的形式,在瀏覽器內(nèi)直接喚起App。
H5頁面會彈出一個提示框:“是否打開某某App”闺骚,需要讓用戶點擊確認(rèn)一次彩扔,增加了用戶使用流程2.Universal link方法Universal link 是蘋果公司在2015年推出的新一代Deeplink方法,iOS9及以上的用戶可以通過點擊一個https 鏈接無縫地跳轉(zhuǎn)到一個App應(yīng)用內(nèi)的指定頁面僻爽,中間不需要用戶點擊確認(rèn)打開App虫碉,也不需要用戶在右上角跳轉(zhuǎn)通過safari打開跳轉(zhuǎn)。如果用戶沒有安裝這個App胸梆,則會跳轉(zhuǎn)到App的下載頁面敦捧。可以看出Universal link方式比URL Scheme方式更好碰镜,并且目前國內(nèi)微信兢卵、QQ已經(jīng)支持Universal link形式的跳轉(zhuǎn),因此更推薦您采取Universal link的形式在iOS端喚起App绪颖。
所以DeepLink的JS SDK就是我們上一步所集成的那個秽荤,無需再額外集成了。
也就是說我們基本上集成了Share的SDK和JS SDK這兩個菠发,就具備了我們?nèi)溌返姆窒?追蹤+啟動的能力王滤。
判斷A和B用戶的邀請關(guān)系
還記得我們上面說的需要讓你傳的自定義參數(shù)嗎? 在這里就派上用場了,經(jīng)過在社交平臺上的傳播鏈路滓鸠,最終我們前面的那個code會在啟動App時候,上報到服務(wù)器上去第喳,然后在被啟動用戶的客戶端里糜俗,我們同時上報這個B客戶的ID,兩個ID之間的匹配關(guān)系就可以得到了曲饱。
當(dāng)然在B用戶里悠抹,我們其實可以有更多的場景來去定義,比如是啟動事件扩淀,還是注冊事件楔敌,還是下單購買事件等,這些事件都可以通過自定義的方式來上報驻谆,下面是一個自定義參數(shù)的例子:
先初始化:
public class UmengApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化SDK
UMConfigure.init(this, "您的appkey", "您的渠道", UMConfigure.DEVICE_TYPE_PHONE, null);
// 選用合適的頁面采集模式卵凑,這里以LEGACY_MANUAL為例
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_MANUAL);
// 支持在子進程中統(tǒng)計自定義事件
UMConfigure.setProcessEvent(true);
然后定義自定義上傳參數(shù)
Map<String, Object> music = new HashMap<String, Object>();
music.put("music_type", "popular");//自定義參數(shù):音樂類型胜臊,值:流行
music.put("singer", "JJ"); //歌手:(林俊杰)JJ
music.put("song_name","A_Thousand_Years_Later"); //歌名:一千年以后
music.put("song_price",100); //價格:100元
MobclickAgent.onEventObject(this, "play_music", music);
提前初始化onEventObject
獲取關(guān)系
最后獲取邀請關(guān)系也比較簡單勺卢,通過接口就可以了,現(xiàn)在友盟平臺拿到你的Key和Security
然后調(diào)用相應(yīng)的OpenAPI象对,傳入邀請者ID黑忱,然后即可獲取到被邀請者ID,剩下的就是你業(yè)務(wù)邏輯的處理了。
總結(jié)
綜上所述甫煞,整個過程涉及到客戶端SDK的能力菇曲,傳播網(wǎng)頁H5中的能力和最終服務(wù)端匹配能力。每個環(huán)節(jié)都值得我們深入研究抚吠,使得鏈路更順暢常潮,用戶體驗更好。