如果你使用远程配置自定义了付费墙,则需要在移动应用代码中自行实现渲染逻辑,才能将其展示给用户。由于远程配置的灵活性完全由你掌控,付费墙的内容和外观都取决于你的设计。Adapty 提供了获取远程配置的方法,让你能够自主展示自定义付费墙。
获取 Flow 远程配置并展示
在 v4 中,一个 flow 在 remoteConfigs 数组中为每个已配置的语言环境携带一个 AdaptyRemoteConfig 条目。选取与用户偏好匹配的语言环境,然后读取所需的值。
Adapty.getFlow("YOUR_PLACEMENT_ID") { result ->
when (result) {
is AdaptyResult.Success -> {
val flow = result.value
val config = flow.remoteConfigs.firstOrNull { it.locale == "en" }
?: flow.remoteConfigs.firstOrNull()
val headerText = config?.dataMap?.get("header_text") as? String
}
is AdaptyResult.Error -> {
val error = result.error
// handle the error
}
}
}
Adapty.getFlow("YOUR_PLACEMENT_ID", result -> {
if (result instanceof AdaptyResult.Success) {
AdaptyFlow flow = ((AdaptyResult.Success<AdaptyFlow>) result).getValue();
AdaptyRemoteConfig config = null;
for (AdaptyRemoteConfig remoteConfig : flow.getRemoteConfigs()) {
if ("en".equals(remoteConfig.getLocale())) {
config = remoteConfig;
break;
}
}
if (config == null && !flow.getRemoteConfigs().isEmpty()) {
config = flow.getRemoteConfigs().get(0);
}
if (config != null && config.getDataMap().get("header_text") instanceof String) {
String headerText = (String) config.getDataMap().get("header_text");
}
} else if (result instanceof AdaptyResult.Error) {
AdaptyError error = ((AdaptyResult.Error) result).getError();
// handle the error
}
});
至此,一旦您获取了所有必要的数据,就可以将其渲染并组装成一个美观的页面。请确保设计能够适配各种手机屏幕尺寸和方向,为不同设备提供流畅且友好的用户体验。
Warning
请务必按照以下说明记录付费墙浏览事件,以便 Adapty 分析系统能够采集漏斗和 A/B 测试所需的数据。
完成付费墙的展示后,继续设置购买流程。当用户发起购买时,只需使用流程中的产品调用 .makePurchase() 方法即可。有关 .makePurchase() 方法的详细信息,请参阅发起购买。
我们建议创建一个备用付费墙。当用户没有网络连接或无可用缓存时,备用付费墙会自动展示,确保用户在任何情况下都能获得流畅的体验。
追踪付费墙浏览事件
Adapty 帮助你衡量流程和付费墙的表现。购买数据会自动收集,但浏览事件需要你手动记录,因为只有你知道用户何时看到了某个流程。
要记录浏览事件,只需调用 .logShowFlow(flow),相关数据便会反映在漏斗和 A/B 测试的数据指标中。
Important
如果你使用 Flow Builder 或 付费墙编辑工具 渲染流程或付费墙,则无需调用 .logShowFlow(flow)。Adapty 在这些情况下会自动记录浏览行为。
Adapty.logShowFlow(flow)
请求参数:
| 参数 | 是否必填 | 描述 |
|---|
| flow | 必填 | 通过 Adapty.getFlow 获取的 AdaptyFlow 对象。 |
如果你通过远程配置自定义了付费墙,则需要在移动应用代码中实现渲染逻辑,才能将其展示给用户。远程配置具有高度灵活性,完全由你掌控——付费墙包含哪些内容、界面如何呈现,都取决于你的设计。我们提供了获取远程配置的方法,让你能够自主展示通过远程配置搭建的自定义付费墙。
获取付费墙远程配置并呈现
要获取付费墙的远程配置,请访问 remoteConfig 属性并提取所需的值。
Adapty.getPaywall("YOUR_PLACEMENT_ID") { result ->
when (result) {
is AdaptyResult.Success -> {
val paywall = result.value
val headerText = paywall.remoteConfig?.dataMap?.get("header_text") as? String
}
is AdaptyResult.Error -> {
val error = result.error
// handle the error
}
}
}
Adapty.getPaywall("YOUR_PLACEMENT_ID", result -> {
if (result instanceof AdaptyResult.Success) {
AdaptyPaywall paywall = ((AdaptyResult.Success<AdaptyPaywall>) result).getValue();
AdaptyPaywall.RemoteConfig remoteConfig = paywall.getRemoteConfig();
if (remoteConfig != null) {
if (remoteConfig.getDataMap().get("header_text") instanceof String) {
String headerText = (String) remoteConfig.getDataMap().get("header_text");
}
}
} else if (result instanceof AdaptyResult.Error) {
AdaptyError error = ((AdaptyResult.Error) result).getError();
// handle the error
}
});
此时,一旦您获取了所有必要的值,就可以将它们渲染并组合成一个视觉上吸引人的页面。请确保设计能够适配各种手机屏幕尺寸和方向,在不同设备上提供流畅且用户友好的体验。
Warning
请务必按照下方说明记录付费墙查看事件,以便 Adapty 分析系统能够收集漏斗和 A/B 测试所需的数据。
展示付费墙后,请继续设置购买流程。当用户发起购买时,只需使用付费墙中的产品调用 .makePurchase()。有关 .makePurchase() 方法的详细信息,请阅读发起购买。
我们建议创建一个备用付费墙(即备用付费墙)。当没有网络连接或缓存可用时,该备用付费墙将向用户展示,确保在这些情况下依然提供流畅的体验。
追踪付费墙查看事件
Adapty 帮助您衡量付费墙的效果。虽然我们会自动收集购买数据,但记录付费墙查看事件需要您的参与,因为只有您才知道用户何时看到了付费墙。
要记录付费墙查看事件,只需调用 .logShowPaywall(paywall),该事件将反映在漏斗和 A/B 测试的付费墙数据图表中。
Important
如果您展示的是在付费墙编辑工具中创建的付费墙,则无需调用 .logShowPaywall(paywall)。
Adapty.logShowPaywall(paywall)
请求参数:
| 参数 | 是否必填 | 描述 |
|---|
| paywall | 必填 | 一个 AdaptyPaywall 对象。 |