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

SDKの構成

Helpshiftには、SDKの動作をカスタマイズするための構成オプションがいくつか用意されています。これらのオプションは、Helpshift APIと組み合わせて使用します。

注意

SDKに含まれているすべてのパブリックAPIは、Helpshift installWithPlatformId APIを介してSDKを初期化した後に呼び出す必要があります

ロギングを有効にする

enableLoggingYESに設定すると、Helpshift SDKのログがXcodeのコンソールに生成されます。これらのログは、統合中にSDKをデバッグする場合に役立ちます。ロギングの有効化は、開発者が統合に関する一般的な問題を解決する際に役立ちます。

オプション:enableLogging
値:YES/NO
デフォルト:NO
最低限必要なSDKバージョンv10.0.0
対応:installWithPlatformId:domain:config:
注意
  • 10.4.0以降、
  • エラーログはenableLoggingの構成に関わらず常に記録されます。

例:

NSDictionary *config = @{ @"enableLogging":@YES };

[Helpshift installWithPlatformId:@"<PLATFORM_ID>"
domain:@"<DOMAIN>"
config:config];

タグによるFAQのフィルタリング

タグによるFAQのフィルタリングが可能です。 エンドユーザーが、たとえばユーザー属性やデバイスプロファイルに基づいて絞り込みをするなど、関連コンテンツを表示できるようにすることを目的として、開発者がこのFAQのフィルタリング機能を選択して適切な利用者に対して絞り込みが行われたFAQのリストを表示できるようになりました。

FAQのフィルタリングを使用する典型的なケースについては、以下の通りです。

  • 特定の対象に向けて特定のFAQを表示する場合。例: ビジネスロジックに基づいてユーザーを「初心者」、「中級者」、「上級者」に分類する。
  • デバイスの種類に基づいて特定のFAQを表示する場合。例: iPad向けとiPhone向けにFAQのセットを切り替える。

FAQのフィルタリングの手順には、2段階のアプローチが用意されています。

  1. FAQは、ダッシュボードの<issue tags>フィールド(例: タグiphoneやタグipadなど)を使用して分類する必要があります。
  2. FAQへのタグ付けが完了すると、本項で説明されているフィルタリングオプションを使用して、SDKでフィルタリングができるようになります。
注意

Helpshiftでは、主に「問題タグ」と「検索タグ」の2種類のタグが用意されています。

  • 問題タグは、SDKのFAQのリストをフィルタリングルールでフィルタリングするために使用されます。
  • 検索タグ(検索キーワードとも呼ばれています) アプリ内検索を実行する場合、Helpshift SDKはこれらのキーワードを優先します。また、FAQのタイトルや内容には含まれていないものの、ユーザーが検索する可能性のある代替のキーワードを追加するためにこれを使用することもできます。

FAQのフィルタリングの使用方法

このオプションはshowFAQs APIおよびshowFAQSection APIが対応する設定オプションです。

filterオプションは、以下の2つのキーを含む辞書です。

  • 演算子: ANDORNOTのいずれか1つであり、設定されているタグの条件演算子として機能します。
  • タグ: クエリ内の実際のタグです。

filterオプションは、showFAQs API、showFAQSection API、showSingleFAQ APIで使用される辞書configの"filter"キーに対するオブジェクトとして追加されます。

オプション:filter
サブオプション:tags/operator
デフォルトnil
最低限必要なSDKバージョンv10.0.0
対応showFAQsshowFAQSectionshowSingleFAQ

例:

NSDictionary *config = @{ @"filter": @{ @"tags": @[@"game", @"paid"], @"operator": @"AND"} };
[Helpshift showFAQs:self config:config];
注意

showFAQs、showFAQSection、showSingleFAQで使用されるタグのフィルタリング設定は1つのみです。また、タグのフィルタリングでは1つの演算子のみが遵守されます。

お問い合わせを有効にする

ユーザーがFAQを表示しているときに、Helpshiftの「お問い合わせ」ボタンを表示するかどうかを制御します。このオプションをカスタマイズすることにより、サポートへのお問い合わせをより簡単にしたり、難しくしたりすることができます。指定した場合、この設定は管理者ダッシュボードで設定したお問い合わせを有効にするの値よりも優先されます。

オプションenableContactUs
"ALWAYS"/"AFTER_VIEWING_FAQS"/"AFTER_MARKING_ANSWER_UNHELPFUL"/"NEVER"
デフォルトnil
最低限必要なSDKバージョンv10.0.0
対応showFAQsshowFAQSectionshowSingleFAQ

例:

NSDictionary *config = @{ @"enableContactUs": @"AFTER_VIEWING_FAQS" };
[Helpshift showFAQs:self config:config];

ベストプラクティス

  • 有料ユーザーに対してはenableContactUsをALWAYSに設定し、無料ユーザーに対してはAFTER_VIEWING_FAQSに設定することにより、階層ベースのサポートを提供することができます。
  • 自国内のユーザーに対してはenableContactUsをALWAYSに設定し、海外のユーザーに対してはAFTER_VIEWING_FAQSに設定することにより、国ベースのサポートを提供することができます。サンプルコード:
CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netinfo subscriberCellularProvider];
NSString *enableContactUsValue = @"AFTER_VIEWING_FAQS";
if([[carrier mobileCountryCode] isEqualToString:@"<LOCAL_COUNTRY_CODE>"]) {
enableContactUsValue = @"ALWAYS";
}
NSDictionary *config = @{ @"enableContactUs": enableContactUsValue };[Helpshift showFAQs:self config:config];

フルプライバシー

フルプライバシーオプションは、以下の方法によってCOPPAへの準拠を保証します。

  1. ユーザーによるスクリーンショット撮影の無効化(SDKを使用した画像を含むファイルの添付ができなくなります)。
  2. SDKによる名前や電子メールなどを含む個人を特定できる情報(PII)の収集の停止(アイデンティティボットおよび/またはhelpshiftConfigオブジェクトを使用)。つまり、userNameuserEmailを設定し、fullPrivacytrueに設定している場合、HelpshiftはuserNameuserEmailの値を使用しません。
  3. 以下の個人情報の非収集。
    • 携帯電話の国コード、携帯電話のネットワークコード、キャリア名。
    • "private-data"としてラベル付けされているカスタムメタデータ。

また、ユーザーが不快なコンテンツを添付するシナリオにおいては、これはCOPPAに準拠する上で大きな問題となります。このオプションは、この問題を解決しなければならない場合に役立ちます。

オプションfullPrivacy
YES/NO
デフォルトNO
最低限必要なSDKバージョンv10.0.0
対応showConversationshowFAQs

例:

NSDictionary *config = @{ @"fullPrivacy": @YES };
[Helpshift showConversationWith:self config:config];

ベストプラクティス

登録プロセスで、ユーザーに年齢を尋ねましょう。ユーザーの年齢が13歳以下の場合には、fullPrivacyをYESに設定します。こうすることで、13歳以下のユーザーについてはCOPPAに準拠しつつ、その他のユーザーに対しては貴重なユーザーデータやデバイスデータを収集できるようになります。

アプリ内通知を有効にする

Helpshift SDKが提供するアプリ内通知サポートが不要な場合には、このフラグをNOに設定することができます。

このフラグをNOに設定するとSDKはデバイスの通知トレイに通知を表示しなくなりますが、バックグラウンドでメッセージを取得します。

このフラグの規定値はYESです。そのため、アプリ内通知は有効化されます。

オプション:enableInAppNotification
値:YES/NO
デフォルト:YES
最低限必要なSDKバージョンv10.0.0
対応:installWithPlatformId:domain:config:

例:

NSDictionary *config = @{ @"enableInAppNotification": @YES };

[Helpshift installWithPlatformId:@"<PLATFORM_ID>"
domain:@"<DOMAIN>"
config:config];

アプリ内通知の外観

この構成は、SDKのアプリ内通知の外観を示しています。エージェント/ボットがメッセージを送信したときにユーザーがアプリを使用していた場合、アプリ内バナーが表示されます。そのバナーの外観は、この辞書を使用してカスタマイズできます

オプション:inAppNotificationAppearance
サブオプション:bannerBackgroundColor/textColor
最低限必要なSDKバージョンv10.0.0
対応:installWithPlatformId:domain:config:

例:

NSDictionary *config = @{ @"inAppNotificationAppearance": @{
@"bannerBackgroundColor": @"000000",
@"textColor": @"FFFFFF"
}
};

[Helpshift installWithPlatformId:@"<PLATFORM_ID>"
domain:@"<DOMAIN>"
config:config];

チャット画面の読み込み中に新しい会話を開始する

showConversation:の構成辞書でinitiateChatOnLoadオプションをYESに設定すると、エンドユーザーが「新しい会話」ボタンをクリックしたり、前の問題のフィードバックボットのような解決後のフローを経由することなく、前の問題が解決した直後に新しい会話を開始できるようになります。

オプション:initiateChatOnLoad
値:YES/NO
デフォルト:NO
最低限必要なSDKバージョンv10.0.0
対応:showConversation

例:

NSDictionary *config = @{ @"initiateChatOnLoad": @YES };
[Helpshift showConversationWith:self config:config];

会話のプリフィルテキスト

Setting conversationPrefillText in the config allows you to set some text in the user's input box. This text will be inserted provided that:

  • There is no ongoing (active) issue for the user.
  • Text inputs are enabled for new conversations (e.g. the User Reply Input Type is not "Only Intent Menu").
Note

The end-user can edit this text before sending it. There is a limit of 1,000 characters for this configuration value, so only the first 1,000 characters will be kept in the user input.

We recommend keeping your actual text even shorter for a better user experience, since the user has to read and edit it before sending it.

オプション:conversationPrefillText
値:任意の文字列値
デフォルト:""
最低限必要なSDKバージョンv10.0.0
対応:showConversation

例:

NSDictionary *config = @{ @"conversationPrefillText": @"INSERT YOUR PREFILL TEXT" };
[Helpshift showConversationWith:self config:config];

会話の最初のユーザーメッセージ

Initial user message configuration, initialUserMessage, helps you send the first message in a conversation on behalf of the user so that certain workflows are automatically triggered based on that message.

You should set this configuration before a conversation starts. In other words, it works only when there is no active conversation for the user i.e. when a new user opens the chat screen for the first time or existing user has already closed an ongoing conversation.

Note

If you set this configuration in the middle of an existing conversation, it will not have any effect.

オプション:initialUserMessage
値:任意の文字列値
デフォルト:""
最低限必要なSDKバージョンv10.0.0
対応:showConversationshowFAQs

例:

NSDictionary *config = @{ @"initialUserMessage": @"INSERT YOUR INITIAL USER MESSAGE" };
[Helpshift showConversationWith:self config:config];

最初のユーザーメッセージのクリア

If the end user starts a new conversation immediately in the same session, then, by default, the initial user message is applied to all subsequent issues in the same session. You can change this behaviour by setting the initialUserMessage key in subsequentIssuesInSameSessionConfig to an appropriate value.

You can set the initial user message to an empty string, which will clear it and allow the end-user to type a message for their subsequent issues. Alternatively, you can also supply a non-empty string which will be used for all subsequent issues in the same session.

We recommend setting this value to an empty string unless you want to run specific automation flows for subsequent issues in the same session.

Note

Currently, only the initial user message can be reset. Tags, Custom Issue Fields, and Conversation Prefill Text values stay the same for subsequent issues in the same session.

例:

NSDictionary *config = @{
@"initialUserMessage": @"INSERT YOUR INITIAL USER MESSAGE",
@"subsequentIssuesInSameSessionConfig": @{
@"initialUserMessage": @""
}
};

[Helpshift showConversationWithConfig:config];

iPadでの全画面表示

presentFullScreenOniPadフラグは、iPadでサポートビューをUIModalPresentationFullScreenUIModalPresentationFormSheetのどちらのモーダルプレゼンテーションスタイルで表示するかを決定します。この構成は、iPhoneには影響を与えません。

デフォルトの値はNOで、UIModalPresentationFormSheetでサポートビューを表示します。値がYESに設定されている場合、サポートビューはUIModalPresentationFullScreenで表示されます。Helpshiftを全画面モードで表示するには、この設定を使用します。

オプションpresentFullScreenOniPad
YES/NO
デフォルトNO
最低限必要なSDKバージョンv10.0.0
対応showConversationshowFAQs

例:

NSDictionary *config = @{ @"presentFullScreenOniPad": @YES };
[Helpshift showConversationWith:self config:config];

SDKのテーマ設定

SDKにスタイルやテーマを設定するには、デザインページをご参照ください。

トラッキング

この構成は、ユーザーの操作のトラッキングを示しています。詳細については、トラッキングをご参照ください。