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

# Google Sheets

> Google SheetsからOneSignalにカスタムイベントを同期して、ユーザー行動に基づいた自動化されたJourneysとパーソナライズされたメッセージングキャンペーンをトリガーします。

export const PLATFORM_0 = "Google Sheets"

export const DATA_TYPE_0 = "columns"

export const COLUMN_HEADER_0 = "Sheets Column Examples"

export const PROPERTIES_DESCRIPTION_0 = "Multiple columns combined into JSON"

## 概要

OneSignal + Google Sheetsインテグレーションにより、Google SheetsからOneSignalへのカスタムイベントの自動同期が可能になります。これにより、スプレッドシートに保存されているユーザー行動データに基づいて、自動化されたJourneysとパーソナライズされたメッセージングキャンペーンをトリガーできます。イベントデータを共同で管理するチームに最適です。

***

## 要件

* アウトバウンドメッセージイベント用の[Event Streams](/docs/ja/event-streams)へのアクセス（プランの制限と超過料金が適用されます）
* インバウンドイベント同期用の[Custom Events](/docs/ja/custom-events)へのアクセス（プランの制限と超過料金が適用されます）
* [更新されたアカウントプラン](https://onesignal.com/pricing)（無料アプリでは利用できません）

### Google Sheets

* イベントデータを含むシートへのアクセス権を持つ**Googleアカウント**
* イベントデータの適切な列構造を持つ**イベントスプレッドシート**
* OneSignalがデータにアクセスするための**シート共有権限**
* イベント追跡シートの**一貫したデータ形式**

***

## セットアップ

<Steps>
  <Step title="イベントデータシートを準備する">
    イベントデータに必要な列を使用してGoogle Sheetを構造化します：

    **必須列：**

    * `event_name`または`event_type`：イベントの名前（String）
    * `user_id`または`email`：ユーザー識別子（String）
    * `timestamp`または`created_at`：イベントのタイムスタンプ（Date/DateTime）
    * `properties`：JSONまたは個別の列としてのイベントプロパティ（オプション）

    **シート構造の例：**

    ```
    | event_name | user_id | timestamp           | product_id | amount |
    |------------|---------|---------------------|------------|--------|
    | purchase   | user123 | 2024-01-15 10:30:00 | prod_abc   | 29.99  |
    | signup     | user456 | 2024-01-15 11:45:00 |            |        |
    ```
  </Step>

  <Step title="シート権限を構成する">
    OneSignalのサービスアカウントとGoogle Sheetを共有します：

    1. Google Sheetを開きます
    2. 右上の**共有**ボタンをクリックします
    3. OneSignalのサービスアカウントメールを追加します（セットアップ中に提供されます）
    4. 権限を**閲覧者**（読み取り専用アクセス）に設定します
    5. **送信**をクリックしてアクセスを許可します

    <Info>
      OneSignalは、インテグレーションセットアッププロセス中に特定のサービスアカウントメールを提供します。
    </Info>
  </Step>

  <Step title="OneSignalでインテグレーションを追加する">
    OneSignalで、**Data > Integrations**に移動し、**Add Integration**をクリックします。

    **Google Sheets**を選択して、次を提供します：

    * **Sheet URL**：Google Sheetの完全なURL
    * **Sheet Name**：イベントデータを含む特定のタブ/シート名
    * **Header Row**：列ヘッダーを含む行番号（通常は1）
    * **Data Range**：イベントデータを含むセル範囲（例：`A2:F1000`）
  </Step>

  <Step title="列マッピングを構成する">
    Google Sheetsの列をOneSignalイベントフィールドにマッピングします：

    * **Event Name Column**：イベント名を含む列を選択します
    * **User ID Column**：ユーザー識別子を含む列を選択します
    * **Timestamp Column**：イベントタイムスタンプを含む列を選択します
    * **Properties Columns**：イベントプロパティとして含める追加の列を選択します

    <Info>
      複数の列をイベントプロパティとしてマッピングできます。OneSignalはそれらを単一のイベントペイロードに結合します。
    </Info>
  </Step>

  <Step title="同期スケジュールを設定する">
    OneSignalが新しいイベントデータをチェックする頻度を構成します：

    * **Sync Frequency**：15分、1時間、または1日から選択します
    * **Incremental Sync**：最後の更新以降の新しい行のみを同期するために有効にします
    * **Timestamp Filter**：特定の時間範囲内のイベントのみを同期します

    <Warning>
      Google SheetsにはAPI速度制限があります。大規模なデータセットを含むシートでは、より頻繁な同期がスロットルされる可能性があります。
    </Warning>
  </Step>

  <Step title="接続をテストする">
    **Test Connection**をクリックして、OneSignalがGoogle Sheetにアクセスし、イベントデータを正しく読み取れることを確認します。
  </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} | いいえ |

***

## 高度な構成

### 増分同期のセットアップ

新しいイベントのみを処理するように増分同期を構成します：

1. **Timestamp Column**：シートに一貫したタイムスタンプ列があることを確認します
2. **Sort Order**：イベントをタイムスタンプでソートしたままにします（最新が最後）
3. **Append-Only**：新しいイベントをシートの下部に追加します
4. **Avoid Edits**：同期後に履歴イベント行を変更しないでください

### データ検証

Google Sheetでデータ検証を実装します：

```
データ > データの検証
- Event Name：範囲からのリスト（事前定義されたイベントタイプ）
- User ID：形式をチェックするカスタム数式
- Timestamp：日付/時刻形式の検証
- Amount：数値プロパティの数値検証
```

### 共同ワークフロー

チームコラボレーションのベストプラクティス：

* **Named Ranges**：イベントデータセクションに名前付き範囲を使用します
* **Protected Ranges**：誤った変更からヘッダー行を保護します
* **Comments**：イベント定義を説明するコメントを追加します
* **Version History**：変更を追跡するためにGoogle Sheetsのバージョン履歴を使用します
* **Access Controls**：データ入力チームメンバーへの編集アクセスを制限します

### パフォーマンスの最適化

大規模なデータセットを最適化します：

* **Sheet Limits**：最高のパフォーマンスのために、個々のシートを10,000行未満に保ちます
* **Multiple Sheets**：異なるイベントタイプに個別のシートを使用します
* **Data Archival**：古いデータを毎月個別のシートにアーカイブします
* **Formulas**：イベントデータ範囲の複雑な数式を最小限に抑えます

<Warning>
  Google Sheetsは、合計50,000セル未満で最高のパフォーマンスを発揮します。大量のイベント追跡には、代わりにデータベースソースの使用を検討してください。
</Warning>

***

## よくある質問

### OneSignalはGoogle Sheetsからイベントをどのくらいの頻度で同期しますか？

OneSignalは15分ごとに同期できますが、Googleの API制限を尊重するために、ほとんどのユースケースでは1時間または1日ごとの同期をお勧めします。

### 複数のチームメンバーが同じシートにイベントを追加できますか？

はい、Google Sheetsはリアルタイムコラボレーションをサポートしています。ただし、チームメンバーが必要なデータ形式と列構造を理解していることを確認してください。

### 誰かが履歴イベントデータを編集するとどうなりますか？

OneSignalは、タイムスタンプと行位置に基づいて同期します。履歴データを編集すると、重複イベントやデータの不整合が発生する可能性があります。追加のみのワークフローをお勧めします。
