目录
此内容是否有帮助?

# iOS SDK 自動収集ガイド

# 1、自動収集の紹介

TA システムは、データ収集を自動化するインターフェースを提供し、ビジネス要件に応じて自動収集が必要なデータを選択することができます。

現在サポートしている自動収集イベントの種類は次のとおりです。

  1. APP インストール、APP インストールログの記録
  2. APP 起動、バックグラウンドから起こす
  3. APP 終了、バックグラウンドへの移動、起動時間の収集
  4. ユーザーの APP 内のページビュー(ネイティブページ)
  5. ユーザーの APP 内のコントロールクリック
  6. APP クラッシュ情報の記録

次に、各データの収集メソッドを詳しく紹介します。

# 2、自動収集の有効化

enableAutoTrack:を呼び出して、自動収集機能を開きます:

// APPIDインスタンスの自動収集イベントを有効化. 複数のAPPIDインスタンスの自動収集をオンにする.
[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID]enableAutoTrack:ThinkingAnalyticsEventTypeAppStart |
ThinkingAnalyticsEventTypeAppInstall |
ThinkingAnalyticsEventTypeAppEnd |
ThinkingAnalyticsEventTypeAppViewScreen |
ThinkingAnalyticsEventTypeAppClick |
ThinkingAnalyticsEventTypeAppViewCrash];

// シングルAPPIDインスタンスの場合、以下の方法で有効化する.
// [[ThinkingAnalyticsSDK sharedInstance] enableAutoTrack:ThinkingAnalyticsEventTypeAppStart |
// ThinkingAnalyticsEventTypeAppInstall |
// ThinkingAnalyticsEventTypeAppEnd |
// ThinkingAnalyticsEventTypeAppViewScreen |
// ThinkingAnalyticsEventTypeAppClick |
// ThinkingAnalyticsEventTypeAppViewCrash];

上記のパラメーターはそれぞれ次のように表します:

  • ThinkingAnalyticsEventTypeAppInstall:APP インストール、APP インストールログの記録
  • ThinkingAnalyticsEventTypeAppStart:APP 起動イベント、APP 起動またはバックグラウンドから回復の記録
  • ThinkingAnalyticsEventTypeAppEnd:APP クローズイベント、APP バックグラウンドへの移動の記録
  • ThinkingAnalyticsEventTypeAppViewScreen:APP ページビューイベントの記録
  • ThinkingAnalyticsEventTypeAppClick:APP コントロールクリックイベントの記録
  • ThinkingAnalyticsEventTypeAppViewCrash:APP クラッシュイベントの記録

業務状況に応じて、イベント収集に必要なパラメータを取り込み、複数のパラメーターは|で分割してください。

パブリックイベントプロパティまたはカスタムゲスト ID を設定するには、自動収集を有効にする前に setSuperProperties:または identify:を呼び出してください。


-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [ThinkingAnalyticsSDK startWithAppId:@"APP_ID"
                                   withUrl:@"SERVER_URL"];
    return YES;
}

[[ThinkingAnalyticsSDK sharedInstance] identify:@"123ABCabc"];

[[ThinkingAnalyticsSDK sharedInstance] setSuperProperties:@{
                                                            @"Channel":@"ABC",
                                                            @"Server":123,
                                                            @"isTest":@YES
                                                            }];


//ゲストIDとパブリックプロパティを設定した後,自動収集を有効化してください。

[[ThinkingAnalyticsSDK sharedInstance] enableAutoTrack:ThinkingAnalyticsEventTypeAppStart |
ThinkingAnalyticsEventTypeAppInstall |
ThinkingAnalyticsEventTypeAppEnd |
ThinkingAnalyticsEventTypeAppViewScreen |
ThinkingAnalyticsEventTypeAppClick |
ThinkingAnalyticsEventTypeAppViewCrash];

# 3、自動収集イベントの詳細

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

APP インストールイベントは APP の実際のインストールを記録し、APP 起動時にアップロードされます。イベントの時間トリガーは APP のインストール後の最初の起動時間です。APP のアップグレードはインストールイベントを起こさないが、APP を削除して再インストールする時はインストールイベントがアップロードされます。

  • イベント名: ta_app_install

# 3.2 APP 起動イベント

APP 起動イベントは、ユーザーが APP を起動したとき、またはバックグラウンドから APP を起こしたときに発生します。

  • イベント名: ta_app_start
  • プリセットプロパティ:#resume_from_background、ブール型、APP はユーザーが起動したかバックグラウンドから起こしたかを表します。値 true はバックグラウンドから起こしたことを表し、false は直接起動したことを表します。

# 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から継承した ViewController について、Protocol<TDScreenAutoTracker>を実装することでプロパティとページの URL 情報を設定することができます。SDK は自動的にgetTrackProperties:の戻り値を ViewController の APP ページビューイベントに追加し、getScreenUrl:の戻り値をページの URLSchema として使用します。ページビューイベントがトリガーされるとプリセットプロパティ#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は文字列型で、コントロールが属する ViewController のクラス名です。
  • #element_contentは文字列型で、コントロールの内容です。
  • #element_typeは文字列型で、コントロールタイプです。
  • #element_positionは文字列型で、コントロールタイプがUITableViewUICollectionViewの時のみ存在し、コントロールがクリックされたところの値はグループ番号(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 コントロールクリックイベントのプロパティ

UITableViewUICollectionView について、Protocol<TDUIViewAutoTrackDelegate>を実装することでカスタムプロパティを設定します。

1.まず ViewController クラスで Protocol<TDUIViewAutoTrackDelegate>を実装します。

2.次にクラスでエージェントを設定し、viewDidLoadメソッドに設定を行います。

self.table1.thinkingAnalyticsDelegate = self;
  • table1はカスタムプロパティを設定する View に置き換えます。

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

  • 以下は、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インスタンスに対して設定を行う.UITableViewのカスタムプロパティを設定
-(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メソッドでthinkingAnalyticsDelegatenilに設定します。

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.table1.thinkingAnalyticsDelegate = nil;
}
  • table1は、カスタムプロパティを設定する 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"];

// マルチAPPIDインスタンスの場合,シングルAPPIDインスタンスを設定.あるページの自動収集イベントを無視.
[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID] ignoreAutoTrackViewControllers:array];

// シングルAPPIDインスタンスの場合に呼び出す.
// [[ThinkingAnalyticsSDK sharedInstance] ignoreAutoTrackViewControllers:array];

# 4.2 コントロールクリックイベントの無視

ある種類のコントロールクリックイベントを無視するには、次のメソッドを使用します。

// マルチAPPIDインスタンスの場合,シングルAPPIDインスタンスを設定.あるページの自動収集イベントを無視.
[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID] ignoreViewType:[IgnoredClass class]];

// シングルAPPIDインスタンスの場合に呼び出す.
// [[ThinkingAnalyticsSDK sharedInstance] 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の起動原因の収集をサポートしている。
  • APP クローズイベント(ta_app_end)のプリセットプロパティ
プロパティ

日本語
説明
#duration
イベントの長さ
アプリの起動から終了までの時間を秒単位で表す。
  • 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:を呼び出して、自動収集機能を有効化し、カスタムプロパティを設定します。

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

setAutoTrackProperties:properties:を呼び出して、カスタムプロパティを設定または更新します。

[[ThinkingAnalyticsSDK sharedInstance] setAutoTrackProperties:ThinkingAnalyticsEventTypeAppEnd properties: @{@"auto_key2": @"auto_value2"}];

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

v2.7.4 から自動収集イベントのコールバックをサポートしています。enableAutoTrack:callback:を呼び出して、自動収集機能を有効化し、callback でプロパティを追加または更新します。

[[ThinkingAnalyticsSDK sharedInstance] enableAutoTrack:ThinkingAnalyticsEventTypeAll callback:^NSDictionary * _Nonnull(ThinkingAnalyticsAutoTrackEventType eventType, NSDictionary * _Nonnull properties) {
    if (eventType == ThinkingAnalyticsEventTypeAppStart) {
      return @{@"addkey":@"addvalue"};
    }
    if (eventType == ThinkingAnalyticsEventTypeAppEnd) {
      return @{@"updatekey":@"updatevalue"};
    }
    return @{};
}];

データが正常に格納できるように、コールバックで時間のかかる操作をしないでください。