# \[Cordova]イベントを送信する

アプリケーションにおけるユーザーの行動情報（以降イベント）をKARTEに送信することが可能です。

KARTEに送信したイベントは、解析され統計値として保持されます。\
解析済みの統計値は、セグメントやアクション（アプリ内メッセージの表示やプッシュ通知など）のトリガーとして利用することができます。

## イベントの送信方法

イベントを送信するためには、下記の手順でアプリケーションにコードを追加します。

例として「商品をお気に入りに追加」したことを表現するイベントを送信します。

{% code overflow="wrap" %}

```javascript
KarteTracker.track("favorite", {
  "id": "P00003",
  "name": "ミネラルウォーター（500ml）",
  "price": 100
});
```

{% endcode %}

## イベントの種類

KARTE では目的に応じて `view` `identify` `track` の3つのイベント送信メソッドを提供しています。

## 画面の表示イベントを送信する

ある画面の表示（閲覧）したことをイベントとして送信する場合は、`view` メソッドを利用します。

第1引数には、画面を一意に識別するための識別子を指定します。\
第2引数には、画面の名称（タイトル）を指定します。

このメソッドを利用して送信するイベントは `view` イベントと呼ばれます。

{% code overflow="wrap" %}

```javascript
KarteTracker.view("signup", "会員登録")
```

{% endcode %}

なお画面の表示イベントの送信は、track メソッドを利用しても行うことが可能です。\
下記コードは、上記コードと同等の意味合いとなります。

{% code overflow="wrap" %}

```javascript
KarteTracker.track("view", {
  "view_name": "signup",
  "title": "会員登録"
});
```

{% endcode %}

view メソッドの仕様については、[リファレンス](https://plaidev.github.io/karte-sdk-docs/ios/latest/KarteCore/Classes/Tracker.html#/s:9KarteCore7TrackerC4view_5title6valuesAA12TrackingTaskCSS_SSSgSDySSAA15JSONConvertible_pGtFZ) をご覧ください。

## ユーザーの情報を送信する

ユーザーに紐付く情報（ユーザーIDや名前、年齢等）を送信する場合は、`identify` メソッドを利用します。

第1引数には、ユーザーに紐付ける情報を指定します。

このメソッドを利用して送信するイベントは `identify` イベントと呼ばれます。

{% code overflow="wrap" %}

```javascript
KarteTracker.identify({
  "name": "カルテ太郎"
});
```

{% endcode %}

なお画面の表示イベントの送信は、track メソッドを利用しても行うことが可能です。\
下記コードは、上記コードと同等の意味合いとなります。

{% code overflow="wrap" %}

```javascript
KarteTracker.track("identify", values: {
  "name": "カルテ太郎"
})
```

{% endcode %}

identify メソッドの仕様については、[リファレンス](https://plaidev.github.io/karte-sdk-docs/ios/latest/KarteCore/Classes/Tracker.html#/s:9KarteCore7TrackerC8identifyyAA12TrackingTaskCSDySSAA15JSONConvertible_pGFZ) をご覧ください。

## 任意の行動イベントを送信する

画面の表示やユーザー情報以外の行動情報について送信する場合は、`track` メソッドを利用します。

第1引数には、行動を表すイベント名を指定します。\
第2引数には、行動に紐付く情報を任意で指定します。

このメソッドを利用して送信するイベントはカスタムイベントと呼ばれます。

{% code overflow="wrap" %}

```javascript
KarteTracker.track("favorite", {
  "id": "P00003",
  "name": "ミネラルウォーター（500ml）",
  "price": 100
});
```

{% endcode %}

track メソッドの仕様については、[リファレンス](https://plaidev.github.io/karte-sdk-docs/ios/latest/KarteCore/Classes/Tracker.html#/s:9KarteCore7TrackerC5track_6valuesAA12TrackingTaskCSS_SDySSAA15JSONConvertible_pGtFZ) をご覧ください。

{% hint style="info" %}
**イベント名の制限と予約済みのイベント名**

イベント名には制限があります。\
詳細については、 [イベント名の制限](https://support.karte.io/post/44VkfBjO7JdRnDv9YOfbFB#1-0) をご覧ください。

また一部のイベント名は予約されており、KARTE上で特別な扱いを受けます。\
詳細については、[定義済みイベント](https://support.karte.io/post/44VkfBjO7JdRnDv9YOfbFB) をご覧ください。
{% endhint %}

## イベントに付与可能な値の型

各イベントの送信メソッドには、任意でオブジェクトを渡すことが可能です。\
これによりイベントに様々なフィールドを紐付けて送信することが可能になります。

なおオブジェクトの `Key` および `Value` には制限があります。

## Keyとして利用可能な型

文字列型の値のみ利用可能です。

{% hint style="info" %}
**フィールド名の制限**

フィールド名には制限があります。\
詳細については、[フィールド名の制限](https://support.karte.io/post/44VkfBjO7JdRnDv9YOfbFB#2-0) をご覧ください。
{% endhint %}

## Valueとして利用可能な型

下記表に記載の型のみ利用可能です。

* 文字列
* 数値
* 真偽値
* 配列
* オブジェクト


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://app.developers.karte.io/cordova-sdk/tracking-cordova-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
