# モバイルIn-App SDKのトラブルシューティング

iOSまたはAndroidのEngage Mobile SDKを連携・デバッグしている場合に使用します。オーディエンス、Launch、キャンペーンターゲティングの問題については、[キャンペーンのトラブルシューティング](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/campaign-troubleshooting)を参照してください。

Beta
ネイティブSDKの動作、エラーの詳細、トラブルシューティング手順はプレビュー契約の一部であり、一般提供前に変更される場合があります。

## SDKのセットアップに失敗する

次を確認してください。

1. Engage APIを呼び出す前にCore SDKを初期化すること
2. iOSではCore SDK初期化後に`TDEngage.install()`を呼び出すこと。AndroidではモバイルIn-Appのレンダリングが`td-android-sdk`に内包されており、インストール手順は不要です
3. Personalizationエンドポイントとトークンを設定すること
4. トリガーリクエストに使用するデータベースとテーブルを設定すること
5. プレビューアーティファクトがプラットフォームとリリース別の導入手順に一致していること


必要な値と初期化例については、[モバイルIn-Appキャンペーンをセットアップする](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/setup-and-prerequisites)と[Engage Mobile SDK APIとイベントリファレンス](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/sdk-reference)を参照してください。

## Hosted Pages URLを読み込めない

HTTPS URLであること、デバイスから到達できること、WebViewが提供できない認証情報を必要としていないことを確認してください。リダイレクト、ホストされたアセット、レスポンシブなviewportも確認します。

デバイスログでネットワーク、証明書、WebViewのエラーを確認してください。キャンペーン経路とは別にURLをテストし、ホスティングの問題とPersonalizationまたはSDKの問題を切り分けます。

## Hosted Pagesページを閉じられない

ホストされたページに閉じる、戻る、完了などの操作を追加してください。Hosted PagesにはModalやBannerの閉じるボタン設定は適用されません。

終了操作がないページは、SDKが管理するフルスクリーンWebViewを開いたままにする場合があります。

## `window.TDContext`が空になる

メッセージ表示前に`profileContext`を設定し、すべての値がJSON化可能であることを確認してください。サインイン中のユーザーが変わったら、古いコンテキストをクリアまたは置き換えます。

APIキー、Personalization token、パスワード、不要な個人データをコンテキストに含めないでください。

## リンク先が想定と異なる

URLがアプリ所有のCustom Schemeか、SDKが処理するWeb URLかを確認してください。アプリが所有するルートは遷移前に検証します。カスタムアクションとDeep Linkはアプリで認可してください。

iOSでは`linkHandler`、Androidでは`TreasureData.setLinkHandler`を確認します。

## カスタムアクションがアプリに届かない

Bridge Delegateが設定され、そのオブジェクトが存続していることを確認してください。アプリ固有の処理を実行する前に、アクション名、ログイン状態、権限、すべてのパラメーターを検証します。

SDKはアプリ固有のアクションを代わりに認可しません。

## Pushトークンが登録されない

アプリがトークンを取得して`registerDeviceToken`を呼び出します。SDKは通知権限を要求したり、トークンを自動検出したりしません。

Androidでは、空でないFCMトークンを受け取り、`TDPushProvider.FCM`と有効なテーブル名を渡していることを確認してください。iOSでは、APNsトークンをAPNs Providerとともに渡していることを確認します。

Pushの受信、通知表示、通知タップの処理は引き続きアプリが担当します。

## キャンペーン計測が記録されない

メッセージがキャンペーンオファーとして返され、SDKが表示したことを確認してください。アプリから直接`openUrl`を呼び出した場合はキャンペーンIDがないため、キャンペーン計測イベントは作成されません。

次も確認してください。

- インストール単位の関連付けが必要な場合、トリガー前に`enableAutoAppendUniqId()`を有効にしていること
- `disableCustomEvent()`で計測に使用するCore SDK経路を無効にしていないこと
- 別のメッセージが表示中でないこと
- ホスト側の画面状態ゲートが表示を拒否していないこと


イベントフィールドと送信先については、[モバイルIn-Appの計測](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/measurement)を参照してください。

## 関連ドキュメント

- [モバイルIn-Appのトラブルシューティング](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/troubleshooting)
- [キャンペーンのトラブルシューティング](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/campaign-troubleshooting)
- [モバイルIn-Appの計測](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/measurement)
- [Engage Mobile SDK APIとイベントリファレンス](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/sdk-reference)
- [iOS SDK連携](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/developer-guide-ios)
- [Android SDK連携](/ja/products/marketing-cloud/engage-studio/channels/mobile-inapp/developer-guide-android)
- [Mobile Pushのデバイストークン登録](/products/marketing-cloud/engage-studio/channels/mobile-push/device-token-registration)