# 为沟通做好准备

这些设置决定了玩家如何体验您的消息，以及您能否判断哪些做法有效。请在发送第一条消息之前完成设置，这样玩家就不会在错误的时间收到权限请求或消息，您也能从第一天起衡量效果。

<span id="ask-for-push-permission-at-the-right-moment" />

## 在合适的时机请求推送权限

<Aside type="caution" icon="setting" title="需要开发人员协助">
将推送权限请求从首次启动中移出，需要修改游戏代码。请将 [开始之前](/zh/product/content/in-apps/show-in-app-before-push-permission-prompt/#before-you-start) 分享给您的开发人员。
</Aside>

在 iOS 上，每次安装只会显示一次系统提示。如果玩家点击 **不允许**，游戏将无法再次显示该提示。因此，不要在首次启动时请求权限，因为此时玩家还不了解这款游戏。

请改为分两步请求。首先，显示一条自定义应用内消息，说明通知能为玩家带来什么。只有点击其中的 **允许** 按钮才会打开系统提示。

在玩家已经喜欢上游戏时显示这条消息。选择标志这一时刻的事件。玩家在该事件发生后下次打开游戏时，就会看到这条消息。例如：

* 完成新手教程后：`Tutorial completed` 事件。
* 完成第一个关卡后：`Level completed` 事件。
* 领取第一份奖励后：`Daily reward claimed` 事件。
* 获得第一个成就后：`Achievement unlocked` 事件。

设置方法：

1. 构建应用内消息。请参阅 [构建应用内消息](/zh/product/content/in-apps/show-in-app-before-push-permission-prompt/#build-the-in-app)。
2. 创建一个从您所选事件开始的 Journey。请参阅 [在请求权限前触发应用内消息](/zh/product/content/in-apps/show-in-app-before-push-permission-prompt/#trigger-the-in-app-before-permission-is-requested)。对于 `Tutorial completed`，添加条件 `completion` 为 true。
3. 如果事件会重复发生，例如 `Level completed`，请打开 **设置**，选择 **活动入口限制**，选择 **自定义周期**，并将 **在...内一次** 设置为 **永久**，这样玩家只会看到一次这条消息。
4. 跳过已经允许通知的玩家。请参阅 [为已选择加入的用户跳过提示](/zh/product/content/in-apps/show-in-app-before-push-permission-prompt/#skip-the-prompt-for-users-who-already-opted-in)。

对于拒绝授权的玩家，[Journey](/zh/tutorials/industry-playbooks/mobile-games/build-the-journeys/) 会通过其他渠道触达他们。[可达性检查](/zh/product/customer-journey/journey-elements/flow-controls/reachability-check/) 会根据可触达玩家的渠道，将玩家分配到不同的分支。

<span id="set-delivery-rules-before-you-message-players" />

## 在向玩家发送消息前设置发送规则

[发送规则](/zh/product/messaging-channels/message-delivery-settings/) 决定了玩家收到您消息的频率，因此请在第一个 Journey 上线前完成设置。游戏通常会同时运行多个 Journey，如果没有限制，一名玩家可能会在同一个晚上同时收到新手引导提醒、奖励提醒和优惠信息。

1. 前往 **设置** → **消息投递设置** → [**频次限制**](/zh/product/messaging-channels/message-delivery-settings/frequency-capping/)。
2. 开启您使用的渠道，例如推送、应用内消息和电子邮件。
3. 为每个渠道设置最大消息数量和周期。允许的值为每个周期 1 到 1,000 条消息，周期为 1 到 30 天。
4. 为每个渠道选择计数模式：**滚动时间窗** 或 **自然日**。
5. 点击 **应用更改**，然后点击 **确认**。

Journey 消息默认使用全局限制。要更改正在运行的 Journey 的限制，请先暂停该 Journey。有关完整行为，请参阅 [全局频率上限](/zh/product/messaging-channels/message-delivery-settings/frequency-capping/)。

每个 Journey 还有自己的控制项：静默期、活动入口限制和消息类型。请参阅 [适用于每个 Journey 的最佳实践](/zh/tutorials/industry-playbooks/mobile-games/build-the-journeys/#best-practices-for-every-journey)。

<span id="set-up-a-control-group-before-you-launch" />

## 在上线前设置控制组

[控制组](/zh/product/audience-data-and-segmentation/control-groups/) 会将一部分玩家排除在应用中的所有营销消息之外（或者在您限定的国家或标签范围内），这样您就可以将他们与其他所有人进行比较，看清您的消息带来了哪些变化。请在上线 Journey 之前创建它，这样比较从第一天起就能覆盖这些 Journey。

<Aside type="caution" title="控制组按 User ID 工作">
该组按 User ID 选择玩家。SDK 注册的每台设备都有一个 User ID，在玩家登录之前它就是设备的硬件 ID (HWID)，因此在两台设备上游玩的游客可能在一台设备上被排除，而在另一台设备上收到消息。请参阅 [通过 User ID 识别玩家](/zh/tutorials/industry-playbooks/mobile-games/collect-player-data/#identify-players-by-user-id)。
</Aside>

要创建控制组，您需要拥有修改该应用的权限。

1. 前往 **设置** → **对照组**，然后点击 **添加对照组**。
2. 输入该组的名称。
3. 设置 **分组大小**，范围为 1% 到 20%。对于大多数应用，建议设置为 5%。
4. 选择一种模式。**永久** 会将同一批玩家一直排除在外，直到您关闭该组。**自动刷新** 每 1、2 或 3 个月挑选一批新玩家，并让之前的玩家恢复接收消息。**带结束日期的实验** 会在您设定的日期让所有人恢复接收消息。
5. 点击 **创建**。

控制组一旦开启，其中的玩家将不再通过任何渠道收到营销消息，因此您的 Journey 触达的玩家会按该比例减少。交易类消息仍会送达他们。

有关所有设置，请参阅 [创建和管理控制组](/zh/product/audience-data-and-segmentation/control-groups/create-and-manage-control-group/)。