トラッキング
ユーザーが新しい会話を開始する際のイベントとユーザーアクションを追跡します。 SDKを介して開始されたすべての会話に、カスタムメタデータを添付します。
SDKに含まれているすべてのパブリックAPIは、Helpshift.install() APIを介してSDKを初期化した後に呼び出す必要があります
会話にタグを追加する
Helpshift.showConversation(this, configMap)を呼び出す際にconfigMapオブジェクトにタグを渡すことにより、問題を報告する際にタグを添付できるようになります。キー"tags"を持つ文字列の配列を渡すことができるようになり、問題の作成時にタグとして追加されます。
例:
Map<String, Object> config = new HashMap<>();
config.put("tags", new String[]{"foo", "bar"});
Helpshift.showConversation(MainActivity.this, config);
タグの名前と互換性について
- タグについては、Helpshiftダッシュボード(設定、タグの順に移動)で事前に作成しておく必要があります。作成していない場合には、これらは無視されます。
- 添付されているタグは、ダッシュボードに表示されているタグと完全に一致している必要があります。
会話にカスタムメタデータを追加する
アプリのユーザーによって開始されたすべての新しい会話には、追加のメタデータを添付することができます。このメタデータには、ユーザー名、メールアドレス、ゲームのスコア、現在のゲームレベルなど、開始されたそれぞれの会話にコンテキストを提供するために必要となるデータを含めることができます。SDK XのAPI(showConversation、showFAQs、showSingleFAQ、showFAQSection)のいずれかを呼び出す際にこのデータをconfigMapオブジェクトに渡すことで、カスタムメタデータを添付することができます。
例:
HashMap<String, String> customMetadata = new HashMap<String, String();
customMetadata.put("usertype","paid");
customMetadata.put("level","7");
customMetadata.put("score","12345");
HashMap<String, Object> config = new HashMap<>();
config.put("customMetadata", customMetadata);
Helpshift.showConversation(MainActivity.this, config);
- メタデータは、文字列のキーと値のペアとしてのみ送信が可能となります。
- 一度customMetadataが設定されてしまうと、それをリセットするにはSDK XのAPIを空のマップを用いて呼び出さなければいけなくなります。
HashMap<String, String> customMetadata = new HashMap<String, String();
HashMap<String, Object> config = new HashMap<>();
config.put("customMetadata", customMetadata);
Helpshift.showConversation(MainActivity.this, config);
カスタム問題フィールドを会話に添付する
カスタム問題フィールドは、ユーザーが開始したすべての新しい会話に添付することができます。カスタム問題フィールドには、キー、データ型、値の設定が必要となります。Helpshift SDKでは、API構成マップでcifsキーを使用することでカスタム問題フィールドを追加することができます。
これらのカスタム問題フィールドは、エンドユーザーが新しい会話を開始したり、スマートFAQを介して問題を作成するたびに送信されます。
エンドユーザーが会話画面を開くと、すぐに挨拶メッセージが表示され、会話がアクティブなものとしてみなされるようになります。変更されたすべてのカスタム問題フィールド(アクティブな会話の中で更新されたもの)は、エンドユーザーが次に開始する会話でのみ送信されます。
問題の作成時にカスタム問題フィールドを設定する場合には、以下の手順に従ってください。
- トップレベルのカスタム問題フィールド
Mapを初期化します。 - カスタム問題フィールドごとに、カスタム問題フィールド
Mapを定義します。 - カスタム問題フィールドマップに、そのカスタム問題フィールドの
"type"と"value"を追加します。 - カスタム問題フィールドマップをトップレベルのマップに追加します(keyに構成したキーを、valueにカスタム問題フィールドマップを設定します)。
- マップを
Helpshift.showConversation(this, configMap)のキー"cifs"とともにconfigMapに渡します。
Map<String, Object> joiningDate = new HashMap<>();
joiningDate.put("type", "date");
joiningDate.put("value", 1505927361535L);
Map<String, String> stockLevel = new HashMap<>();
stockLevel.put("type", "number");
stockLevel.put("value", "1505");
Map<String, String> employeeName= new HashMap<>();
employeeName.put("type", "singleline");
employeeName.put("value", "Bugs helpshift");
Map<String, String> isPro = new HashMap<>();
isPro.put("type", "checkbox");
isPro.put("value", "true");
Map<String, Object> cifMap = new HashMap<>();
cifMap.put("joining_date", joiningDate);
cifMap.put("stock_level", stockLevel);
cifMap.put("employee_name", employeeName);
cifMap.put("is_pro", isPro);
Map<String, Object> config = new HashMap<>();
// other configs...
//..
config.put("cifs", cifMap);
Helpshift.showConversation(MainActivity.this, config);
構成に渡すことができるデータ型は、以下の通りです。
| データ型 | 値 | コメント |
|---|---|---|
| "singleline" | string | 文字数制限が255文字の単一行の文字列です |
| "multiline" | string | 文字数制限が100,000文字の複数行の文字列です |
| "number" | string | 数字を表す文字列です。例: "12345" |
| "dropdown" | string | ドロップダウンオプションは、ダッシュボードの特定のカスタム問題フィールドのために存在する必要があります。値は、そのドロップダウンのためにダッシュボードで指定された値のいずれかでなければいけません。 |
| "date" | long | ミリ秒単位のエポック時間です。例: 1505927361535 |
| "checkbox" | string | ブール値による文字列表現です。例: "true"または"false"。これは、ダッシュボードのチェックボックス型のカスタム問題フィールドに対応しています。 |
カスタム問題フィールドのキーと互換性について
- カスタム問題フィールドは、Helpshiftダッシュボード(「設定」、「カスタム問題フィールド」の順に移動します)で作成する必要があります。そうでない場合には、これらは無視されます。詳細については、こちらをご参照ください。
Breadcrumbs
Breadcrumbsは、イベントやエンドユーザーのアクションの追跡に使用されます。これは、お客様がHelpshiftのエージェントダッシュボードにあるすべての新しい会話と一緒に渡されるエンドユーザーのアクションに関するデバッグ情報を追加する際に役立ちます。 Breadcrumbsを残すには、leaveBreadCrumb APIを使用します—
例:
Helpshift.leaveBreadCrumb("Any breadcrumb string");
Breadcrumbsは、設定されているBreadcrumbsの制限内で収集されます。制限は、Helpshiftのエージェントダッシュボードにある「アプリの設定」のSDKの構成セクションで設定します。Breadcrumbsは、FIFOキューに集められます。Breadcrumbsを消去する場合には、clearBreadCrumbs APIを使用します—
例:
Helpshift.clearBreadCrumbs();
- SDK X v10.1.0以上に対応しています
leaveBreadcrumbAPIは、フォーマットされた文字列の受け渡しには対応していません。データの受け渡しについては、シンプルな文字列型のみが推奨されています。例:"{\"key\":\"value\"}"- JSON文字列、これには対応していません"key - value"- シンプルな文字列、これには対応しています
デバッグログ
Helpshiftのエージェントダッシュボードにあるエンドユーザーによって提出された新しい会話ごとに、追加のデバッグログを渡したい場合があるかもしれません。これについては、com.helpshift.HSDebugLogを使用することで実現可能です。
例:
HSDebugLog.d("TAG", "Any Debug log string");
デバッグログは、設定されているデバッグログの制限内で収集されます。制限は、Helpshiftのエージェントダッシュボードにある「アプリの設定」のSDKの構成セクションで設定します。デバッグログは、FIFOキューに集められます。
- SDK X v10.1.0以上に対応しています
HSDebugLogAPIは、フォーマットされた文字列の受け渡しには対応していません。データの受け渡しについては、シンプルな文字列型のみが推奨されています。例:"{\"key\":\"value\"}"- JSON文字列、これには対応していません"key - value"- シンプルな文字列、これには対応しています
グローバルユーザーデータの更新
このAPIは、新しいユーザーIDシステムとともに使用することを意図しています。ログインユーザーに関連するグローバル属性を更新するには、このAPIを使用してください。
Map<String, Object> masterAttributes = new HashMap<>();
// put appropriate master attribute key and its value
masterAttributes.put("<master-attribute-key>", "<master-attribute-value>");
Helpshift.updateMasterAttributes(masterAttributes);
グローバル属性は、以下のいずれかの型である必要があります。
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- マップ<String,String>
このAPIは、既存のHelpshiftデリゲートシステムを活用してエラーが発生した際にアプリに通知を行います。 このAPIでトリガーできるエラーイベントの詳細については、デリゲートページを参照してください。
属性マップに対応していないキーが含まれている場合、エラーイベントはデリゲートを通じて通知されます。 属性マップに対応内のキーが含まれていたとしても、対応していない型の値が含まれている場合にはそのエントリーは無視されます。
アプリ固有のユーザーデータの更新
このAPIは、新しいユーザーIDシステムとともに使用することを意図しています。ログインユーザーに関連するアプリ固有の属性を更新するには、このAPIを使用してください。
Map<String, Object> appAttributes = new HashMap<>();
// put appropriate app attribute key and its value
appAttributes.put("<app-attribute-key>", "<app-attribute-value>");
Helpshift.updateAppAttributes(appAttributes);
アプリ固有の属性は、以下のいずれかの型である必要があります。
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からログアウトした場合、属性の更新状況が失われてしまう可能性があります。