開発者向けインストールガイド(Pendo Android SDK)

重要:この記事では、SDKを正常にインストールするために必要なAPIキーとスキームIDを含まないコード例を紹介しています。サブスクリプションのPendo管理者は、[サブスクリプション設定(Subscription Settings)]の[アプリの詳細(App Details)]または[アプリの詳細]の[インストール設定(Install Settings)]で、これらの一意のIDにアクセスできます。

概要

Pendoは、プロダクトの使用状況を把握し、ユーザーからのフィードバックを収集し、アプリ内でユーザーとコミュニケーションをとりながら、ユーザーに参加を促したり、ユーザーを教育したり価値あるものに導いたりすることができます。Pendoのタグ付けとガイドは完全にコードレスで、エンジニアリングリソースは不要です。ただし、SDKのインストールとアプリにおけるPendoの初期化にはエンジニアの力が必要です。Pendoと一般的なインストールプロセスに関する情報は、導入計画文書(Installation Planning article)に掲載されています。準備をすれば、Pendo SDKの技術的なインストールは簡単です。

Pendoを最初にインストールする際の技術的な部分はSDKだけです。SDKが正しくインストールされれば、誰でもPendoを使うことができます。SDKは、訪問者のアプリ内での行動を追跡し、ガイドを読み込み、セッションのメタデータをキャプチャします。トラックイベントなど、モバイル向けのPendoの使用を最適化および拡張するために、後から追加の開発を行うことができます。最新のPendoの機能を使用するには、新しいバージョンがリリースされた際に、モバイルアプリのSDKもアップデートする必要があります。

Pendoは、他の一般的なCRM、分析、およびコラボレーションツールとの統合を行っています。統合の範囲は、コードレスのインストールウィザードによるネイティブ統合から、カスタム開発まで多岐にわたりますが、この記事では説明しません。一般的な統合機能については、インテグレーション機能の記事をご覧ください。また、SDKのインストールが完了した後のサブスクリプションの統合機能については、担当者にお問い合わせください。

 

要件

  • モバイルSDK 2.10以降
  • compileSdkVersion 30
  • AndroidX minSdkVersion 21 以降
  • Android Support minSdkVersion 21以降
  • JavaVersion.VERSION_1_8
  • プロジェクトで旧バージョンのサポートライブラリを使用していない場合は、AndroidXを有効化(gradle.properties
  • アプリ権限の要件(AndroidManifest)
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

 

SDKをインストールする

SDKリポジトリと依存関係をアプリに追加します。アプリがすべてのバージョン要件を満たしていることを確認します。この作業が完了したら、Pendoを設定して初期化し、ユーザーの識別、データの収集、およびガイドの読み込みを行う必要があります。

1.Pendoリポジトリをbuild.gradeに追加します。

repositories {
  maven {
  url "https://software.mobile.pendo.io/artifactory/androidx-release"
// <For Android Support (not AndroidX) use the following instead>  url "https://software.mobile.pendo.io/artifactory/android-release"
  }
  mavenCentral()
}

 

2.Pendoの依存関係をbuild.gradleに追加します。

dependencies {
   implementation group:'sdk.pendo.io' , name:'pendoIO', version:'2.12.+', changing:true
}

 

Pendoの設定と初期化

SDKの初期化には、SDKのインポートと、訪問者が識別されたときのSDKの初期化という2つの要素があります。Pendo SDKは、アプリケーションがonCreateされる時にインポートされます。初期化コールは、現在の訪問者を識別してセッションを開始するすべてのアクティビティで発生する可能性があります。

ユーザーを識別し、データ収集を開始し、ガイドのコンテンツを表示するには、Pendoを初期化する必要があります。SDKは、訪問者が認証され、メタデータが既知であるか、匿名の訪問者である場合に初期化できます。初期化は、アプリケーションの起動時、後で訪問者が識別されたとき、または現在の訪問者を識別して新しいセッションを開始する必要があるときに実行できます

識別された訪問者は、定義されたスキーマを使用して、Pendoのメタデータに関連付けられた訪問者オブジェクトとアカウントオブジェクトを作成します。このデータがPendoでどのように定義され、使用されているかについては、訪問者とアカウントのメタデータに関する記事を参照してください。nullまたは""visitorIdとして渡すと、匿名の訪問者IDが生成されます。

  • visitorId - 一意のユーザーIDを含む文字列(例:「user-SFGH-56gh」)。このIDは、他のPendoウェブアプリまたはモバイルアプリの訪問者IDと一致する必要があります
  • accountId - 一意のアカウントID、訪問者の特定の企業またはグループへの所属(例:Acme Inc)を含む文字列。このIDは、他のPendoウェブアプリまたはモバイルアプリの訪問者IDと一致する必要があります
  • visitorData - 訪問者のメタデータ(例:Eメール、電話、国など)
  • accountData - アカウントのメタデータ(例:種別、レベル、ARRなど)

 

1. ApplicationクラスでのPendoの設定

ApplicationクラスのonCreateメソッドに以下のコードを追加します。

setupは、SDKの設定と初期化を行います。

import sdk.pendo.io.*;

String pendoAppKey = "<REPLACE_THIS_WITH_YOUR_API_KEY>";

Pendo.setup(
  this,
  pendoAppKey,
  PendoPhasesCallbackInterface);

 

2. 訪問者が識別されるアクティビティ/フラグメントでのPendoの初期化

Pendo.startSessionは新しいセッションを開始し、データ収集を開始し、指定されたメタデータを持つガイドをロードします。これにより、認証されたユーザーを識別したり、匿名の訪問者に対してランダムな訪問者IDを生成したりできます。pendo.startSessionを再度呼び出すと、現在のセッションが終了して新しいセッションが開始され、データ収集が開始され、渡された新しい訪問者のメタデータを使用してガイドがロードされます。

以下のコードを追加してPendoを初期化し、現在の訪問者を識別します。

Pendo.startSession(
visitorId,
accountId,
visitorData,
accountData);

注:pendo.startSessionを使って現在の訪問者を随時更新できるため、SDKの初期化後に呼び出す必要があります。

 

デバイス接続の設定

Pendoでのアプリケーションのタグ付けとガイドのテストができるようにするには、AndroidManifest.xmlに、スキームIDを持つアクティビティを追加します。

1. アプリケーションのAndroidManifest.xmlファイルを開きます。

2. <application>タグのマニフェストに以下の<activity>を追加します。

<activity android:name="sdk.pendo.io.activities.PendoGateActivity" android:launchMode="singleInstance">
 <intent-filter>
   <action android:name="android.intent.action.VIEW"/>
   <category android:name="android.intent.category.DEFAULT"/>
   <category android:name="android.intent.category.BROWSABLE"/>
   <data android:scheme="<REPLACE_WITH_YOUR_SCHEME_ID>"/>
 </intent-filter>
</activity>
  • スキームIDとアプリキーは、[サブスクリプション設定(Subscription Settings)]の[アプリの詳細(App Details)]で参照できます。

Proguardを使用する場合

proguard-android-optimize.txtを使用している場合は、optimizationsのコード行に以下を追加してください。

!code/allocation/variable

optimizationsのコード行は以下のようになります。

-optimizations *other optimizations*,!code/allocation/variable

 

インストールを確認する

1. Android Studioを使用してアプリを実行し、デバイスログの中で以下を検索します。

PendoInternal: Pendo Mobile SDK was successfully integrated and connected to the server. (PendoInternal: PendoモバイルSDKは正常に統合され、サーバーに接続されました)App version identified: '<version>'.(識別したアプリのバージョン: '<バージョン>')

 

2. サブスクリプション設定に、[インテグレーション済(Integrated)]と示されたアプリが表示されていることを確認します。

AndroidIntegrated.png

 

Android Servicesサポート

アプリケーションでAndroid Servicesを使用している場合は、Android Servicesを実行しているアプリケーションのサポートの記事を参照して、動作とデータに問題がないかを確認してください。このソリューションは、Pendo Android SDK 2.3.9および2.4.3以降でサポートされています。

 

追加の設定

Pendo Android APIドキュメントには、アプリケーションで Pendo SDK を設定するための追加の技術情報が記載されています。

 

トラブルシューティング

互換性の問題については、最新のPendoモバイルSDKリリースノートを参照してください。

Dexの問題が発生した場合は、https://developer.android.com/studio/build/multidexを参照してください。

よくある問題

ビルドに関する問題(Gradle):PendoモバイルSDKが自身のアプリとは異なるバージョンのgsonライブラリを使用している

解決策は2つ考えられます。

1. ローカルgson依存関係を更新して、gsonリポジトリを使用する。

2. 以下のステートメントをビルドGradleの依存関係(dependencies)セクションに追加して、gsonライブラリをPendo依存関係から除外する。

compile('<pendo aar>') {

transitive = true;

exclude module: 'gson'

}

 

ビルドに関する問題(Gradle):Dex index overflow exception -> multi dex

アプリがAndroidシステムのメソッド数の上限に達しています。multi dexを設定すればこの問題に対処できます。Android開発者 multidex有効化の記事を参照してください。

 

ビルドに関する問題(Gradle):Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536

アプリがAndroidシステムのメソッド数の上限に達しています。multi dexを設定すればこの問題に対処できます。Android開発者 multidex有効化の記事を参照してください。

 

ビルドに関する問題(Gradle):Trouble writing output:Too many field references: 131000; max is 65536. You may try using –multi-dex option.

アプリがAndroidシステムのメソッド数の上限に達しています。multi dexを設定すればこの問題に対処できます。Android開発者 multidex有効化の記事を参照してください。

 

ビルドに関する問題(Gradle):dexがメモリ不足になる

dexのメモリ使用量を制限します。stackoverflowを使えば解決できます。

 

ビルドに関する問題(Gradle):Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 14 declared in library …../app/build/intermediates/exploded-aar/sdk.insert.io/insertIO/0.1-SNAPSHOT/AndroidManifest.xml

PendoモバイルSDKは、APIレベル14以降でのみ動作します。Pendoモバイルを使用するには、minSdkVersionを14に変更する必要があります。Google Playでは、Androidアプリの2つのバージョンをアップロードできます。1つはPendoを含まない旧バージョン、もう1つはPendoモバイルSDKを含む新しいバージョンです。

 

ランタイムの問題:Logcatエラーが、Pendo SDKがPendoサーバーと接続していないことを示している

組織でPendoモバイルのURLへのアクセスを有効にしていることを確認します