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

自動収集

最終更新 2026/10/03

1. 自動収集の紹介​

AEシステムはデータを自動的に収集するためのインターフェースを提供しており、業務要件に応じて、自動収集するデータを選択できます。

現在対応している自動収集データは次のとおりです:

  1. APPのインストール:APPがインストールされたことを記録します
  2. APPの起動:APPを開く操作と、バックグラウンドからの復帰を含みます
  3. APPの終了:APPを閉じる操作と、バックグラウンドへの移行を含みます。同時に、起動していた時間も収集します
  4. ユーザーがAPP内でページ(ネイティブページ)を閲覧した行動
  5. ユーザーがAPP内でコントロールをクリックした行動
  6. APPがクラッシュしたときに、クラッシュ情報を記録します

以下では、各データの収集方法について詳しく説明します

2. 自動収集を有効にする​

enableAutoTrack:を呼び出して、自動収集機能を有効にできます:

[TDAnalytics enableAutoTrack:
TDAutoTrackEventTypeAppStart |//APP起動イベント
TDAutoTrackEventTypeAppInstall |//APPインストールイベント
TDAutoTrackEventTypeAppEnd |//APP終了イベント
TDAutoTrackEventTypeAppViewScreen |//APPページ閲覧イベント
TDAutoTrackEventTypeAppClick |//APPコントロールクリックイベント
TDAutoTrackEventTypeAppViewCrash];//APPクラッシュイベント

3. 自動収集イベントの詳細​

3.1 APPインストールイベント​

APPインストールイベントは、APPの実際のインストールを記録するもので、APPの起動時に送信されます。イベントのトリガー時間は、APPのインストール後に初めて起動した時間です。APPのアップグレードではインストールイベントはトリガーされませんが、削除して再インストールした場合はインストールイベントが送信されます。

  • イベント名:ta_app_install

3.2 APP起動イベント​

APP起動イベントは、ユーザーがAPPを開いたとき、またはバックグラウンドからAPPを復帰させたときにトリガーされます。イベントの詳細は次のとおりです:

  • イベント名:ta_app_start。通常のAPP起動フローでこのイベントがトリガーされます。
  • プリセットプロパティ:#resume_from_background、ブール型。APPがユーザーによって開かれたのか、バックグラウンドから復帰したのかを示します。値がtrueの場合はバックグラウンドからの復帰、falseの場合は直接開かれたことを示します。
  • イベント名:ta_app_bg_start。APPがバックグラウンドで起動されたときに、このイベントがトリガーされます。このイベントはデフォルトでは収集されないため、初期化時に設定項目を有効にする必要があります:
    TDConfig *config = [[TDConfig alloc] init];
    config.appid = appId;
    config.serverUrl = serverUrl;

    // バックグラウンドでのイベント収集を許可
    config.trackRelaunchedInBackgroundEvents = YES;

    [TDAnalytics startAnalyticsWithConfig:config];
    [TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAll];

3.3 APP終了イベント​

APP終了イベントは、ユーザーがAPPを閉じたとき、またはAPPをバックグラウンドに移したときにトリガーされます。イベントの詳細は次のとおりです:

  • イベント名:ta_app_end
  • プリセットプロパティ:#duration、数値型。今回のAPPアクセス(起動から終了まで)の時間を示し、単位は秒です。

3.4 APPページ閲覧イベント​

APPページ閲覧イベントは、ユーザーがページ(View Controller)を切り替えたときにトリガーされます。イベントの詳細は次のとおりです:

  • イベント名:ta_app_view
  • プリセットプロパティ:
  • #screen_name、文字列型。View Controllerのクラス名です
  • #title、文字列型。View Controllerのタイトルで、controller.navigationItem.title属性の値を取ります

ページ閲覧イベントには、分析の価値を広げるために他のプロパティを追加できます。以下は、ページ閲覧イベントのプロパティをカスタマイズする方法です:

3.4.1 ページ閲覧イベントのプロパティのカスタマイズ​

UIViewControllerを継承したView Controllerについては、Protocol<TDScreenAutoTracker>を実装することで、プロパティとページのURL情報を設定できます。SDKはgetTrackPropertiesの戻り値を、そのView ControllerのAPPページ閲覧イベントに自動的に追加します。また、getScreenUrlの戻り値はそのページのURL Schemaとして使用されます。そのページの閲覧イベントがトリガーされると、プリセットプロパティ#urlが追加され、その値は現在のページのURL Schemaになります。同時に、SDKは遷移前のページのURL Schemaを取得し、取得できた場合はプリセットプロパティ#referrerに参照元アドレスとして追加します。

@interface MYController : UITableViewController<TDScreenAutoTracker>
@end

@implementation MYController

//すべてのAPPIDインスタンスに対して設定

- (NSDictionary *)getTrackProperties {
return @{@"PageName" : @"商品詳細ページ", @"ProductId" : @12345};
}

- (NSString *)getScreenUrl {
return @"APP://test";
}

/** 複数のAPPIDインスタンスに個別に設定
* - (NSDictionary *)getTrackPropertiesWithAppid{
* return @{@"appid1" : @{@"testTrackProperties" : @"テストページ"},
* @"appid2" : @{@"testTrackProperties2" : @"テストページ2"},
* };
* }
* -(NSDictionary *)getScreenUrlWithAppid {
* return @{@"appid1" : @"APP://test1",
* @"appid2" : @"APP://test2",
* };
* }
*/

@end

関連するプリセットプロパティ:

  • #url、文字列型。閲覧したページのURLを表します
  • #referrer、文字列型。ページ遷移前のページのURLを表します

3.5 APPコントロールクリックイベント​

APPのコントロールクリックイベントは、ユーザーがコントロールをクリックしたときにトリガーされます

  • イベント名:ta_app_click
  • プリセットプロパティ:
  • #screen_name、文字列型。コントロールが属するView Controllerのクラス名です
  • #element_content、文字列型。コントロールの内容です
  • #element_type、文字列型。コントロールの種類です
  • #element_position、文字列型。コントロールのタイプがUITableViewまたはUICollectionViewの場合にのみ存在し、コントロールがクリックされた位置を表します。値はセクション番号(Section):行番号(Row)です

ページ上のViewのクリックイベントについては、分析の価値を広げるために、次のような複数の方法でプロパティを追加設定できます:

3.5.1 コントロール要素IDの設定​

ページ上の要素(View)に要素IDを設定して、意味の異なる要素を区別できます。要素IDは次の方法で設定できます:

//すべてのAPPIDインスタンスに対して設定
self.table1.thinkingAnalyticsViewID = @"testtable1";

// 複数のAPPIDインスタンスに個別に設定
self.table1.thinkingAnalyticsViewIDWithAppid = @{ @"app1" : @"testtableID2",
@"app2" : @"testtableID3" };

この場合、table1のクリックイベントにプリセットプロパティ#element_idが追加され、その値はここで渡した値になります

  • 関連するプリセットプロパティ:#element_id、文字列型。その要素のカスタムIDを表します

3.5.2 コントロールクリックイベントのプロパティのカスタマイズ​

ほとんどのコントロールでは、thinkingAnalyticsViewPropertiesを使用してカスタムプロパティを直接設定できます:

//すべてのAPPIDインスタンスに対して設定
self.table1.thinkingAnalyticsViewProperties = @{@"key1":@"value1"};

// 複数のAPPIDインスタンスに個別に設定
self.table1.thinkingAnalyticsViewPropertiesWithAppid = @{@"app1":@{@"tablekey":@"tablevalue"},
@"app2":@{@"tablekey2":@"tablevalue2"}
};

3.5.3 UITableViewとUICollectionViewのコントロールクリックイベントのプロパティ​

UITableViewとUICollectionViewについては、Protocol<TDUIViewAutoTrackDelegate>を実装してカスタムプロパティを設定する必要があります:

1. まず、View ControllerクラスでProtocol<TDUIViewAutoTrackDelegate>を実装します

2. 次に、クラス内でデリゲートを設定します。viewDidLoadメソッドで設定することをお勧めします

self.table1.thinkingAnalyticsDelegate = self;
  • table1は、カスタムプロパティを設定するViewに置き換えてください

3. その後、View Controllerのタイプに応じてメソッドを実装します

  • UITableViewで実装する必要があるメソッドは次のとおりです
//すべてのAPPIDインスタンスに対して設定し、UITableViewのカスタムプロパティを設定
-(NSDictionary *) thinkingAnalytics_tableView:(UITableView *)tableView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath
{
return @{@"testProperty":@"test"};
}

/** 複数のAPPIDインスタンスに個別に設定
* -(NSDictionary *) thinkingAnalyticsWithAppid_tableView:(UITableView *)tableView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath {
* return @{@"app1":@{@"autoPro":@"tablevalue"},
* @"app2":@{@"autoPro2":@"tablevalue2"}
* };
* }
*/
  • UICollectionViewで実装する必要があるメソッドは次のとおりです
//すべてのAPPIDインスタンスに対して設定し、UICollectionViewのカスタムプロパティを設定
-(NSDictionary *) thinkingAnalytics_collectionView:(UICollectionView *)collectionView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath;
{
return @{@"testProperty":@"test"};
}

/** 複数のAPPIDインスタンスに個別に設定
* - (NSDictionary *)thinkingAnalyticsWithAppid_collectionView:(UICollectionView *)collectionView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath {
* return @{@"app1":@{@"autoProCOLL":@"tablevalueCOLL"},
* @"app2":@{@"autoProCOLL2":@"tablevalueCOLL2"}
* };
* }
*/

4. 最後に、クラスのviewWillDisappearメソッドでthinkingAnalyticsDelegateをnilに設定します

-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
self.table1.thinkingAnalyticsDelegate = nil;
}
  • table1は、カスタムプロパティを設定するViewに置き換えてください。デリゲートを設定したときのViewと対応させます

3.6 APPクラッシュイベント​

APPで捕捉されない例外が発生すると、APPクラッシュイベントが送信されます

  • イベント名:ta_app_crash
  • プリセットプロパティ:
  • #app_crashed_reason、文字列型。クラッシュ時のスタックトレースを記録します

4. 自動収集イベントの無視​

次の方法で、特定のページまたはコントロールの自動収集イベントを無視できます

4.1 特定のページの自動収集イベントを無視する​

特定のページ(View Controller)で自動収集イベント(ページ閲覧イベントとコントロールクリックイベントを含む)を送信したくない場合は、次の方法で無視できます:

NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:@"IgnoredViewController"];

// 特定のページの自動収集イベントを無視
[TDAnalytics ignoreAutoTrackViewControllers:array];

4.2 特定の種類のコントロールのクリックイベントを無視する​

特定の種類のコントロールのクリックイベントを無視する必要がある場合は、次の方法で無視できます

// 特定のタイプのすべてのコントロールを無視
[TDAnalytics ignoreViewType:[IgnoredClass class]];
  • IgnoredClassは無視するコントロールのタイプです

4.3 特定の要素(View)のクリックイベントを無視する​

特定の要素(View)のクリックイベントを無視したい場合は、次の方法で無視できます

// すべてのAPPIDインスタンスに対して設定
self.table1.thinkingAnalyticsIgnoreView = YES;

// 複数のAPPIDインスタンスに個別に設定
// self.table2.thinkingAnalyticsIgnoreViewWithAppid = @{@"appid1" : @YES,@"appid2" : @NO};
  • table1は、無視するViewに置き換えてください

5. 自動収集イベントのプリセットプロパティ​

以下のプリセットプロパティは、各自動収集イベントに固有のプリセットプロパティです

  • APP起動イベント(ta_app_start)のプリセットプロパティ
プロパティ名画面表示名プロパティタイプ説明

#resume_from_background

バックグラウンドからの復帰かどうか

ブール値

APPが開かれたのか、バックグラウンドから復帰したのかを示します。値がtrueの場合はバックグラウンドからの復帰、falseの場合は直接開かれたことを示します

#start_reason

起動理由

テキスト

APPの起動理由を表します。valueは文字列型です。現在、deeplink、プッシュ、3dtouchによる起動理由の収集に対応しています。
#background_durationバックグラウンド滞在時間数値単位は秒です
  • APP終了イベント(ta_app_end)のプリセットプロパティ
プロパティ名画面表示名プロパティタイプ説明
#durationイベント継続時間

数値

今回のAPPアクセス(起動から終了まで)の時間を示します。単位は秒です
  • APPページ閲覧イベント(ta_app_view)のプリセットプロパティ
プロパティ名画面表示名プロパティタイプ説明
#title

ページタイトル

テキスト

View Controllerのタイトルで、controller.navigationItem.title属性の値を取ります
#screen_nameページ名テキストView Controllerのクラス名です
#url

ページアドレス

テキスト

現在のページのアドレスです。getScreenUrlを呼び出してurlを設定する必要があります
#referrer

参照元アドレス

テキスト遷移前のページのアドレスです。遷移前のページでgetScreenUrlを呼び出してurlを設定する必要があります
  • APPコントロールクリックイベント(ta_app_click)のプリセットプロパティ
プロパティ名画面表示名プロパティタイプ説明

#title

ページタイトルテキストView Controllerのタイトルで、controller.navigationItem.title属性の値を取ります
#screen_nameページ名テキストView Controllerのクラス名です

#element_id

要素ID

テキスト

コントロールのIDです。thinkingAnalyticsViewIDで設定する必要があります
#element_type要素タイプテキストコントロールの種類
#element_selector要素セレクターテキストコントロールのviewPathを連結したものです

#element_position

要素の位置

テキストコントロールの位置情報です。コントロールのタイプがUITableViewまたはUICollectionViewの場合にのみ存在し、コントロールがクリックされた位置を表します。値はセクション番号(Section):行番号(Row)です
#element_content要素の内容テキストコントロール上の内容
  • APPクラッシュイベント(ta_app_crash)のプリセットプロパティ
プロパティ名画面表示名プロパティタイプ説明
#app_crashed_reason例外情報テキスト文字列型。クラッシュ時のスタックトレースを記録します

6. 自動収集イベントのカスタムプロパティの設定​

enableAutoTrack:properties:を呼び出して、自動収集機能を有効にすると同時に、カスタムプロパティを設定できます

// 自動収集のカスタムプロパティ
[TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAll properties:@{@"auto_key1": @"auto_value1"}];

setAutoTrackProperties:properties:を呼び出して、カスタムプロパティを設定または更新することもできます

[TDAnalytics setAutoTrackProperties:TDAutoTrackEventTypeAll properties:@{@"auto_key2": @"auto_value2"}];

7. 自動収集イベントのコールバック​

v2.7.4以降、自動収集イベントのコールバックに対応しています。enableAutoTrack:callback:を呼び出して自動収集機能を有効にし、callbackでプロパティを追加・更新できます。

[TDAnalytics enableAutoTrack:TDAutoTrackEventTypeAll callback:^NSDictionary * _Nonnull(TDAutoTrackEventType eventType, NSDictionary * _Nonnull properties) {
if (eventType == TDAutoTrackEventTypeAppStart) {
return @{@"addkey":@"addvalue"};
}
if (eventType == TDAutoTrackEventTypeAppEnd) {
return @{@"updatekey":@"updatevalue"};
}
return @{};
}];

このコールバック内で時間のかかる処理を行わないでください。データが正常にデータベースに保存されなくなるおそれがあります

このページは役に立ちましたか?