コンテンツにスキップ

カスタムタグの使用

コンパイル設定の構成

複数の Configuration(構成)を作成し、プリプロセッサディレクティブを使用して異なるタグ値を設定できます。

  1. 複数の Configuration を作成します。

  1. プリセット属性を設定して異なる Configuration を区別します。

  1. プリプロセッサディレクティブを使用します。
//Target -> Build Settings -> GCC_PREPROCESSOR_DEFINITIONS でプリセット定義を設定
#if PRE
#define Track_id       @"0000000001"
#define STATIC_TAG     @"preprod"
#elif  DEVELOP
#define Track_id       @"0000000002"
#define STATIC_TAG     @"common"
#else
#define Track_id       @"0000000003"
#define STATIC_TAG     @"prod"
#endif

FTRumConfig *rumConfig = [[FTRumConfig alloc]init];
rumConfig.globalContext = @{@"track_id":Track_id,@"static_tag":STATIC_TAG};
... //その他の設定操作
[[FTMobileAgent sharedInstance] startRumWithConfigOptions:rumConfig];

複数環境の設定パラメータ の方法を参照して設定することもできます。

実行時のファイル読み書き

RUM 起動後に設定した globalContext は反映されないため、ユーザーはローカルに保存し、次回アプリケーション起動時に設定して有効にすることができます。

  1. ファイルに保存してローカルに保持します(例:NSUserDefaults)。SDK を使用する際の設定箇所に、タグデータを取得するコードを追加します。
NSString *dynamicTag = [[NSUserDefaults standardUserDefaults] valueForKey:@"DYNAMIC_TAG"]?:@"NO_VALUE";

FTRumConfig *rumConfig = [[FTRumConfig alloc]init];
rumConfig.globalContext = @{@"dynamic_tag":dynamicTag};
... //その他の設定操作
[[FTMobileAgent sharedInstance] startRumWithConfigOptions:rumConfig];
  1. 任意の場所でファイルデータを変更するメソッドを追加します。
[[NSUserDefaults standardUserDefaults] setValue:@"dynamic_tags" forKey:@"DYNAMIC_TAG"];
  1. 最後にアプリケーションを再起動して有効にします。

SDK 実行時の追加

SDK の初期化完了後、[FTMobileAgent appendGlobalContext:globalContext][FTMobileAgent appendRUMGlobalContext:globalContext][FTMobileAgent appendLogGlobalContext:globalContext] を使用してタグを動的に追加できます。設定後すぐに反映され、以降に RUM または Log が報告するデータには自動的に対応するタグが付与されます。

この使用方法は、タグデータをログイン、API リクエスト、またはローカルの非同期初期化後にしか取得できないような、遅延データ取得のシナリオに適しています。

!!! warning

SDK 初期化設定の `globalContext` や SDK 組み込みフィールドと同じキーを使用しないでください。キーが重複した場合、初期化設定の静的タグが動的に追加されたタグより優先されます。

使用方法

/// SDK グローバルタグを追加します。RUM、Log データに適用されます
/// - Parameter context: カスタムデータ
+ (void)appendGlobalContext:(NSDictionary <NSString*,id>*)context;

/// RUM カスタムタグを追加します。RUM データに適用されます
/// - Parameter context: カスタムデータ
+ (void)appendRUMGlobalContext:(NSDictionary <NSString*,id>*)context;

/// Log グローバルタグを追加します。Log データに適用されます
/// - Parameter context: カスタムデータ
+ (void)appendLogGlobalContext:(NSDictionary <NSString*,id>*)context;
/// SDK グローバルタグを追加します。RUM、Log データに適用されます
/// - Parameter context: カスタムデータ
open class func appendGlobalContext(_ context: [String : Any])

/// RUM カスタムタグを追加します。RUM データに適用されます
/// - Parameter context: カスタムデータ
open class func appendRUMGlobalContext(_ context: [String : Any])

/// Log グローバルタグを追加します。Log データに適用されます
/// - Parameter context: カスタムデータ
open class func appendLogGlobalContext(_ context: [String : Any])

コード例

//SDK 初期化の疑似コード
[FTMobileAgent startWithConfigOptions:config];

-(void)getInfoFromNet:(Info *)info{
    NSDictionary *globalContext = @{@"delay_key": info.value};
    [FTMobileAgent appendGlobalContext:globalContext];
}

フィードバック

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