トラッキング
ユーザーが新しい会話を開始する際のイベントとユーザーアクションを追跡します。 SDKを介して開始されたすべての会話に、カスタムメタデータを添付します。
SDKに含まれているすべてのパブリックAPIは、Helpshift installWithPlatformId APIを介してSDKを初期化した後に呼び出す必要があります
会話にタグを追加する
showConversationを呼び出す際にconfigMapオブジェクトにタグを渡すことにより、問題を報告する際にタグを添付できるようになります。キー"tags"を持つ文字列の配列を渡すことができるようになり、問題の作成時にタグとして追加されます。
NSArrayのオブジェクトがNSString型でない場合は、オブジェクトはタグから削除され、新しい会話には追加されません。
例:
- Objective-C
- Swift
NSArray *tags = @[@"Hello", @"iOS"];
NSDictionary *config = @{@"tags":tags};
[Helpshift showConversationWith:self config:config];
let tags = ["Hello", "iOS"]
let config = ["tags":tags]
Helpshift.showConversation(with:self, config:config)
タグの名前と互換性について
- タグについては、Helpshiftダッシュボード(設定、タグの順に移動)で事前に作成しておく必要があります。作成していない場合には、これらは無視されます。
- 添付されているタグは、ダッシュボードに表示されているタグと完全に一致している必要があります。
会話にカスタムメタデータを添付する
アプリのユーザーによって開始されたすべての新しい会話には、追加のメタデータを添付することができます。このメタデータには、ユーザー名、メールアドレス、ゲームのスコア、現在のゲームレベルなど、開始されたそれぞれの会話にコンテキストを提供するために必要となるデータを含めることができます。SDK XのAPI(showConversation、showFAQs、showSingleFAQ、showFAQSection)のいずれかを呼び出す際にこのデータをconfig辞書に渡すことで、カスタムメタデータを添付することができます。
例:
- Objective-C
- Swift
NSDictionary *customMetadata = @{ @"usertype": @"paid",
@"level": @"7",
@"score": @"12345"
};
NSDictionary *config = @{ @"customMetadata" : customMetadata };
[Helpshift showConversationWith:self config:config];
let customMetadata = [ "usertype": "paid",
"level": "7",
"score": "12345" ];
let config = ["customMetadata":customMetadata]
Helpshift.showConversation(with: self, config: config)
- メタデータは、文字列のキーと値のペアとしてのみ送信が可能となります。
- 一度customMetadataが設定されてしまうと、それをリセットするにはSDK XのAPIを空の辞書を用いて呼び出さなければいけなくなります。
let customMetadata = [String: String]();
let config = ["customMetadata":customMetadata]
Helpshift.showConversation(with: self, config: config)
カスタム問題フィールドを会話に添付する
カスタム問題フィールドは、ユーザーが開始したすべての新しい会話に添付することができます。カスタム問題フィールドには、キー、データ型、値の設定が必要となります。Helpshift SDKでは、API構成辞書でcifsキーを使用することでカスタム問題フィールドを追加することができます。
これらのカスタム問題フィールドは、エンドユーザーが新しい会話を開始したり、スマートFAQを介して問題を作成するたびに送信されます。
エンドユーザーが会話画面を開くと、すぐに挨拶メッセージが表示され、会話がアクティブなものとしてみなされるようになります。変更されたすべてのカスタム問題フィールド(アクティブな会話の中で更新されたもの)は、エンドユーザーが次に開始する会話でのみ送信されます。
例:
- Objective-C
- Swift
NSDictionary *cifs = @{ @"joining_date": @{ @"type":@"date", @"value":@1505927361535 },
@"stock_level": @{ @"type":@"number", @"value":@"1505" },
@"employee_name": @{ @"type":@"singleline", @"value":@"ABC" },
@"employee_address": @{ @"type":@"multiline", @"value":@"303,Joy plaza,Park street,Viman nagar.Pune-432123" },
@"salary_currency": @{ @"type":@"dropdown", @"value":@"Dollars" } };
NSDictionary *config = @{ @"cifs" : cifs };
[Helpshift showConversationWith:self config:config];
let cifs = [ "joining_date": ["type":"date", "value":1505927361535],
"stock_level": ["type":"number", "value":"1505"],
"employee_name": ["type":"singleline", "value":"ABC"],
"employee_address": ["type":"multiline", "value":"303,Joy plaza,Park street,Viman nagar.Pune-432123"],
"salary_currency": ["type":"dropdown", "value":"Dollars"]];
let config = ["cifs":cifs]
Helpshift.showConversation(with: self, config: config)
構成に渡すことができるデータ型は、以下の通りです。
| データ型 | 値 | コメント |
|---|---|---|
| "singleline" | string | 文字数制限が255文字の単一行の文字列です |
| "multiline" | string | 文字数制限が100,000文字の複数行の文字列です |
| "number" | string | 数字を表す文字列です。例: "12345" |
| "dropdown" | string | ドロップダウンオプションは、ダッシュボードの特定のカスタム問題フィールドのために存在する必要があります。値は、そのドロップダウンのためにダッシュボードで指定された値のいずれかでなければいけません。 |
| "date" | NSNumber | ミリ秒単位のエポック時間です。例: 1505927361535 |
| "checkbox" | string | ブール値による文字列表現です。例: "true"または"false"。これは、ダッシュボードのチェックボックス型のカスタム問題フィールドに対応しています。 |
カスタム問題フィールドのキーと互換性について
- カスタム問題フィールドは、Helpshiftダッシュボード(「設定」、「カスタム問題フィールド」の順に移動します)で作成する必要があります。そうでない場合には、これらは無視されます。詳細については、こちらをご参照ください。
Breadcrumbs
Breadcrumbsは、イベントやエンドユーザーのアクションの追跡に使用されます。これは、お客様がHelpshiftのエージェントダッシュボードにあるすべての新しい会話と一緒に渡されるエンドユーザーのアクションに関するデバッグ情報を追加する際に役立ちます。 Breadcrumbsを残すには、leaveBreadcrumb: APIを使用します。
- Objective-C
- Swift
[Helpshift leaveBreadcrumb:@"any breadcrumb string"];
Helpshift.leaveBreadcrumb("any breadcrumb string")
Breadcrumbsは、設定されているBreadcrumbsの制限内で収集されます。制限は、Helpshiftのエージェントダッシュボードにある「アプリの設定」のSDKの構成セクションで設定します。Breadcrumbsは、FIFOキューに集められます。Breadcrumbsを消去する場合には、clearBreadcrumbs APIを使用します。
- Objective-C
- Swift
[Helpshift clearBreadcrumbs];
Helpshift.clearBreadcrumbs()
- SDK X v10.1.0以上に対応しています
leaveBreadcrumbAPIは、フォーマットされた文字列の受け渡しには対応していません。データの受け渡しについては、シンプルな文字列型のみが推奨されています。例:"{\"key\":\"value\"}"- JSON文字列、これには対応していません"key - value"- シンプルな文字列、これには対応しています
デバッグログ
Helpshiftのエージェントダッシュボードにあるエンドユーザーによって提出された新しい会話ごとに、追加のデバッグログを渡したい場合があるかもしれません。これについては、addLog: APIを使用することで実現可能です。
- Objective-C
- Swift
[Helpshift addLog:@"any debug log string"];
Helpshift.addLog("any debug log string")
デバッグログは、設定されているデバッグログの制限内で収集されます。制限は、Helpshiftのエージェントダッシュボードにある「アプリの設定」のSDKの構成セクションで設定します。デバッグログは、FIFOキューに集められます。
- SDK X v10.1.0以上に対応しています
addLogAPIは、フォーマットされた文字列の受け渡しには対応していません。データの受け渡しについては、シンプルな文字列型のみが推奨されています。例:"{\"key\":\"value\"}"- JSON文字列、これには対応していません"key - value"- シンプルな文字列、これには対応しています
グローバルユーザー属性の更新
このAPIは、新しいユーザーIDシステムとともに使用することを意図しています。ログインユーザーに関連するグローバル属性を更新するには、このAPIを使用してください。
- Objective-C
- Swift
NSDictionary<NSString *, id> *attributes = @{
// Add attributes here
};
[Helpshift updateMasterAttributes:attributes];
let attributes: [String: Any] = [
// Add attributes here
]
Helpshift.updateMasterAttributes(attributes)
グローバル属性は、以下のいずれかの型である必要があります。
first_name- 文字列last_name- 文字列display_name- 文字列full_name- 文字列last_country- 文字列last_city- 文字列age- 文字列lifetime_value- 文字列user_persona- 文字列user_vip_segment- 文字列user_support_status- 文字列last_active_date- UNIX時間accepted_t_and_c- ブール値または文字列preferred_language- 文字列full_privacy_enabled- 文字列new_tags- 文字列配列tags_to_remove- 文字列配列reset_tags- 文字列配列custom_user_fields- 文字列→文字列辞書
このAPIは、既存のHelpshiftデリゲートシステムを活用してエラーが発生した際にアプリに通知を行います。 このAPIでトリガーできるエラーイベントの詳細については、デリゲートページを参照してください。
属性辞書に対応していないキーが含まれている場合、エラーイベントはデリゲートを通じて通知されます。 属性辞書に対応内のキーが含まれていたとしても、対応していない型の値が含まれている場合にはそのエントリーは無視されます。
アプリ固有のユーザー属性の更新
このAPIは、新しいユーザーIDシステムとともに使用することを意図しています。ログインユーザーに関連するアプリ固有の属性を更新するには、このAPIを使用してください。
- Objective-C
- Swift
NSDictionary<NSString *, id> *attributes = @{
// Add attributes here
};
[Helpshift updateAppAttributes:attributes];
let attributes: [String: Any] = [
// Add attributes here
]
Helpshift.updateAppAttributes(attributes)
アプリ固有の属性は、以下のいずれかの型である必要があります。
device_model- 文字列os_version- 文字列app_version- 文字列sdk_version- 文字列country- 文字列city- 文字列user_vip_segment- 文字列language- 文字列app_rating- 文字列user_paying_segment- 文字列user_support_status- 文字列user_persona- 文字列accepted_t_and_c- 文字列user_level- 文字列app_status- 文字列lifetime_value- 文字列custom_user_fields- 文字列→文字列辞書
このAPIは、既存のHelpshiftデリゲートシステムを活用してエラーが発生した際にアプリに通知を行います。 このAPIでトリガーできるエラーイベントの詳細については、デリゲートページを参照してください。
属性辞書に対応していないキーが含まれている場合、エラーイベントはデリゲートを通じて通知されます。 属性辞書に対応内のキーが含まれていたとしても、対応していない型の値が含まれている場合にはそのエントリーは無視されます。
Attributes Update APIは、属性をHelpshiftサーバーと一括で同期します。進行中の一括更新の同期が完了する前に ユーザーがSDKからログアウトした場合、属性の更新状況が失われてしまう可能性があります。