メインコンテンツまでスキップ

応用ガイド

最終更新 2026/10/03

1. イベントの送信​

SDKの初期化が完了したら、データのトラッキングを行い、ユーザーの行動情報を収集できます。通常は通常イベントで業務シナリオの要件を満たせますが、実際の業務シナリオに応じて、初回イベントや更新可能イベントなどを使用することもできます。

1.1 通常イベント​

trackを呼び出してイベントを送信できます。事前に整理したドキュメントに従って、イベントのプロパティと送信条件を設定することをお勧めします。ここでは、ユーザーが商品を購入する場合を例にします:

//イベントプロパティを設定
$properties = array();
$properties["product_name"] = "book";
try {
$te->track("distinctId", "accountId", "productBuy", $properties);
} catch (Exception $e) {
echo $e;
}

1.2 初回イベント​

初回イベントとは、デバイスまたはその他のディメンションのIDに対して、1回だけ記録されるイベントのことです。たとえば、あるデバイスでのアクティベーションイベントを記録したい場合は、初回イベントでデータを送信できます。

// 例: 初回イベントを送信。イベント名はdevice_activationとします
$properties = array();
$properties["price"] = 100;
$properties["status"] = 3;
$firstCheckId = "first_flag_id";
try {
$te->track_first("distinctId", "accountId", "device_activation", $firstCheckId, $properties);
} catch (Exception $e) {
echo $e;
}

注意:初回かどうかの検証はサーバー側で行われるため、初回イベントはデフォルトで1時間遅れて取り込まれます。

1.3 更新可能イベント​

更新可能イベントを使用すると、特定のシナリオでイベントデータを変更する必要がある場合に対応できます。更新可能イベントでは、そのイベントを識別するIDを指定し、更新可能イベントのオブジェクトを作成する際に渡す必要があります。AE管理画面は、イベント名とイベントIDに基づいて更新するデータを特定します。

// 例: 更新可能なイベントを送信。イベント名はeventNameとします
// 送信後、イベントプロパティstatusは3、priceは100になります
$properties = array();
$properties["price"] = 100;
$properties["status"] = 3;
$eventId = "eventId";
try {
$te->track_update("distinctId", "accountId", "eventName", $eventId, $properties);
} catch (Exception $e) {
echo $e;
}

// 送信後、イベントIDがeventIdでイベント名がeventNameのイベントのプロパティstatusは5に更新され、priceは変わりません
$properties1 = array();
$properties1["status"] = 5;
try {
$te->track_update("distinctId", "accountId", "eventName", $eventId, $properties1);
} catch (Exception $e) {
echo $e;
}

1.4 上書き可能イベント​

上書き可能イベントは更新可能イベントと似ていますが、上書き可能イベントでは最新のデータで過去のデータを完全に上書きする点が異なります。効果としては、前のデータを削除して最新のデータを格納するのと同じです。AE管理画面は、イベント名とイベントIDに基づいて更新するデータを特定します。

// 例: 上書き可能なイベントを送信。イベント名はeventNameとします
// 送信後、イベントプロパティstatusは3、priceは100になります
$properties = array();
$properties["price"] = 100;
$properties["status"] = 3;
$eventId = "eventId";
try {
$te->track_overwrite("distinctId", "accountId", "eventName", $eventId, $properties);
} catch (Exception $e) {
echo $e;
}

// 送信後、イベントIDがeventIdでイベント名がeventNameのイベントのプロパティstatusは5に更新され、priceプロパティは削除されます
$properties1 = array();
$properties1["status"] = 5;
try {
$te->track_overwrite("distinctId", "accountId", "eventName", $eventId, $properties1);
} catch (Exception $e) {
echo $e;
}

2. ユーザープロパティ​

AEプラットフォームでは、次のユーザープロパティ設定APIに対応しています:user_set、user_setOnce、user_add、

user_unset、user_del、user_append、user_uniq_append。

2.1 user_set​

一般的なユーザープロパティは、user_setを呼び出して設定できます。このインターフェースで送信したプロパティは、既存のプロパティ値を上書きします。そのユーザープロパティが以前に存在しない場合は新しく作成され、タイプは渡されたプロパティのタイプと同じになります。ここでは、ユーザー名の設定を例にします:

$properties = array();

//ユーザープロパティを送信し、プロパティ"user_name"を新規作成。値は"ABC"
$properties["user_name"] = "ABC";
try{
$te->user_set('distinct_id', 'account_id', $properties);
}catch (Exception $e){
//例外処理
echo $e;
}
//再度ユーザープロパティを送信。この時点で"user_name"の値は"XYZ"で上書きされます
$properties["user_name"] = "XYZ";
try{
$te->user_set('distinct_id', 'account_id', $properties);
}catch (Exception $e){
//例外処理
echo $e;
}

2.2 user_setOnce​

送信するユーザープロパティを一度だけ設定すればよい場合は、user_setOnceを呼び出して設定できます。そのプロパティにすでに値がある場合、この情報は無視されます。ここでもユーザー名の設定を例にします:

$properties = array();

//同様に、ユーザープロパティを送信し、プロパティ"user_name"を新規作成。値は"ABC"
$properties["user_name"] = "ABC";
try{
$te->user_setOnce('distinct_id', 'account_id', $properties);
} catch (Exception $e){
//例外処理
echo $e;
}

//再度ユーザープロパティを送信。この時点で"user_name"には既に値があるため変更されず、"ABC"のままです。"user_age"の値は18
$properties["user_name"] = "XYZ";
$properties["user_age"] = 18;
try{
$te->user_setOnce('distinct_id', 'account_id', $properties);
} catch (Exception $e){
//例外処理
echo $e;
}

2.3 user_add​

数値型のプロパティを送信する場合は、user_addを呼び出してそのプロパティを累積加算できます。そのプロパティがまだ設定されていない場合は、0を代入してから計算します。負の値を渡すこともでき、その場合は減算と同じになります。ここでは、累積課金額を例にします:

try{
$properties = array();
$properties['level'] = 2;
$te->user_add($distinct_id, $account_id, $properties);
}catch (Exception $e){
//handle except
echo $e;
}

設定するプロパティのkeyは文字列で、Valueには数値のみ指定できます。

2.4 user_append​

user_appendを呼び出して、配列型のユーザープロパティに要素を追加できます。

//user_append あるユーザーの1つまたは複数のコレクションに追加
try{
$properties = array();
$properties['arr'] = ['str3','str4'];//コレクション型に複数の値を追加。key-array形式で、arrayの要素はすべて文字列型
$te->user_append('distinct_id', 'account_id', $properties);
}catch (Exception $e){
//handle except
echo $e;
}

2.5 user_uniq_append​

user_uniq_appendを呼び出して、配列型のユーザープロパティに要素を追加できます。user_uniq_appendインターフェースを呼び出すと、追加するユーザープロパティの重複が排除されます。user_appendインターフェースでは重複は排除されないため、ユーザープロパティに重複が存在する場合があります。

//user_uniq_append あるユーザーの1つまたは複数のコレクションに追加(重複する要素は重複を排除します)
try{
$properties = array();
$properties['arr'] = ['str3','str4'];//コレクション型に複数の値を追加。key-array形式で、arrayの要素はすべて文字列型
$te->user_uniq_append('distinct_id', 'account_id', $properties);
}catch (Exception $e){
//handle except
echo $e;
}

2.6 user_unset​

ユーザーのユーザープロパティ値をクリアする場合は、user_unsetを呼び出して指定したプロパティをクリアできます。そのプロパティがまだクラスターで作成されていない場合、user_unsetはそのプロパティを作成しません

$properties1 = array(
'age', "update_time"
);
try {
$te->user_unset(null, 'account_id', $properties1);
} catch (Exception $e) {
//handle except
echo $e;
}

user_unset: には、クリアするプロパティのKey値を渡します。

2.7 user_del​

あるユーザーを削除する場合は、user_delを呼び出してそのユーザーを削除できます。削除後はそのユーザーのユーザープロパティを照会できなくなりますが、そのユーザーが発生させたイベントは引き続き照会できます。この操作は元に戻せない結果を招く可能性があるため、慎重に使用してください

try{
$te->user_del('distinct_id', 'account_id');
} catch (Exception $e){
//例外処理
echo $e;
}

3. その他の機能​

3.1 TDBatchConsumer​

注意

データ量が多すぎる場合やネットワークに異常がある場合は、データが失われるおそれがあるため、本番環境での使用はお勧めしません

データをバッチでリアルタイムにAEサーバーへ送信します。転送ツールと組み合わせる必要はありません。

require "TaPhpSdk.php";
$te = new TDAnalytics(new TDBatchConsumer("SERVER_URL","APP_ID"));

パラメータの説明:

  • APP_ID: プロジェクトのAPP IDです。AE管理画面の「プロジェクト管理」ページで取得できます

  • SERVER_URL: データの送信先URL

    • クラウドサービスをご利用の場合は、次を入力します: https://global-receiver-ta.thinkingdata.cn
    • プライベートデプロイ版をご利用の場合は、データ収集アドレスにドメインをバインドし、HTTPS証明書を設定してください:https://データ収集アドレスにバインドしたドメイン
このページは役に立ちましたか?