# 地理位置营销活动

当用户的设备进入您在地图上定义的位置（例如商店、场馆、配送点或交通枢纽）时，地理位置营销活动会自动发送推送通知。

Pushwoosh 使用地理区域 (geozones) 来定义营销活动的触发地点。您可以将多个地理区域分组到一个集群 (cluster) 中，以应用一个共享的冷却时间 (cooldown)，从而避免在邻近区域重复发送。

## 工作原理

在您设置地理位置营销活动后，当用户的设备进入一个地理区域、活动处于激活状态且冷却时间允许发送时，Pushwoosh 就会发送一条推送。

此功能需要位置权限。如果用户未授予该权限，则地理位置营销活动无法对该设备触发，当设备进入地理区域时也不会发送推送。

<Aside type="caution" title="重要提示">
对于 Android 10 及更高版本，需要后台位置权限。
</Aside>


## 使用场景

- 当用户进入零售店周围的地理区域时，发送店内优惠。
- 在场馆、取货点或分公司触发到达消息。
- 通过对一组邻近的地理区域集群应用一个冷却时间，限制在密集区域的重复发送。


## 前提条件

<Aside type="caution" icon="setting" title="需要开发者协助">
您需要开发团队的帮助，才能在您的应用中集成位置跟踪功能。
</Aside>

在创建您的第一个地理位置营销活动之前，请确保：

1. 项目中至少配置了一个移动平台（Android 或 iOS）。[了解如何配置平台](/zh/product/first-steps/start-with-your-project/configure-platforms/)。
2. Pushwoosh SDK 已集成到您的应用中，并启用了位置跟踪。
3. 应用中已配置位置跟踪。有关实施详情，请参阅 [iOS 的地理区域](/zh/developer/pushwoosh-sdk/ios-sdk/customizing-ios-sdk/#geozones-push-notifications) 和 [Android 的地理区域](/zh/developer/pushwoosh-sdk/android-sdk/customizing-android-sdk-50/#geozones-push-notification)。


<Aside type="note">
- 基于地理位置的消息传递不适用于 HMS (华为移动服务) 设备，因为它依赖于 Google 位置服务。
- 对于 Google Play 应用，访问后台位置需要获得批准。在收集用户位置之前，请参阅 <a href="https://support.google.com/googleplay/android-developer/answer/9799150#zippy=%2Cstep-review-best-practices-for-accessing-location" target="_blank">Google Play 政策</a> 并提交 <a href="https://support.google.com/googleplay/android-developer/answer/10144311" target="_blank">权限声明</a>。
</Aside>


## 创建地理区域

创建一个地理区域来定义您的营销活动在何处触发，以及用户进入该区域时会收到什么消息。

前往 **Campaigns → Geo campaigns**。点击 **Create geozone** 开始。

<img src="/push-notifications-geo-based-push-1.webp" alt="Pushwoosh 控制面板中的地理位置营销活动“开始使用”屏幕，包含地图视图和“创建地理区域”操作。"/>

### 设置活动名称和聚合统计

在 **Campaign name** 字段中，输入一个最多 64 个字符的标签。请保持简短易识别，例如 `市中心商店春季促销`。

或者，在 **Aggregated statistics** 字段中选择一个现有营销活动。地理位置营销活动的推送将与该营销活动中其他触点的[聚合消息统计](/zh/product/statistics-and-analytics/aggregated-messages/)一起计算。

<img src="/push-notifications-geo-based-push-2.webp" alt="地理区域表单部分，包含“活动名称”和“聚合统计”字段。"/>

### 撰写推送消息

选择如何撰写通知：

- **Write a message**：直接在表单中输入推送文本（最多 1024 个字符）。对于在单个地理区域中发送一次性的快速消息，请使用此选项。
- **Use an existing preset**：选择一个已保存的[预设](/zh/product/content/push-presets/)，以使用包含标题、深层链接、自定义声音和平台特定负载的完整模板。

<img src="/push-notifications-geo-based-push-3.webp" alt="地理位置营销活动创建表单，显示活动名称、推送消息设置以及 iOS 声音和收件箱选项。"/>

配置可选的消息设置：

- **Play default sound on iOS**：在 iOS 设备上使用系统推送声音。
- **Save to inbox**：发送后将推送保留在设备的应用内收件箱中，以便用户稍后可以返回查看。启用后，设置 **Inbox expire**（1–365 天），并可选择性地设置 **Inbox icon URL**。[了解更多](/zh/product/messaging-channels/message-inbox/mobile-message-inbox/#choosing-which-messages-to-save-to-inbox)。

### 设置触发位置

1. 搜索地址，将原始坐标粘贴到搜索栏中，或在地图上任意位置点击以放置标记。
2. 拖动圆圈上的手柄以设置**范围**。范围可以设置在 50 米到 100 公里之间。默认值为 200 米。

<img src="/push-notifications-geo-based-push-5.webp" alt="用于设置触发位置的地图视图，包含地址搜索、标记放置和范围圈调整功能。"/>

### 选择集群和冷却时间

冷却时间是推送发送后的一个静默期。在冷却时间到期之前，同一设备不会从该地理区域收到另一条通知，即使它离开后再次进入。

在 **Cooldown** 字段中，选择以下三种模式之一：

| 模式 | 冷却时间如何设置 | 行为 |
|---|---|---|
| **Standalone** | 直接为此地理区域设置天、小时和分钟。最小为 1 分钟。最大为 41 天。 | 冷却时间仅适用于此地理区域。 |
| **Use existing cluster** | 应用现有[集群](#create-a-cluster)的冷却时间。 | 集群的冷却时间会覆盖此地理区域自身的冷却时间。 |
| **New cluster** | 创建一个新集群并设置其冷却时间。 | 集群的冷却时间会覆盖此地理区域自身的冷却时间。 |


<img src="/push-notifications-geo-based-push-6.webp" alt="冷却模式下拉菜单，显示地理位置营销活动中的“独立”、“使用现有集群”和“新建集群”选项。"/>

### 安排活动触发时间

**Campaign schedule** 部分决定了地理区域何时可以触发推送：

- **Always active**：地理区域 24/7 全天候触发。
- **On selected days and hours**：启用特定的工作日，并为每天选择一个时间窗口（开始 – 结束）。营销活动仅在这些时间窗口内触发。


<img src="/push-notifications-geo-based-push-7.webp" alt="地图上的地理位置营销活动设置，包含范围圈、集群模式选项和活动排期配置。"/>

排期在创建时以浏览器的本地时区存储。

<Aside type="note">
控制面板支持每天一个时间窗口。如果一个地理区域是通过 API 配置的，每天有多个时间窗口，则无法在表单中编辑排期。点击 **Save** 以保持现有排期不变。要修改它，请使用 API。
</Aside>

点击 **Save** 创建地理区域。地理区域会立即保存并启用。如果您设置了排期，推送仅在配置的时间窗口内触发。

当设备在活动排期内进入地理区域且未被冷却时间阻止时，推送将被发送。

## 创建集群

当同一设备可能在短时间内进入您的多个区域时（例如，同一条街上的两家商店），请使用集群。一旦设备从集群中的任何一个地理区域收到推送，它将在该集群中的所有其他区域保持静默，直到冷却时间到期。

创建第一个地理区域后，您可以从 **Geo campaigns** 页面创建集群。


1. 在 **Geo campaigns** 页面，点击 **Create cluster**。

<img src="/push-notifications-geo-based-push-10.webp" alt="地理位置营销活动页面，在进入集群设置前显示“创建集群”按钮。"/>

2. 输入 **Cluster name** 和 **Cluster cooldown**。
<img src="/push-notifications-geo-based-push-8.webp" alt="地理位置营销活动中的“创建集群”表单，包含集群名称和冷却时间设置，保存前。"/>
3. 点击 **Create**。

创建后，集群会出现在 **Geo campaigns** 页面上。要为其分配地理区域：
- 在[创建或编辑地理区域](#choose-a-cluster-and-cooldown)时，在 **Cooldown** 字段中选择 **Use existing cluster**。
- 在 [Geo campaigns](#manage-geozones-and-clusters) 页面上使用 **Move to cluster**。


## 管理地理区域和集群

**Geo campaigns** 页面会在地图上标出您所有的地理区域，并在表格中按集群分组列出。独立区域会出现在 **Without cluster** 部分下。

<img src="/push-notifications-geo-based-push-9.webp" alt="地理位置营销活动概览，地图上显示地理区域，表格按集群分组，包括“无集群”部分。"/>

对于每个地理区域，您可以：

- **Pause** 或 **Resume** 触发器。
- 在表单中 **Edit** 地理区域。
- **Move to cluster**：分配到不同的集群，或从当前集群中移除。
- **Delete** 永久删除地理区域。

对于每个集群，您可以：

- **Pause** 或 **Resume** 集群。暂停一个集群也会暂停其内部的每个地理区域。
- **Edit** 集群名称或冷却时间。
- **Delete** 集群。只有未附加地理区域的集群才能被删除。