プッシュ通知は、顧客が外出中にサポートチームと顧客をつなぐ架け橋です。誰かが携帯電話からサポートリクエストを送信した場合、応答があったときにすぐに知りたいと思うはずです。アプリを確認することを思い出したときではありません。メールに切り替えた後でもありません。まさにその時です。
ZendeskモバイルSDKのプッシュ通知の設定は複雑ではありませんが、正確さが求められます。証明書の設定ミス、Firebaseでの手順の抜け、顧客はメッセージが消えてしまったのではないかと不安に思うことでしょう。
このガイドでは、iOSとAndroidの両方でプッシュ通知を機能させるために必要なすべての手順を説明します。Zendesk Messaging SDK(現在推奨されているアプローチ)、レガシーコードを維持している場合は古いChat SDK、および期待どおりに動作しない場合の対処法について説明します。
すでにZendeskを使用しているチームには、検討する価値のあるより簡単な方法もあります。eesel AIでは、既存のZendesk設定と直接統合し、モバイルSDKの複雑さを伴わずに顧客との会話を処理します。詳細については後述します。
ZendeskモバイルSDKプッシュ通知とは?
Zendeskモバイルエコシステムにおけるプッシュ通知は、エージェントがサポートリクエストに応答したときに顧客のデバイスに送信されるアラートです。プッシュ通知がないと、顧客は手動でアプリを開いて返信を確認する必要があります。プッシュ通知があれば、会話は自然に進みます。
ZendeskモバイルSDKは、主に次の2つのプラットフォームでプッシュ通知をサポートしています。
- iOS: SSL証明書を使用したApple Push Notification service (APNs)を使用
- Android: サーバーキーを使用したFirebase Cloud Messaging (FCM)を使用
また、3つの異なるSDKがあり、それぞれアプローチがわずかに異なります。
| SDK | ユースケース | プッシュ方法 |
|---|---|---|
| Zendesk Messaging SDK | 最新の統合メッセージング | 組み込みのAPNs/FCM |
| Zendesk Chat SDK v2 | レガシーチャットの実装 | Chatダッシュボード経由のAPNs/FCM |
| Zendesk Support SDK | チケットベースのサポート | Webhook APIまたはUrban Airship |
新たに始める場合は、Messaging SDKを使用してください。これは現在の標準であり、古いオプションの複雑さを伴わずにほとんどのユースケースを処理します。
プッシュ通知の設定の前提条件
構成に入る前に、次のものがあることを確認してください。
- Messagingが有効になっているZendeskアカウント
- Zendesk管理センターへの管理者アクセス
- iOSの場合:Apple Developerアカウント(年間99ドル)
- Androidの場合:Firebaseプロジェクト(無料枠で動作)
- Zendesk SDKがすでに統合されているモバイルアプリ
テスト用の物理デバイスも必要になります。プッシュ通知はiOSシミュレーターでは動作せず、Androidエミュレーターはこれには信頼性が低い場合があります。
iOSのプッシュ通知の設定
iOSプッシュ通知では、Apple Push Notification service (APNs)証明書を作成してアップロードする必要があります。手順は次のとおりです。
ステップ1:Apple Developer Portalで.p12証明書を作成する
Apple Developer Member Centerにログインし、証明書セクションに移動します。
- **+**ボタンをクリックして、新しい証明書を作成します。
- **Apple Push Notification service SSL (Sandbox & Production)**を選択します。
- ドロップダウンからアプリIDを選択します。
- キーチェーンアクセスを使用して証明書署名要求(CSR)を生成するためのAppleの手順に従います。
- CSRをアップロードして証明書を生成します。
- 証明書をダウンロードし、ダブルクリックしてキーチェーンアクセスで開きます。
- 証明書を右クリックし、「Apple Push Services: {your-app-id}」をエクスポートを選択します。
- .p12ファイルとして保存します(パスワードを設定するか、空白のままにすることができます)。
重要:ZendeskはSandbox専用の証明書をサポートしていません。本番環境が有効になっている証明書を使用する必要があります。
ステップ2:Zendesk管理センターに証明書をアップロードする
次に、その証明書をZendeskアカウントに追加します。
- Zendesk管理センターで、チャネルアイコンをクリックし、メッセージングをクリックします。
- iOSをクリックし、通知タブをクリックします。
- .p12ファイルをドラッグアンドドロップするか、クリックして参照します。
- 変更を保存をクリックします。
iOSメッセージングがまだ有効になっていない場合は、最初にチャネルを追加する必要があります(チャネル>メッセージング設定>チャネルの追加> iOS)。
ステップ3:Xcodeプロジェクトを構成する
Xcodeでプロジェクトを開き、必要な機能を追加します。
- プロジェクトターゲットを選択します。
- 署名と機能タブに移動します。
- +機能をクリックし、プッシュ通知を追加します。
- アプリの.entitlementsファイルを確認して、
APS Environmentキーが存在し、productionに設定されていることを確認します。
ステップ4:プッシュ通知コードを実装する
通知を登録し、アプリで処理するためのコードを追加します。
まず、AppDelegateで通知の承認を要求し、リモート通知を登録します。
import UserNotifications
import ZendeskSDKMessaging
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
registerForPushNotifications()
return true
}
private func registerForPushNotifications() {
let notificationCenter = UNUserNotificationCenter.current()
notificationCenter.delegate = self
notificationCenter.requestAuthorization(options: [.alert, .sound, .badge]) { allowed, _ in
guard allowed else { return }
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}
次に、デバイストークンの登録を処理します。
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
PushNotifications.updatePushNotificationToken(deviceToken)
}
最後に、通知センターデリゲートを実装して、受信通知を処理します。
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
let userInfo = notification.request.content.userInfo
let shouldBeDisplayed = PushNotifications.shouldBeDisplayed(userInfo)
switch shouldBeDisplayed {
case .messagingShouldDisplay:
if #available(iOS 14.0, *) {
completionHandler([.banner, .sound, .badge])
} else {
completionHandler([.alert, .sound, .badge])
}
case .messagingShouldNotDisplay:
completionHandler([])
case .notFromMessaging:
completionHandler([])
@unknown default:
break
}
}
Androidのプッシュ通知の設定
AndroidはFirebase Cloud Messaging (FCM)を使用しており、通常はiOS証明書管理よりも簡単です。
ステップ1:Firebase Cloud Messagingを設定する
まだ設定していない場合は、Firebaseプロジェクトを作成し、Androidアプリを追加します。
- Firebase Consoleに移動します。
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
- Androidアイコンをクリックしてアプリを追加します。
- パッケージ名を入力してアプリを登録します。
google-services.jsonファイルをダウンロードします。- ファイルをAndroid Studioプロジェクトのappフォルダーにコピーします。
Firebaseの依存関係をアプリレベルのbuild.gradleに追加します。
implementation platform("com.google.firebase:firebase-bom:{latest_version}")
implementation "com.google.firebase:firebase-messaging:{latest_version}"
同じファイルでGoogleサービスプラグインを適用します。
apply plugin: 'com.google.gms.google-services'
ステップ2:Firebase認証情報をZendeskに追加する
サービスアカウントキーを生成し、Zendeskにアップロードします。
- Firebase Consoleで、プロジェクト設定>サービスアカウントに移動します。
- 新しい秘密鍵の生成をクリックします。
- Zendesk管理センターで、チャネル>メッセージング> Androidに移動します。
- ダウンロードしたJSONファイルをアップロードします。
- 変更を保存をクリックします。
注:Googleは2024年6月にレガシーFCM APIを非推奨にしました。古い設定から移行する場合は、FCM v1 API形式を使用していることを確認してください。
ステップ3:アプリにFCMを実装する
プッシュトークンが利用可能になったら、Zendesk SDKに登録します。
メインアプリケーションコードまたはFirebaseMessagingServiceで:
import com.google.firebase.messaging.FirebaseMessaging
import zendesk.messaging.android.push.PushNotifications
// Retrieve the current FCM registration token
FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
if (task.isSuccessful) {
val token = task.result
PushNotifications.updatePushNotificationToken(token)
}
}
// Or in your FirebaseMessagingService:
override fun onNewToken(newToken: String) {
PushNotifications.updatePushNotificationToken(newToken)
}
通知を表示するには、SDKのデフォルトサービスを使用するか、自分で処理します。
// Using the default implementation (simplest)
// Add to AndroidManifest.xml:
<service android:name="zendesk.messaging.android.push.DefaultMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
カスタム処理の場合は、プッシュがZendeskに属しているかどうかを確認してから表示します。
override fun onMessageReceived(remoteMessage: RemoteMessage) {
val responsibility = PushNotifications.shouldBeDisplayed(remoteMessage.data)
when (responsibility) {
PushResponsibility.MESSAGING_SHOULD_DISPLAY -> {
PushNotifications.displayNotification(context = this, messageData = remoteMessage.data)
}
PushResponsibility.MESSAGING_SHOULD_NOT_DISPLAY -> {
// Zendesk push, but shouldn't display
}
PushResponsibility.NOT_FROM_MESSAGING -> {
// Handle your own pushes here
}
}
}
さまざまなZendesk SDKについて
古いアプリを維持している場合、またはオプションを評価している場合は、ZendeskのモバイルSDKの違いを理解する価値があります。
Zendesk Messaging SDK(現在)
Messaging SDKは、Zendeskの最新の統合プラットフォームです。チャット、メッセージング、サポートを単一のインターフェイスに統合します。
- チャネル全体の統一された会話履歴
- 組み込みのプッシュ通知サポート
- 最新のUIコンポーネント
- すべての新しい実装に推奨
Zendesk Chat SDK v2(レガシー)
Chat SDK v2は、ライブチャットシナリオ専用に設計されました。
- Chatダッシュボードで個別の構成が必要
- 異なるプッシュ通知設定プロセス
- まだサポートされていますが、新しいプロジェクトには推奨されません
Zendesk Support SDK
Support SDKは、リアルタイムチャットではなく、チケットベースのサポートに焦点を当てています。
- プッシュ通知にWebhook APIまたはUrban Airshipを使用
- バックエンド統合が必要なより複雑な設定
- リアルタイムチャットを必要としないアプリに最適
新しいプロジェクトを開始する場合は、Messaging SDKを使用してください。他のオプションは、主に既存の実装を維持しているチーム向けに存在します。
一般的な問題のトラブルシューティング
プッシュ通知には、複数の障害点があります。動作しない場合は、以下を確認してください。
プッシュ通知が表示されない
- iOS: .p12証明書に本番環境が含まれており、期限切れになっていないことを確認します。
- Android: Google Cloud ConsoleでFCM v1 APIが有効になっていることを確認します(レガシーAPIは2024年6月に非推奨になりました)。
- 両方:デバイストークンが実際にZendeskに登録されていることを確認します(ログを追加して確認します)。
通知が会話を開かない
ユーザーが通知をタップすると、関連する会話に移動する必要があります。そうでない場合は:
- iOSで
userNotificationCenter(didReceive:)を実装していることを確認します。 PushNotifications.handleTap()が呼び出されていることを確認します。- タップを処理する前にSDKが初期化されていることを確認します(アプリが強制終了された場合は機能しません)。
iOSサンドボックスと本番環境の混同
一般的な間違いは、本番環境ビルドでSandbox証明書を使用したり、その逆を行ったりすることです。Zendeskには本番環境証明書が必要です。本番環境で署名されたビルドで実際のデバイスでテストしてください。
デバイストークンの登録の失敗
トークンが登録されない場合:
- ネットワーク接続を確認します。
- デバイスが別のIDですでに登録されていないことを確認します。
- アプリが起動するたびに
updatePushNotificationToken()を呼び出していることを確認します(トークンは変更される可能性があります)。
モバイルサポートプッシュ通知のベストプラクティス
技術的な設定を正しく行うことは、戦いの半分にすぎません。プッシュ通知をどのように使用するかも重要です。
-
適切なタイミングで許可をリクエストする: 最初の起動時にすぐに通知の許可を求めないでください。ユーザーがサポート会話を開始するまで待ちます。
-
通知の外観をカスタマイズする: iOSとAndroidの両方で、アイコン、サウンド、バイブレーションパターンをカスタマイズできます。ブランドに合わせてください。
-
フォアグラウンド通知を処理する: デフォルトでは、アプリがフォアグラウンドにある場合、通知は表示されません。
willPresentNotificationを実装して表示するか、アプリ内インジケーターを提供します。 -
徹底的にテストする: シミュレーターではなく、実際のデバイスでテストします。アプリがフォアグラウンド、バックグラウンド、および完全に強制終了された場合にテストします。ネットワーク状態が悪い状態でテストします。
-
配信を監視する: Zendeskの分析を使用して、プッシュ配信率を追跡します。低い場合は、証明書または構成の問題を調査します。
よりシンプルな代替手段:モバイルサポート向けのeesel AI
プッシュ通知の設定は、モバイルサポートパズルのほんの一部にすぎません。会話に対応する人員を配置し、エージェントをトレーニングし、応答時間を維持する必要があります。
eesel AIでは、別のアプローチを提供しています。メッセージを人間のエージェントにルーティングするだけでなく、会話全体を処理する自律的なチームメイトとして機能します。

従来のZendeskモバイルSDKアプローチと比較した当社の機能は次のとおりです。
| 側面 | Zendesk SDK + 人間のエージェント | eesel AI統合 |
|---|---|---|
| 設定の複雑さ | 証明書、SDK統合、エージェントトレーニング | ワンクリックZendesk接続 |
| 応答時間 | エージェントの可用性に依存 | 瞬時、24時間365日 |
| 解決率 | チームによって異なる | 81%の自律的な解決平均 |
| モバイル通知 | 完全なSDK実装が必要 | 既存のZendeskモバイルアプリで動作 |
| コスト | エージェントごとのシート+インフラストラクチャ | インタラクションごとの価格設定 |
当社のZendesk統合を使用すると、既存のZendeskアカウントを接続し、過去のチケット、ヘルプセンターの記事、およびマクロから学習します。次に、最前線のサポートをZendeskで直接処理し、解決できないものだけをエスカレーションします。

すでにZendeskのモバイルSDKに投資しているチームの場合、当社はそれと並行して作業できます。ルーチンクエリを即座に処理し、人間のエージェントは複雑な問題に集中できます。顧客はZendeskモバイルアプリを通じてプッシュ通知を受信しますが、より迅速に回答を得られます。
当社の価格は、チームプランで月額299ドルから始まり、最大3つのボットと1,000回のインタラクションが含まれます。月額799ドルのビジネスプランでは、無制限のボット、過去のチケットトレーニング、およびEUデータレジデンシーが追加されます。
ZendeskモバイルSDKプッシュ通知の使用を開始する
プッシュ通知は、あらゆるモバイルサポートエクスペリエンスに不可欠です。プッシュ通知がないと、会話が停滞します。プッシュ通知があれば、顧客が期待する応答性の高いリアルタイムサポートを提供できます。
設定プロセスは簡単ですが、正確です。プラットフォームの手順に注意深く従い、実際のデバイスでテストし、最初にうまくいかない場合に備えてトラブルシューティングチェックリストを用意してください。
モバイルサポートの複雑さを完全に軽減したい場合は、eesel AIでZendeskの設定を拡張することを検討してください。当社が会話を処理するため、チームは人間が最も得意とすることに集中できます。
よくある質問
この記事を共有

Article by
Stevia Putri
Stevia Putri is a marketing generalist at eesel AI, where she helps turn powerful AI tools into stories that resonate. She’s driven by curiosity, clarity, and the human side of technology.



