Flutter
このガイドでは、Flutter SDKを使ってプロジェクトに接続する方法を説明します。接続を始める前に、データルールの章を読んでおくことをお勧めします。
最新バージョン: 3.3.3
更新日: 2026-08-05
リソースのダウンロード: ソースコード
このドキュメントはv3.0.0以降のバージョンに適用されます。以前のバージョンについては、Flutter接続ガイド(V2)を参照してください
1. SDKの統合
Flutterプロジェクトのpubspec.yamlファイルにthinking_analyticsの依存関係を追加します:
dependencies:
thinking_analytics: ^3.3.3
3.3.0以降のバージョンでは、HarmonyOSプラットフォーム(Flutter For OpenHarmony)に対応しています。現在対応しているのはFlutter 3.7.12と3.22.0です
HarmonyOSプラットフォームで現在対応していない機能は次のとおりです:
- カスタムタイムゾーン機能には対応していません
- 自動収集イベントの動的共通プロパティには対応していません
- JS連携には対応していません
2. 初期化
ThinkingData SDKは、ユーザーが「プライバシーポリシー」に同意した後に初期化する必要があります
3.3.0以降のバージョンではawaitを付ける必要はありません
// プライバシーポリシーへの同意状況に応じてデータ収集を有効にするかどうかを判断
import 'package:thinking_analytics/td_analytics.dart';
if (プライバシーポリシーに同意済み)
{
//SDKを初期化
await TDAnalytics.init(APPID, SERVER_URL);
}
パラメータの説明:
-
APPID: プロジェクトのAPPIDです。AE管理画面の「プロジェクト管理」ページで取得できます -
SERVER_URL: データの送信先URL- クラウドサービスをご利用の場合は、次を入力します: https://global-receiver-ta.thinkingdata.cn
- プライベートデプロイ版をご利用の場合は、データ収集アドレスにドメインをバインドし、HTTPS証明書を設定してください:https://データ収集アドレスにバインドしたドメイン
Android 9.0以降ではデフォルトでHTTPリクエストが制限されているため、必ずHTTPSプロトコルを使用してください
3. よく使う機能
よく使う機能を使用する前に、まずユーザー識別ルールを確認することをお勧めします。SDKはデフォルトで乱数を生成してゲストIDとし、ゲストIDをローカルに永続的に保存します。ユーザーがログインするまでは、ゲストIDが識別IDとして使われます。注意:ゲストIDは、ユーザーがAppを再インストールしたり、デバイスを変更したりすると変わります。
3.1 アカウントIDの設定
ユーザーがログインする際にloginを呼び出して、ユーザーのアカウントIDを設定できます。AEプラットフォームはアカウントIDを識別IDとして使用し、設定したアカウントIDはlogoutを呼び出すまで保持されます。loginを複数回呼び出すと、以前のアカウントIDが上書きされます。
// ユーザーのログイン時の一意の識別子。このデータは送信データの#account_idに対応し、この場合#account_idの値はTAになります
TDAnalytics.login("TA");
loginは複数回呼び出すことができます。呼び出すたびに、渡されたアカウントIDが以前に保存したIDと一致するかどうかを判断し、一致する場合は呼び出しを無視し、一致しない場合は以前のIDを上書きします。
このメソッドはログインイベントを送信しません
3.2 共通イベントプロパティの設定
共通イベントプロパティとは、すべてのイベントに付与されるプロパティのことです。setSuperPropertiesを呼び出して共通イベントプロパティを設定できます。イベントを送信する前に、共通イベントプロパティを設定しておくことを推奨します。ユーザーの会員レベルや流入チャネルなどの重要なプロパティは、すべてのイベントに設定する必要があります。その場合は、これらのプロパティを共通イベントプロパティとして設定できます。
TDAnalytics.setSuperProperties({
"channel": "ta",//文字列
"age": 1,//数値
"isSuccess": true,//ブール値
"birthday": DateTime.now(),//時間
"object": {"key": "value"},//オブジェクト
"object_arr": [{"key": "value"}],//オブジェクトグループ
"arr": ["value"]//配列
});
共通イベントプロパティはキャッシュに保存されるため、Appを起動するたびに呼び出す必要はありません。setSuperPropertiesを呼び出して、以前に設定済みの共通イベントプロパティを送信した場合は、以前のプロパティが上書きされます。
- Keyはプロパティの名前で、文字列型です。英字で始まり、数字、英字、アンダースコア"_"のみを含めることができます。最大長は50文字です。英字の大文字と小文字は区別されず、AEではすべて小文字に変換されます
- Valueはプロパティの値で、文字列、数値、ブール値、時間、オブジェクト、オブジェクトグループ、配列に対応しています
イベントプロパティとユーザープロパティの要件は、共通イベントプロパティと同じです
3.3 自動収集の有効化
次のコード例では、インストール、起動、終了、クラッシュイベントを有効にしています。SDKの自動収集機能について詳しくは、自動収集機能の詳細を参照してください
TDAnalytics.enableAutoTrack(TDAutoTrackEventType.APP_START |
TDAutoTrackEventType.APP_END |
TDAutoTrackEventType.APP_INSTALL |
TDAutoTrackEventType.APP_CRASH);
3.4 イベントの送信
事前に整理したドキュメントに従って、イベントのプロパティと送信条件を設定することをお勧めします。イベント名はString型で、先頭は英字のみ使用でき、数字、英字、アンダースコア "_" を含めることができます。最大長は50文字で、英字の大文字と小文字は区別されません。
TDAnalytics.track('product_buy', properties: <String, dynamic>{'product_name': '商品名'});
イベント名は文字列型で、英字で始まり、数字、英字、アンダースコア"_"を含めることができます。最大長は50文字です。
3.5 ユーザープロパティの設定
一般的なユーザープロパティは、userSetを呼び出して設定できます。このインターフェースで送信したプロパティは、既存のプロパティ値を上書きします。そのユーザープロパティが以前に存在しない場合は新しく作成され、タイプは渡されたプロパティのタイプと同じになります。ここでは、ユーザー名の設定を例にします:
TDAnalytics.userSet(<String, dynamic>{'user_name': 'TA'}); //この時点でusernameはTA
TDAnalytics.userSet(<String, dynamic>{'user_name': 'TE'}); //この時点でuserNameはAE
4. ベストプラクティス
次のサンプルコードには、上記のすべての操作が含まれています。次の手順で使用することをお勧めします:
import 'package:thinking_analytics/td_analytics.dart';
if (プライバシーポリシーに同意済み)
{
//SDKを初期化
await TDAnalytics.init('APP_ID', 'https://SERVER_URL');
//自動収集イベントを有効化
TDAnalytics.enableAutoTrack(TDAutoTrackEventType.APP_START |
TDAutoTrackEventType.APP_END |
TDAutoTrackEventType.APP_INSTALL |
TDAutoTrackEventType.APP_CRASH);
//ユーザーがログイン済みの場合は、ユーザーのアカウントIDを一意の識別子として設定できます
TDAnalytics.login('TA');
//共通イベントプロパティを設定すると、すべてのイベントに共通イベントプロパティが付与されます
TDAnalytics.setSuperProperties({
"channel": "ta",//文字列
"age": 1,//数値
"isSuccess": true,//ブール値
"birthday": DateTime.now(),//時間
"object": {"key": "value"},//オブジェクト
"object_arr": [{"key": "value"}],//オブジェクトグループ
"arr": ["value"]//配列
});
//イベントを送信
TDAnalytics.track('product_buy', properties: <String, dynamic>{'product_name': '商品名'});
//ユーザープロパティを設定
TDAnalytics.userSet(<String, dynamic>{'user_name': 'TE'});
}

