> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AlloyDB

> 将 Google AlloyDB 的自定义事件同步到 OneSignal，基于用户行为触发自动化旅程和个性化消息活动。

export const PLATFORM_0 = "AlloyDB"

export const DATA_TYPE_0 = "table columns"

export const COLUMN_HEADER_0 = "AlloyDB Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata as JSON object"

## 概述

OneSignal + Google AlloyDB 集成可以自动将您的 AlloyDB 数据库中的自定义事件同步到 OneSignal 的自定义事件 API。这使您可以基于存储在数据库中的真实用户行为触发自动化旅程和个性化消息活动。

您可以同步购买、产品浏览、订阅变更或任何自定义用户操作等事件，自动触发入门序列、重新参与活动、交易消息以及跨推送通知、电子邮件、应用内消息和短信的定向促销。

***

## 要求

* 访问自定义事件（目前处于测试阶段）
* [升级账户计划](https://onesignal.com/pricing)（免费应用不可用）。

### Google AlloyDB 要求

* 带有 AlloyDB 实例的 **Google Cloud Platform** 账户
* 按 Google Cloud 要求配置的 **Auth Proxy**
* 创建用户和授予访问权限的**数据库权限**
* 对 AlloyDB 实例的**网络访问权限**

***

## 设置

### 配置 AlloyDB 权限

OneSignal 需要从您的 AlloyDB 数据库中读取事件数据。我们建议创建一个专用的 `ONESIGNAL` 用户账户，对您的事件表具有只读访问权限。

<Steps>
  <Step title="创建 OneSignal 数据库用户">
    创建一个具有强密码和唯一密码的专用用户账户：

    ```sql theme={null}
    -- Create the OneSignal user
    CREATE USER ONESIGNAL WITH PASSWORD '<strong, unique password>';
    ```
  </Step>

  <Step title="授予模式访问权限">
    授予 OneSignal 用户读取事件数据模式的权限：

    ```sql theme={null}
    -- Let the OneSignal user see your event schema
    GRANT USAGE ON SCHEMA "<your_event_schema>" TO ONESIGNAL;

    -- Let the OneSignal user read all existing tables in this schema
    GRANT SELECT ON ALL TABLES IN SCHEMA "<your_event_schema>" TO ONESIGNAL;

    -- Let the OneSignal user read any new tables added to this schema
    ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_event_schema>" GRANT SELECT ON TABLES TO ONESIGNAL;
    ```

    <Info>
      将 `<your_event_schema>` 替换为包含事件表的实际模式名称。
    </Info>
  </Step>

  <Step title="授予函数权限（如需要）">
    如果您使用存储过程或函数处理事件数据：

    ```sql theme={null}
    -- Let the OneSignal user execute functions in this schema
    GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA "<your_event_schema>" TO ONESIGNAL;

    -- Let the OneSignal user execute any new functions added to this schema
    ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_event_schema>" GRANT EXECUTE ON FUNCTIONS TO ONESIGNAL;
    ```
  </Step>
</Steps>

### 设置 Auth Proxy

<Steps>
  <Step title="配置 Auth Proxy">
    AlloyDB 需要 Auth Proxy 进行第三方连接。请按照 [Google Auth Proxy 文档](https://cloud.google.com/alloydb/docs/auth-proxy/overview) 进行设置。

    <Warning>
      Auth Proxy 是必需的 - OneSignal 无法在没有它的情况下直接连接到 AlloyDB。
    </Warning>
  </Step>

  <Step title="记录连接详细信息">
    保存以下连接信息：

    * **主机**：Auth Proxy 端点
    * **端口**：Auth Proxy 端口（通常为 5432）
    * **数据库**：您的 AlloyDB 数据库名称
    * **用户名**：`ONESIGNAL`（上面创建的）
    * **密码**：您设置的密码
  </Step>
</Steps>

### 配置 OneSignal AlloyDB 连接

<Steps>
  <Step title="导航到集成">
    在 OneSignal 中，前往 **数据 > 集成**，然后点击 **添加集成**。
  </Step>

  <Step title="选择 Google AlloyDB">
    从可用集成列表中选择 **Google AlloyDB**。
  </Step>

  <Step title="输入连接详细信息">
    提供 AlloyDB 连接信息：

    * **主机**：您的 Auth Proxy 端点
    * **端口**：Auth Proxy 端口
    * **数据库**：AlloyDB 数据库名称
    * **用户名**：`ONESIGNAL`
    * **密码**：用户密码
    * **SSL**：已启用（推荐）
  </Step>

  <Step title="测试连接">
    点击**测试连接**以验证 OneSignal 可以访问您的 AlloyDB 实例。
  </Step>
</Steps>

***

## 事件数据映射

连接后，您需要将 AlloyDB 表列映射到 OneSignal 自定义事件字段：

<Steps>
  <Step title="选择事件表">
    选择包含要同步到 OneSignal 的事件数据的表。
  </Step>

  <Step title="映射必需的事件字段">
    映射自定义事件的必需字段：

    * **事件名称**：包含事件类型的列（例如 "purchase"、"signup"）
    * **用户标识符**：外部用户 ID、电子邮件或电话号码列
    * **事件时间戳**：事件发生的时间（可选）
  </Step>

  <Step title="映射事件载荷数据">
    将其他列映射到事件载荷属性：

    * 自定义事件属性（product\_id、价格、类别等）
    * 上下文数据（来源、活动等）
    * 行为指标（价值、数量等）
  </Step>

  <Step title="配置同步设置">
    设置事件处理频率和交付偏好。
  </Step>
</Steps>

***

### 事件数据映射

将您的 {PLATFORM_0} {DATA_TYPE_0} 映射到 OneSignal 的自定义事件格式：

| OneSignal 字段  | {COLUMN_HEADER_0} | 描述                         | 必需 |
| ------------- | ----------------- | -------------------------- | -- |
| `name`        | `event_name`      | 事件标识符                      | 是  |
| `external_id` | `user_id`         | 用户标识符                      | 是  |
| `timestamp`   | `event_timestamp` | 事件发生时间                     | 否  |
| `properties`  | `event_data`      | {PROPERTIES_DESCRIPTION_0} | 否  |

***

## 高级网络配置

### IP 地址白名单

如果您的 AlloyDB 实例使用 IP 允许列表，请添加 OneSignal 的 IP 地址。您可以在 OneSignal 仪表板的**数据 > 集成 > 网络访问**下找到当前的 IP 范围。

### SSH 隧道

OneSignal 支持通过 SSH 隧道连接到 AlloyDB 以提供额外的安全性：

<Steps>
  <Step title="创建 SSH 用户">
    在您的 SSH 主机服务器上为 OneSignal 创建专用用户账户。
  </Step>

  <Step title="配置 SSH 隧道">
    在 OneSignal AlloyDB 连接设置中，启用**使用 SSH 隧道**并提供：

    * SSH 主机
    * SSH 端口
    * SSH 用户名
  </Step>

  <Step title="添加 SSH 密钥">
    OneSignal 将生成一个 SSH 密钥对。将公钥复制到 SSH 主机上 OneSignal 用户的 `authorized_keys` 文件中。
  </Step>
</Steps>

***

## 限制

* **性能**：避免在高峰使用期间连接到生产数据库
* **权限**：OneSignal 需要对事件表的只读访问权限
* **Auth Proxy**：所有 AlloyDB 连接都需要

***

## 常见问题

### 如果我的事件表结构发生变化会怎样？

OneSignal 将检测到模式更改，可能需要重新映射字段。在集成设置中更新您的字段映射。

### OneSignal 同步事件的频率

OneSignal 根据您配置的同步频率检查新事件，最小间隔为 15 分钟。

***

## 需要帮助？

请通过 `support@onesignal.com` 联系我们的支持团队，或使用应用内聊天获取 AlloyDB 集成设置方面的帮助。
