作为开发者,您是否留意过这一项用户数据:“新用户留存率”。
获客只是用户运营的第一步,留存才能带来实打实的转化。现实是,很多用户下载并注册了App,但出于各种原因,后续并没有进一步操作。高获客、低留存,意味着拉新只成功了一半。
新注册用户不访问应用的时间越长,流失的可能性就越高。如何乘胜追击留住用户,而不是被动等待卸载?注册后的用户触达通道尤为重要。
短信作为一种常见的营销手段,受众覆盖面广,发送方式简单;更为重要的是,发布成本极低,按量付费,ROI超100%。
接下来,我们就分三大步骤,手把手教您打通用户触达通道——欢迎短信。通过高效精准的触达,提高新用户留存率。
整个过程会调用短信服务、Serverless的认证服务和云函数。用户注册成功后,其注册时填写的手机号便会收到应用的欢迎短信,引导用户快速融入应用场景,第一时间知晓热门内容。
Step1:启用Serverless认证服务,打造手机号认证方式
首先我们需要通过接入认证服务来打造应用的帐号系统。
-
启用认证服务
1.登录HUAWEI AppGallery Connect网站,点击“我的项目”。
2.在项目列表中点击您的项目。
3.选择“构建 > 认证服务”,进入认证服务页面,完成如下操作:
a. 开通认证服务
b. 启用手机号码认证方式
-
开发手机号码认证方式
1.首先我们需要调用sendVerifyCode方法获取验证码用于注册:
public void sendPhoneVerify(String accountNumber) {
String countryCode = "86";
VerifyCodeSettings settings = VerifyCodeSettings.newBuilder()
.action(VerifyCodeSettings.ACTION_REGISTER_LOGIN)
.sendInterval(30)
.locale(Locale.SIMPLIFIED_CHINESE)
.build();
if (notEmptyString(countryCode) && notEmptyString(accountNumber)) {
Task<VerifyCodeResult> task = PhoneAuthProvider.requestVerifyCode(countryCode, accountNumber, settings);
task.addOnSuccessListener(TaskExecutors.uiThread(), verifyCodeResult -> {
mAuthReCallBack.onSendVerify(verifyCodeResult);
}).addOnFailureListener(TaskExecutors.uiThread(), e -> {
Log.e(TAG, "requestVerifyCode fail:" + e.getMessage());
mAuthReCallBack.onFailed(e.getMessage());
});
} else {
Log.w(TAG, "info empty");
}
}
2. 而后我们调用createUser方法进行用户注册
public void registerPhoneUser(String accountNumber, String verifyCode, String password) {
String countryCode = "86";
PhoneUser phoneUser = new PhoneUser.Builder()
.setCountryCode(countryCode)
.setPhoneNumber(accountNumber)
.setVerifyCode(verifyCode)
.setPassword(password)
.build();
AGConnectAuth.getInstance().createUser(phoneUser)
.addOnSuccessListener(signInResult -> {
mAuthReCallBack.onAuthSuccess(signInResult, 11);
}).addOnFailureListener(e -> {
mAuthReCallBack.onFailed(e.getMessage());
});
}
3. 对于已注册过的用户我们就可以调用signin方法进行登录操作
public void phoneLogin(String phoneAccount, String photoPassword) {
String countryCode = "86";
AGConnectAuthCredential credential = PhoneAuthProvider.credentialWithVerifyCode(
countryCode,
phoneAccount,
photoPassword,
null);
AGConnectAuth.getInstance().signIn(credential).addOnSuccessListener(signInResult -> {
Log.i(TAG, "phoneLogin success");
mAuthLoginCallBack.onAuthSuccess(signInResult, 11);
signInResult.getUser().getToken(true).addOnSuccessListener(tokenResult -> {
String token = tokenResult.getToken();
Log.i(TAG, "getToken success:" + token);
mAuthLoginCallBack.onAuthToken(token);
});
}).addOnFailureListener(e -> {
Log.e(TAG, "Login failed: " + e.getMessage());
mAuthLoginCallBack.onAuthFailed(e.getMessage());
});
}
Step2:启用Serverless云函数服务,并就其设置认证服务注册成功触发器
上述操作完成后,您需在云函数中配置认证服务触发器。
1.登录HUAWEI AppGallery Connect网站,点击“我的项目”。
2.在项目列表中点击您的项目。
3.选择“构建 > 云函数”,进入云函数页面,完成如下操作:
a. 启用云函数服务
b. 创建发送欢迎短信的函数(下一章节详细介绍)
d. 创建认证服务触发器:事件名称选择“用户注册”
Step3:在Serverless云函数中调用短信服务接口发送短信
在用户注册成功后需要对用户发送欢迎短信,此处短信我们使用HUAWEI AppGallery Connect提供的短信服务发送。
-
开通短信服务并设置短信模板
1.登录HUAWEI AppGallery Connect网站,点击“我的项目”。
2.在项目列表中点击您的项目。
3.选择“增长 > 短信服务”,进入短信服务页面,完成如下操作:
a.开通短信服务
b.配置短信签名
c.配置短信模板
d.启用API调用
-
云函数调用短信服务Rest Api接口发送短信
1.通过触发器获取用户的手机号码及用户信息
var phoneNumber = event.phone.slice(4);
var userID = event.uid;
var userName = "认证用户ID" + phoneNumber.slice(11);
2. 调用短信服务Rest Api发送短信
var requestData = {
"account": "AGC199",
"password":"Huawei1234567890!",
"requestLists": [
{
"mobiles":["" + phoneNumber],
"templateId":"SMS02_21090100001",
"messageId":"12345",
"signature":"【PhotoPlaza】"
}
],
"requestId": "" + curTime
};
logger.info("requestData: " + JSON.stringify(requestData));
var options = {
hostname: '121.37.23.38',
port: 18312,
path: '/common/sms/sendTemplateMessage',
method: 'POST',
headers: {
'Content-Type' : 'application/json'
},
rejectUnauthorized: false,
requestCert: false
};
var req = https.request(options, function(res) {
res.on('data', function(data) {
var response = JSON.parse(data.toString());
logger.info('All resultList: ' + JSON.stringify(response.resultLists));
});
res.on('end', function(){
logger.info('RequestResult: success');
let result = {"message":"Send Message Success"};
callback(result);
});
res.on('error', function(e) {
logger.info('request error, ' + e.message);
let result = {"message":"error:" + e.message}
callback(result);
});
});
req.on('error', function(error) {
logger.info('request error, ' + error.message);
let result = {"message":"error:" + e.message}
callback(result);
});
req.write(JSON.stringify(requestData));
req.end();
这样就搞定啦!
在搭建过程中或者对Serverless服务有任何疑惑的,可以发送邮件至 [email protected] 进行咨询。
更多关于欢迎短信通知的内容亦可参考文档:
3.短信服务开发指南