推送開發實戰:APP如何實現跟隨使用者不同場景,實現不同的內容推薦
對於應用來說,藉助推送能力進行使用者促活尤其重要。但是常規的推送方式,往往很難把握當前使用者場景和實際需求,訊息到達使用者手機,卻沒法真正引起使用者注意。這其中有一個原因是訊息出現在使用者裝置時,運營人員無法準確知道使用者當前的狀態,很難做到投其所好。而這種盲推的推送方式,往往事倍功半,甚至招致使用者厭煩。是否有辦法可以瞭解使用者當前的一些狀態資訊,做到定製化的推送呢?
華為推送5.0 新增的基於使用者場景的智慧推送,便是為了解決這一運營痛點。通過識別不同的使用者狀態,在合適的時機和場景下,向用戶展示內容,從而真正的投使用者所好,推送使用者感興趣的資訊。看似複雜的功能,實現起來,卻非常簡單。
下面我們以一個demo開發實戰為例,一起看下如何快速實現基於場景推送訊息。
此Demo已在Github上開源,如果你對實現方式感興趣,可以下載原始碼:
https://github.com/HMS-Core/hms-push-clientdemo-android
一、開發實戰
1.整合pushSDK 5.0
1.1開發準備
1.1.1新增應用的AppGallery Connect配置檔案
下載"agconnect-services.json"檔案。
將下載的"agconnect-services.json"檔案移至AndroidStudio開發工程app的根目錄下。
1.1.2配置HMS Core SDK的Maven倉地址
開啟Android Studio專案級“build.gradle”檔案
新增HUAWEI agcp外掛以及Maven程式碼庫。
buildscript { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } dependencies { classpath 'com.huawei.agconnect:agcp:1.3.1.300' } } allprojects { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } }
1.1.3 新增編譯依賴
開啟應用級的“build.gradle”檔案
在“dependencies”中新增如下編譯依賴。
dependencies {
implementation 'com.huawei.hms:push:5.0.0.300'
}
在檔案頭apply plugin: 'com.android.application'下一行新增如下配置
apply plugin: 'com.huawei.agconnect'
1.1.4 在AndroidManifest.xml配置
DemoHmsMessageService類(類名由開發者自定義,此處僅是舉例)繼承於HmsMessageService類並實現其中的方法。
<service
android:name=".DemoHmsMessageService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
1.1.5 配置混淆指令碼
開啟工程的混淆配置檔案“proguard-rules.pro”
-ignorewarning
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
上述我們列舉了整合的關鍵步驟,詳細步驟參見pushsdk 5.0接入文件:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-config-agc-0000001050170137
確保推送功能可用再進入下一步。
二.接入情景智慧推送功能
藉助情景智慧推送,可以實現如下場景的推送:
- 識別節假日、週末
- 識別使用者當前天氣情況(炎熱、適宜、寒冷)
- 識別使用者當前紫外線強度
- 識別使用者手機是否取消了免打擾
- 識別使用者裝置是否連線耳機或者車載藍芽
在完成推送的基本整合後,實現情景智慧推送非常簡單,僅需增加四行程式碼,申請獲取使用者的相關許可權即可。
- 使用節假日推送、在週末推送、紫外線強度、溫度範圍的場景需要配置位置許可權,且需要將HMS Core和應用的位置許可權都開啟。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
- 識別耳機插入和車載藍芽連線的場景需要配置藍芽許可權。
<uses-permission android:name="android.permission.BLUETOOTH" />
由於上述可能涉及到獲取使用者新的許可權,因此記得在應用的隱私宣告進行相應的更新,根據實際情況,增加上述許可權的使用說明。
需要注意,情景智慧推送的基本依賴條件如下:
HMS Core版本 | > 5.0.0 |
---|---|
推送服務 版本(應用市場搜尋“推送服務”) | 推送服務版本:>11.0.0.400 |
因此實際測試過程中,需要在滿足上述條件的裝置上進行操作。
確保上述條件滿足後,接下來就可以在華為推送運營控制檯上建立情景智慧任務了。
三、運營控制檯操作指導
步驟一:登入華為開發者聯盟,按照如下路徑,進入推送控制檯。
管理中心 → AppGallery Connect(應用市場) → 我的應用 → 選擇目標應用 → 推送服務
步驟二:進入推送服務頁籤,點選“新增情景智慧推送通知”
步驟三:填寫推送內容
步驟四:選擇推送場景
步驟五:點擊發送,等待端側觸發場景後展示
建立任務完成後,見到該任務狀態變成已生效,代表任務已經下發到裝置。
該裝置等待10分鐘左右會進行情景任務建立,等到滿足情景觸發條件以後,就能在裝置上看到推送的情景智慧通知。
四、效果展示
至此,我們就實現了基於使用者插入耳機(或者連入藍芽耳機)這一場景,針對性地推送。拋轉引玉,更多豐富的結合場景的推送,等你來親自探索開發。
我們的宗旨,是讓使用者在合適的時間,合適的場景,接收到感興趣的內容!
原文連結:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202326981197520144&fid=18
原作者:別吃草莓