Pendoのモバイルページのタグ付けでは、テキストの内容がロケール間で変化しても、アプリ内の画面を認識するために言語に依存しない識別子を使用します。
概要
言語に依存しない識別子を使用すると、Pendoは、表示テキストではなく、開発者が割り当てたアクセシビリティ識別子やテストタグを使ってモバイルアプリの画面を認識できるため、アプリがローカライズされていてもページタグの精度を維持できます。
Pendoは、目に見えるテキスト文字列に頼るのではなく、開発者がコード内で設定したアクセシビリティ識別子(iOS)とview/test/Pendoタグ(Android)を取得します。これらの値は、ユーザーがデバイスで選択した言語にかかわらず、一貫しています。
これを使用するのに適したケース
言語に依存しない識別子は、モバイルアプリが次のような場合に役立ちます。
- 複数の言語にローカライズされている
- 訪問者がデバイスの言語を切り替えた際に、ページタグの照合に失敗したことがある
仕組み
Pendoは、画面に表示されるテキストのハッシュ値を照合して、モバイルページを識別します。ボタンに英語で「Submit」と表示され、フランス語で「Soumettre」と表示されている場合、テキストベースのマッチングでは同じページが2つの別々のページとして扱われます。
Pendoは、アプリのビュー階層から開発者が割り当てた識別子も取得し、ページのマッチングに使用します。これらの識別子は表示テキストから導出されるのではなく、コードで設定されるため、どの言語でも同じままです。Pendoが要素上で言語に依存しない識別子を見つけた場合、その識別子はテキストベースのマッチングより優先されます。識別子が見つからない場合、Pendoはテキストベースのマッチングにフォールバックします。
注:この機能を使用するには、ページまたはフィーチャーを再タグ付けし、関連する言語に依存しない識別子を追加する必要があります。
プラットフォームのサポート
言語非依存の識別子は、ネイティブiOS(UIKitおよびSwiftUI)、ネイティブAndroid(XMLおよびJetpack Compose)、React Native、MAUI、Compose Multiplatform(CMP)/Kotlin Multiplatform(KMP)でサポートされています。Flutterはこの機能がなくてもすでに複数の言語をサポートしているため、含まれていません。
iOS
Pendoは、UIKitおよびSwiftUIのビューに設定されたaccessibilityIdentifierプロパティを収集します。以下はその例です。
myButton.accessibilityIdentifier = "submit_button"accessibilityIdentifierの値を収集するために、追加のSDK設定は必要ありません。
Android
Pendoは、XMLレイアウトおよびJetpack Compose要素に設定されたviewTagとtestTagのプロパティを取得します。以下はその例です。
android:tag="submit_button"Modifier.testTag("submit_button")要素に複数の識別子がある場合、PendoはPendoタグ、testタグ、viewタグの順に優先します。Pendoタグの詳細については、モバイルでのフィーチャーのタグ付けの詳細設定を参照してください。
SDK要件
| プラットフォーム(Platform) | 最小SDKバージョン |
| iOS | 3.12.0 |
| Android | 3.12.0 |
Pendoで確認できること
ページのタグ付けUIでは、Pendoは、タグ付けされたページルールが言語に依存しない識別子に基づいているのか、言語に依存する(テキストベースの)識別子に基づいているのかを表示します。このインジケーターを使用して、ページタグの安定性を把握し、開発者が割り当てた識別子を利用するとよいページを確認できます。
言語間で識別子を統一する
重要:accessibilityIdentifier、viewTag、testTag、Pendoタグなど、言語に依存しない識別子の値は、アプリがサポートするすべての言語で同一にしてください。言語間で値が異なると、Pendoはその値を使用してページを確実に照合できなくなります。
下位互換性
既存のページタグとルールは、変更を加えることなく引き続き機能します。言語に依存しない識別子は、既存のテキストベースの照合に代わるものではなく、それに加えて使用され、利用可能な場合にのみ優先されます。
よくある質問
アプリ内のすべての要素に識別子を追加する必要がありますか?
いいえ。Pendoは、ビュー階層内にすでに存在している識別子を収集します。タグ付けしたい要素、特に複数の言語に翻訳されている要素にのみ識別子を追加してください。テキストベースのマッチングがすでに確実に機能している要素については、変更する必要はありません。
画面上の同じ要素に、言語に依存しない識別子とテキストの両方がある場合、どうなりますか?
テキスト、言語に依存しない識別子、またはその両方を使用して、カスタム識別子を作成できます。Pendoは検出したすべての識別子を表示するため、使用する識別子を選択できます。
testTagまたはaccessibilityIdentifierの値を追加すると、アプリの動作に影響しますか?
いいえ。Jetpack ComposeのtestTagとiOSのaccessibilityIdentifierは、自動テストやアクセシビリティで広く使用されている標準的な開発者向け属性です。追加しても、アプリのUIや機能に目に見える影響はありません。
Pendoのタグをすでに使用しています。何か変化はありますか?
いいえ。Pendoタグは以前とまったく同じように引き続き機能します。Pendoタグに加えて、testタグとviewタグもページマッチングに使用されます。