プロアクティブエンゲージメント
プロアクティブエンゲージメント機能では、プレイヤーのモバイルデバイスにプッシュ通知やアプリ内通知を送信して連絡を取ったり、会話を開始したりするなどの様々な方法でエンゲージメントを図れるようになります。
この機能はSDK X 10.5.0以降で利用可能です。
SDKに含まれているすべてのパブリックAPIは、Helpshift installWithPlatformId APIを介してSDKを初期化した後に呼び出す必要があります
プロアクティブエンゲージメントを開始する前に、Helpshift SDKとプッシュ通知を統合していることを確認してください。統合ガイドについては、通知ページを参照してください。
プロアクティブエンゲージメント通知の設定
通知を送信するには、以下の手順に従ってください:
- Helpshiftダッシュボードを開き、「設定」、「ワークフロー」、「プロアクティブエンゲージメント」の順に移動します
- プッシュ通知またはアプリ内通知を使用して、対象のアプリに通知を作成します

- 利用可能なオプションから望むアクションを選択し、通知内容を入力し、必要に応じてコンテキストを追加します。
- ここで設定されたインテント/CIF/タグ/初期メッセージなどは、エンドユーザーが通知をクリックして会話を開始する際に使用されます。

- 対象にしたいオーディエンスのフィルタを設定します。以下の条件でオーディエンスを絞り込みできます:
- 問題プロパティ
- ユーザーハブ統合を使用したユーザープロパティ

- 通知のスケジュールを設定します。通知を送信する前に、設定全体を確認する機会があります。

プッシュ通知

- プッシュ型通知はデバイスの通知センターに表示されます。このタイプの通知は、アクティブでなかったユーザーを再度エンゲージさせたい場合や、興味深いコンテンツでユーザーの注目を集めたい場合に使用します。
- 通知をクリックすると利用可能なさまざまなアクションにより、ディープリンク(クライアントアプリケーションによって設定する必要あり)を介してユーザーをアプリケーションの任意の部分にリダイレクトしたり、「チャットを開始」オプションを介して会話を開始したり、FAQにリダイレクトして迅速なヘルプを提供したりすることができます。
- アプリがバックグラウンドで実行されていなくても、プッシュ通知は表示されます。
- iOSのプッシュ通知ではボタンをサポートしていません。
- 通知内容はリッチテキストに対応していません。
アプリ内通知

- アプリ内通知は、すでにアプリケーションを使用していて、アプリケーションのUIを開いているユーザーの注意を引き、リアルタイムでそのユーザーに警告を発したり、エンゲージさせるために使用されます。
- ユーザーがアプリケーションのUIを開いていない場合、通知はデバイスの通知トレイに表示され、ユーザーにエンゲージを促します。
- ユーザーが通知をクリックすると、アプリが開き、実際に設定されたアプリ内通知が表示されます。これにより、ユーザーのエンゲージメントの確率が高まり、私たちの目標をより達成しやすくなります。
- 現在、プッシュ通知に似たクリックアクションのバナー型通知をサポートしています。
- アプリがバックグラウンドにあるときにSDKが複数のアプリ内通知を受信した場合、システムはそれらのすべてを表示します。通知をクリックすると、アプリが開き、SDKはクリックされた通知に対応するアプリ内通知を表示します。その他の通知はそのまま通知センターに残ります。
- デフォルトでは、アプリ内通知の有効期限はデバイスへの配信から2日間です。ユーザーがすでに期限切れの通知をクリックした場合、クリックしても何もアクションは実行されません。
アプリ内通知の一時停止
アプリ内サポート通知を一時停止する既存の API - pauseDisplayOfInAppNotification - は、プロアクティブエンゲージメント通知にも影響します。このAPIは、アプリケーションがフォアグラウンドのときに、エンドユーザーへのアプリ内通知の表示を一時停止/解除します。
このAPIを使用すると、ユーザーを邪魔すべきでないとわかっている時に、アプリ内通知を一時停止できます。例えば、ユーザーがアプリの起動画面である、アプリがまだロード中である、ユーザーがゲームプレイ中である、または決済画面であるなどです。このような場合、Helpshift SDKからアプリ内通知を一時停止し、ユーザーが終了したら同じAPI経由で一時停止を解除できます。
通知が一時停止されているときに受信したアプリ内通知は失われず、一時停止が解除されるとすぐにユーザーに表示されます。
SDKはセッションをまたいで値を保持しないため、このAPIはアプリのセッションごとに呼び出す必要があります。アプリ内通知を一時停止/一時停止解除する必要性はリアルタイムであり、クライアントアプリケーション自身が最もよく知っている現在のアプリケーション状態に依存するため、SDKがアプリセッションをまたいで値を保持することはありません。
デフォルトでは、このAPIを使用してクライアントアプリによって明示的に一時停止されない限り、SDKは常にアプリ内通知を表示します。
フォールバック構成の使用
プロアクティブ通知の操作を行う際、アプリ内の現在のユーザーに固有の設定を追加したい場合があります。この構成は、通知を設定する際にダッシュボードから構成が提供されない場合に使用されます。構成データは、showConversationWithConfig:やshowFAQsWithConfig:のような他のAPIで期待されるものとまったく同じです。
この構成は、同じセッションで提出された次の問題にも使用されます。例えば、ユーザーがプロアクティブエンゲージメント通知によって会話を開始し、その会話が同じセッションで解決され、ユーザーが別の会話を開始した場合、この構成は新しい会話に使用されます。
パブリックプロトコルHelpshiftProactiveAPIConfigCollectorDelegateを実装し、setProactiveAPIConfigCollectorDelegate:メソッドを呼び出して構成コレクターを初期化します。showConversationWithConfig:やshowFAQsWithConfig:のようなその他のパブリックAPIで追加する場合と同じフォーマットで、ユーザー固有の構成を追加するためのメソッドgetAPIConfigを実装する必要があります。getAPIConfigは、通知クリックアクションを処理し、通知を処理するために使用される構成を評価する前に、SDKによって呼び出されます。
例: 以下のコードは、HelpshiftProactiveAPIConfigCollectorDelegateプロトコルを実装する方法と、getAPIConfigメソッドを使用してユーザー固有の構成を追加する方法を示しています。
- Objective-C
- Swift
// Set proactiveConfig collector delegate
[Helpshift.sharedInstance setProactiveAPIConfigCollectorDelegate:self];
// Delegate callback
- (nonnull NSDictionary *) getAPIConfig {
NSDictionary *config = @{ @"tags": tagsArray,
@"cifs": cifDictionary };
...
return config;
}
// Set proactiveConfig collector delegate
Helpshift.sharedInstance.setProactiveAPIConfigCollectorDelegate(self)
// Delegate callback
func getAPIConfig() -> Dictionary<String, Any> {
var config: [String: Any] = [
"tags": tagsArray,
"cifs": cifDictionary
]
...
return config
}
- このAPIは、
installAPIよりも後、そしてhandleBackgroundNotificationClick:withCompletionHandler:よりも前に呼び出す必要があります。 - "customIssueFields"キーの使用は非推奨になりました。カスタム問題フィールドを渡す方法として、"cifs"キーの使用を強く推奨します。