Engage SDK 常见问题解答

发布常见问题解答

谁负责管理内容发布作业?

应用开发者管理内容发布作业,并向 Engage Service 发送请求。这样一来,开发者合作伙伴就可以更好地控制向用户发布内容的时间和方式。这样可以避免为发布内容而过于频繁地唤醒合作伙伴应用。

开发者是否需要发布所有集群类型?

虽然从技术层面来讲,开发者可以只发布一个集群,但我们强烈建议开发者包含更多集群。否则,开发者将错失提升内容互动度的良机。我们强烈建议为每个行业发布所有集群类型。

在应用运行期间,开发者合作伙伴应该以怎样的频率使用 Work Manager 发布数据?

这将由开发者合作伙伴决定。Google 建议,对于一般推荐内容,每天发布一次或两次;对于购物车、重新订购和其他续订内容,则使用事件驱动型方法(例如,在用户将商品添加到购物车或用户中途停止观看电影时,以回调方式启动 worker)。 对于社交应用,务必在每次使用应用后发布更新的推荐聚类。社交应用用户对最新推荐内容更感兴趣,最好是只看到一次帖子。

开发者应在何时调用删除 API?

仅当没有要发布的内容时,才应调用删除 API。请勿随后调用删除和发布 API 来替换内容;发布 API 会自动移除之前的内容。

广播 intent 常见问题解答

为什么 Android 应用开发者需要注册广播 intent?

为了向用户提供新内容,您应该使用广播 intent 来触发数据同步,以应对用户可能不经常使用应用的情况。

无法测试广播 intent

验证应用不支持测试具有权限的广播 intent。您必须在测试时移除权限,然后在第 6 步中将 SDK 切换到正式版之前重新添加这些权限。

不允许后台执行

注册广播 intent 时,您可能会遇到以下错误:

Background execution not allowed: receiving Intent
{ act=com.google.android.engage.action.PUBLISH_RECOMMENDATION .. }

您需要动态注册广播接收器。

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION,
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null));
...

}

工作流常见问题解答

与 SDK 集成时,您可能会遇到以下错误:

应用、集群、实体级验证错误

应用级、集群级和实体级摘要会显示验证错误的数量。这些错误对应于缺少必需字段或提供的值无效。错误消息会以红色显示在每个相关字段下方。在分享 APK 之前,请修正所有验证错误并检查正确性。

深层链接与软件包名称关联。使用 adb 工具测试深层链接是一种不错的方法。

adb shell am start -W