> ## 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.

# 自定义事件存储和保留

> 存储自定义事件，以便基于事件构建细分并在用户资料上查看事件，选择每个事件的保留时长，并管理您已存储的事件。

如果您想基于[自定义事件](./custom-events)构建细分，或在用户资料上查看用户的事件历史记录，请开启存储。本页介绍存储能为您带来什么、如何开启存储、如何为每个事件选择保留期，以及如何管理您已存储的事件。

<Warning>
  自定义事件存储和保留功能正在陆续推出，即将面向所有应用开放。如果您在 **Data > Events & Conversions** 下没有看到存储横幅，说明您的应用尚未获得该功能。
</Warning>

## 前提条件

* 付费计划。免费计划不提供自定义事件摄取。
* 编辑自定义事件保留期设置的权限。接受计费条款和更改保留期都需要此权限。如果您没有此权限，仪表板会提示您联系账户中拥有该权限的人员。

## 存储能为您带来什么

无论是否存储，OneSignal 收到自定义事件后，它们都会立即支持旅程、转化指标和 Liquid 个性化。存储事件会额外增加两项功能：

* **细分。** 基于用户执行过或未执行过的事件构建细分，并在任何需要定位受众的地方使用这些细分。
* **用户资料。** 在每个用户的资料上查看其事件历史记录，从而了解某个用户做了什么以及何时做的。

事件保留的时间越长，您的细分和用户资料可以追溯的时间就越久，最长可达 90 天。

## 开启存储

前往 **Data > Events & Conversions**。如果您的应用正在发送未被存储的事件，页面顶部的横幅会提示您。

<Steps>
  <Step title="打开存储提示">
    在 Events & Conversions 页面上选择该横幅。
  </Step>

  <Step title="为此应用选择默认保留期">
    每个应用都有自己的默认值，与您的其他应用相互独立。它适用于此应用中所有没有单独保留期设置的事件，您还可以选择是否将其应用于该应用已经收到的事件。您可以稍后更改默认值，并为单个事件覆盖它。
  </Step>

  <Step title="接受计费条款">
    存储在您接受的那一刻开始。OneSignal 会记录接受者，并向您组织的管理员发送电子邮件通知。
  </Step>
</Steps>

<Check>
  完成这些步骤后，您的应用的存储就开启了！从此刻起，OneSignal 收到的每个事件都会按您的默认保留期进行存储。
</Check>

## 为每个事件设置保留期

保留期是 OneSignal 保留每个已存储事件的时长，最长为 90 天。您应用的默认值覆盖所有事件，您可以为任何单个事件覆盖它。

<Steps>
  <Step title="打开事件">
    前往 **Data > Events & Conversions**，打开 **Event List** 标签页，然后选择该事件。
  </Step>

  <Step title="选择保留期">
    在详细视图中，为该事件设置保留期。该设置仅针对此事件覆盖您应用的默认值。
  </Step>
</Steps>

## 管理您已存储的事件

对于不再需要存储或希望缩短存储时间的事件，您可以降低其保留期。OneSignal 会删除新时间窗口之外的事件，并保留其余事件。

<Warning>
  删除在夜间运行，而不是立即执行，因此您的存储事件计数会在次日反映此更改。
</Warning>

## 何时计费

在所有付费计划中，向 OneSignal 发送自定义事件都是免费的。OneSignal 仅对为细分而存储的事件计费。

无论是否存储，事件都可以支持旅程、转化指标和 Liquid 个性化。存储事件会增加两项功能：基于事件构建细分，以及在用户资料上查看事件。

在您账户中拥有编辑保留期设置权限的人员接受计费条款之前，存储将保持关闭状态。在此之前，OneSignal 会接收您的事件，并使其可用于旅程、转化指标和 Liquid 个性化，但不会存储它们。

每个计划都包含每月的存储事件配额。超出该配额的事件，OneSignal 会按您计划的超额费率收费。开启存储时，仪表板会向您显示该费率。

| 计划           | 每月包含的存储事件数 |
| ------------ | ---------- |
| Growth       | 1,000,000  |
| Professional | 5,000,000  |
| Enterprise   | 10,000,000 |

您的配额在组织级别应用，因此一个应用中存储的事件与您组织中任何其他应用存储的事件计入同一总额。

计费在您的计费周期结束时进行，基于该时刻存储中的事件。OneSignal 会扣除您计划包含的配额，并按您计划的超额费率对其余部分收费。如果您的用量等于或低于配额，则完全不会产生存储费用。

由于计费在周期结束时读取您的存储计数，在此之前降低保留期可以减少您该周期的应付费用。请留出足够的时间让夜间删除完成。

要查看您的用量情况，请前往 **Organizations > Billing**。您的存储事件总数会与其他用量一起显示，并按事件细分。当您达到配额的 80% 和 100% 时，OneSignal 还会向您组织的管理员发送电子邮件。

## 常见问题

### 我发送但不存储的事件需要付费吗？

不需要。在所有付费计划中发送事件都是免费的。您仅需为计费周期结束时存储中的事件付费。

### 我可以基于超过 90 天的事件构建细分吗？

不可以。当前的最长保留期为 90 天。

### 将事件设置为 Not stored 会破坏我的旅程吗？

不会。**Not stored**（0 天）意味着 OneSignal 不保留该事件，但旅程、转化指标和 Liquid 个性化都在 OneSignal 收到事件时读取它们，因此无论事件是否存储，它们的工作方式都相同。只有细分和用户资料需要已存储的事件。

### 谁可以开启存储或更改保留期？

您账户中拥有编辑自定义事件保留期设置权限的人员。同一权限涵盖接受计费条款、设置应用的默认值以及更改单个事件的保留期。

### 当我的应用达到 1,000 个唯一事件名称时会发生什么？

每个应用最多可以发送 **1,000 个唯一的自定义事件名称**。使用应用已有名称发送的事件始终会被接受，因此达到限制不会中断您已经在发送的事件。

一旦应用达到 1,000 个名称，使用*新*名称发送的事件将被拒绝。OneSignal 拒绝的是单个事件而不是整个请求，因此同一批次中的其他事件会正常处理。API 返回 HTTP `202` 并附带 `errors` 数组，每个被拒绝的事件都带有错误代码 `too many event names`。

被拒绝的事件不会被存储，不会被计费，也无法触发旅程、个性化消息或用于细分。它会显示在 **Data > Events & Conversions** 中，标记为失败，原因为 "This app has reached its limit of unique event names"，以便您查看哪些名称被拒绝。

要腾出空间，请删除您不再使用的自定义事件名称。删除名称会释放其名额，并永久删除以该名称存储的事件。

<Note>
  当您的应用超过 900 个唯一事件名称时，Custom Events 页面会在任何事件被拒绝之前向您发出警告。
</Note>

保留期和名称限制是两回事。将事件设置为 Not stored 会使 OneSignal 停止保留其事件，但该名称仍占用其名额。只有删除名称才能释放名额。有关操作方法，请参阅[事件名称限制](./custom-events#event-name-limits)。

## 相关页面

<Columns cols={2}>
  <Card title="自定义事件" icon="bolt" href="./custom-events">
    发送事件并在旅程、细分和个性化中使用它们。
  </Card>

  <Card title="计费常见问题" icon="receipt" href="./billing-faq#event-related-billing">
    OneSignal 如何计算您账单的其余部分。
  </Card>
</Columns>
