Cordova インストゥルメンテーションのカスタマイズ
Cordova プラグインを使用して Cordova ベースのアプリケーションをインストゥルメント化すると、API を使用してコントローラの UI に表示されるアプリケーションのデータをカスタマイズすることもできます。以下のセクションでは、Cordova プラグイン SDK API を使用してインストルメンテーションをカスタマイズする方法について説明します。
Cordova プラグイン SDK API の使用
構文
window.plugins.ADEUMMobilePlugin.<method>引き数
すべての SDK API メソッドの最後の 2 つの引数は、常に 2 つの関数を使用する必要があります。最初の機能で成功したケースを処理し、最後の方法で障害を処理する必要があります。
window.plugins.ADEUMMobilePlugin.changeAppKey("<EUM_APP_KEY>",
(success) => {
this.showAlert("changeAppKey return: success");
},
(error) => {
this.showAlert("changeAppKey error:" + error);
}
);SDK API を呼び出すメソッドの追加
export class HomePage {
...
someMethod(event) {
window.plugins.ADEUMMobilePlugin.<method>(<arg1>, <success_function>, <failure_function>);
}
...
}例
HomePage.js ファイルの場合は、HomePage クラスに、次に示す SDK API メソッド screenshot を呼び出すメソッド takeScreenshot を含めることができます。export class HomePage {
...
takeScreenshot(event) {
// Call the Cordova plugin SDK methods
window.plugins.ADEUMMobilePlugin.screenshot(
(success) => {
this.showAlert("crash return: success");
},
(error) => {
this.showAlert("crash error:" + error);
});
}
...
}アプリケーションキーの変更
changeAppKey を使用します。| パラメータ名 | データ タイプ | 説明 |
|---|---|---|
appKey | 文字列 | EUM アプリケーションキー。 |
success | function | changeAppKey が成功したときに呼び出されるユーザー定義関数。 |
error | function | changeAppKey が失敗したときに呼び出されるユーザー定義関数。 |
changeAppKey に渡す新しいメソッドを作成できます。changeAppKey(event, newAppKey) {
window.plugins.ADEUMMobilePlugin.changeAppKey(newAppKey,
(success) => {
this.showAlert("changeAppKey return: success");
},
(error) => {
this.showAlert("changeAppKey error:" + error);
}
);
}データの追加タイプの収集
ADEUMMobilePlugin クラスで使用可能なメソッドを使用して、次の 5 つのタイプのデータを収集できます。- 情報ポイント
- カスタムタイマー
- Custom Metrics
- ユーザ データ
- トピックパス(パンくずリスト)
情報ポイント
beginCall を呼び出して実行される時間を確認できます。コールバック success または error が呼び出されると、情報ポイントを追跡するためのコールが終了します。beginCall(name, functionName, args, success, error)
| Name | タイプ | 説明 |
|---|---|---|
name | 文字列 | 情報ポイントが記録されているファイルまたはモジュールの名前。 |
functionName | 文字列 | 情報ポイントを追跡するために beginCall を呼び出す関数。 |
success | function | ユーザ定義のコールバックの成功例。 |
error | function | ユーザ定義のコールバックの失敗例。 |
beginCall(event) {
window.plugins.ADEUMMobilePlugin.beginCall("home.ts", "callTrackerFunction", "event",
(tracker) => {
tracker.reportCallEndedWithReturnValue("Return from home.ts",
(success) => { console.log("End call with return value success:" + success);},
(error) => { console.log("End call with return value error:" + error); });
},
(error) => {
console.log("Begin call error:" + error);
}
);
}カスタムタイマー
startTimer と stopTimer を使用します。startTimerWithName(name, success, error)stopTimerWithName(name, success, error)
| Name | タイプ | 説明 |
|---|---|---|
name | 文字列 | カスタムタイマーの名前。使用できる文字は [A-Za-z\s0-9] です。不正な文字は、ASCII 16 進値に置き換えられます。 |
success | function | ユーザ定義のコールバックの成功例。 |
error | function | ユーザ定義のコールバックの失敗例。 |
startTimer(event) {
window.plugins.ADEUMMobilePlugin.startTimerWithName(data.name,
(success) => {
this.showAlert("startTimerWithName return: success");
},
(error) => {
this.showAlert("startTimerWithName error:" + error);
}
);
}
stopTimer(event) {
window.plugins.ADEUMMobilePlugin.stopTimerWithName(data.name,
(success) => {
this.showAlert("stopTimerWithName return: success");
},
(error) => {
this.showAlert("stopTimerWithName error:" + error);
}
);
}Custom Metrics
カスタムメトリックをレポートすることもできます。
reportMetricWithName を使用してカスタムメトリックを作成します。 reportMetricWithName(name, value, success, error) reportMetricWithName メソッドは、次のパラメータを使用します。
| Name | タイプ | 説明 |
|---|---|---|
name | 文字列 | カスタムメトリックの名前。メトリック名には英数字を使用する必要があります。不正な文字は、ASCII 16 進値に置き換えられます。 |
value | 数 | 値が整数ではない場合は、エラーが返されます。 |
success | function | ユーザ定義の成功コールバック。 |
error | function | ユーザ定義のエラーコールバック。 |
reportMetric(event, data) {
window.plugins.ADEUMMobilePlugin.reportMetricWithName(data.name, parseInt(data.value),
(success) => {
this.showAlert("reportMetricWithName : success");
},
(error) => {
this.showAlert("reportMetricWithName error:" + error);
}
);
};トピックパス(パンくずリスト)
トピックパスを使用すると、ユーザエクスペリエンスのコンテキストでクラッシュの場所を特定できます。問題が発生したときに、トピックパスを設定します。その後のある時点でアプリケーションがクラッシュした場合、トピックパスはクラッシュレポートとともに表示されます。各クラッシュレポートには、最近の 99 件のトピックパスが表示されます。
leaveBreadcrumb(breadcrumb, mode, success, error)leaveBreadcrumb メソッドは、次のパラメータを使用します。| Name | タイプ | 説明 |
|---|---|---|
breadcrumb | 文字列 | クラッシュレポートおよびセッションに含める文字列。2048 文字で切り捨てられます。空の値は無視されます。 |
mode | 数 |
トピックパスが表示される場所を決定するモードは次のとおりです。
値が解析できない場合、モードはデフォルトでクラッシュします。 |
success | function | ユーザ定義のコールバックの成功例。 |
error | function | ユーザ定義のコールバックの失敗例。 |
breadcrumb(mode) {
window.plugins.ADEUMMobilePlugin.leaveBreadcrumb( "breadcrumb1", mode,
(success) => {
this.showAlert("leaveBreadcrumb return: success");
},
(error) => {
this.showAlert("leaveBreadcrumb error:" + error);
}
)カスタマーユーザーデータの追加
setUserData(key, value, success, error)removeUserData(key, success, error)
| Name | タイプ | 説明 |
|---|---|---|
key | 文字列 | キーと値のペアを識別するキー。 |
value | 文字列 | キーに関連付けられている値。 |
success | function | ユーザ定義のコールバックの成功例。 |
error | function | ユーザ定義のコールバックの失敗例。 |
setCustomData(event, data) {
window.plugins.ADEUMMobilePlugin.setUserData(data.name, data.value,
(success) => {
this.showAlert("setUserData return: success");
},
(error) => {
this.showAlert("setUserData error:" + error);
}
);
};
removeUserData(event, key) {
window.plugins.ADEUMMobilePlugin.removeUserData(key,
(success) => {
this.showAlert("removeUserData return: success");
},
(error) => {
this.showAlert("removeUserData error:" + error);
}
);
}プログラムによるセッションの制御
デフォルトでは、ユーザが非アクティブになってからモバイルセッションが終了します。たとえば、ユーザがアプリケーションを開くと、セッションは開始され、ユーザが設定した期間にアプリケーションを使用しなくなった後にのみ終了します。ユーザがアプリケーションの再使用を開始すると、新しいセッションが開始されます。
startNextSession(success, error)ADEUMMobilePlugin からメソッド startNextSession を呼び出すと、現在のセッションが終了し、新しいセッションが開始されます。API を使用すると、セッションを定義してフレーム化することができます。これにより、ビジネス目標と予想されるユーザフローをより厳密に合わせることができます。たとえば、API を使用して、製品の購入を追跡するセッションを定義したり、新しいユーザを登録したりすることができます。
この API を過剰に使用すると、セッションが調整されます(過剰使用は 1 分あたり 10 コールを超えた場合になりますが、変更される可能性があります)。API を使用しない場合、セッションは、ユーザが非アクティブになった後、デフォルトの終了にフォールバックします。
プログラムによって制御されるセッションの例
completeCheckout() {
if (this.validateAddress() && this.validatePayment()){
let loader = this.loader.create({
content: "Completing the checkout..."
});
loader.present();
return this.order.create({
shipping_address: this.address,
billing_address: this.address,
cart_id: Number(this.configuration.get('cart_id'))
})
...
window.plugins.ADEUMMobilePlugin.startNextSession(
(success) => {
console.log("startNextSession return: success");
},
(error) => {
console.log("startNextSession error:" + error);
}
);
}セッションフレームの開始と終了
Cordova プラグインを使用して、セッションアクティビティに表示されるセッションフレームを作成できます。セッションフレームは、セッション中にユーザが実行している内容のコンテキストを提供します。この API を使用すると、ユーザ画面の命名方法が向上し、ビジネスコンテキスト内のユーザフローを記録できます。
使用例
- 1 つのページで複数の関数を実行し、個々の関数をより詳細に追跡する必要があります。
- ユーザーフローは、複数のページまたはユーザーのインタラクションに及びます。たとえば、API を使用してセッションフレーム「Login」、「Product Selection」、および「Purchase」を作成して、ユーザが購入のためにフローを記録することができます。
- ユーザの操作に基づいて動的情報をキャプチャし、オーダー ID などのセッションフレームに名前を付けることができます。
SessionFrame API
startSessionFrame を使用してセッションフレームを開始してから、updateName と end を使用してセッションフレームの名前を変更し、終了します。| メソッド | パラメータ | 説明 |
|---|---|---|
|
|
セッションフレームを開始して名前を付けるには、これを使用します。 このメソッドは |
|
|
セッションフレーム名の名前を変更します。
|
|
|
セッションフレームを終了します。
|
セッションフレームの例
declare var window: any;
@Component({
...
})
export class OrderPage {
sessionFrame: any;
...
checkoutCartButtonClicked() {
// The user starting to check out starts when the user clicks the checkout button
// this may be after they have updated quantities of items in their cart, etc.
window.plugins.ADEUMMobilePlugin.startSessionFrame("Checkout",
(sessionFrame) => {
// The returned object is saved to the class property 'sessionFrame' so
// the SessionFrame API methods 'updateName' and 'end' can be called from it later.
this.sessionFrame = sessionFrame;
},
(error) => {
console.log("startSessionFrame call error:" + error);
}
);
}
confirmOrderButtonClicked() {
// Once they have confirmed payment info and shipping information, and they
// are clicking the "Confirm" button to start the backend process of checking out
// we may know more information about the order itself, such as an Order ID.
this.sessionFrame.updateName("Checkout: Order ID " + this.orderId,
(success) => {
console.log("Order has been placed and sessionFrame updated:" + this.orderId);
},
(error) => {
console.log("Order has been placed but sessionFrame couldn't be updated because of the error " + error);
}
);
}
processOrderCompleted() {
// Once the order is processed, the user is done "checking out" so we end
// the session frame.
this.sessionFrame.end(
(success) => {
console.log("Order was completed and sessionFrame ended: " + success);
},
(error) => {
console.log("Order was completed but sessionFrame couldn't be ended because of: " + error);
}
);
}
checkoutCancelled() {
// If they cancel or go back, you'll want to end the session frame also, or else
// it will be left open and appear to have never ended.
this.sessionFrame.end(
(success) => {
console.log("Order was cancelled and sessionFrame ended: " + success);
},
(error) => {
console.log("Order was cancelled but sessionFrame couldn't be ended because of: " + error);
}
);
}
} // end of export class OrderPageスクリーンショットの設定および作成
screenshot(event) {
// make a call to plugin
console.log("screenshot click handler");
window.plugins.ADEUMMobilePlugin.takeScreenshot(
(success) => {
this.showAlert("screenshot return: success");
},
(error) => {
this.showAlert("screenshot error:" + error);
});
}スクリーンショットのブロックとブロック解除
logInScreen(event) {
// Block Screen while getting user input
window.plugins.ADEUMMobilePlugin.blockScreenshots(
(success) => {
console.log("blockScreenshots return: success");
this.getUserInput();
this.submitUserInput();
},
(error) => {
console.log("blockScreenshots error:" + error);
}
);
// Unblock screen and return to home page
window.plugins.ADEUMMobilePlugin.unblockScreenshots(
(success) => {
console.log("unblockScreenshots return: success");
this.homePage()
},
(error) => {
console.log("unblockScreenshots error:" + error);
}
);
}ロギングの有効化とロギングレベルの設定
loggingLevel を使用します。ロギングは、次のいずれかのレベルに設定できます。| 値 | ログ レベル | 説明 |
|---|---|---|
| 0 | なし | ログは表示されません。このレベルはロギングを無効にします。 |
| 1 | エラー | エラーメッセージのみが表示されます。これはデフォルトのロギングレベルです。 |
| 2 | [警告(Warn)] | 警告メッセージとエラーメッセージが表示されます。 |
| 3 | 情報 | 警告、エラー、および開発者に焦点を当てたメッセージが表示されます。 |
| 4 | [デバッグ(Debug)] | エラー、警告、開発者情報、およびデバッグメッセージが表示されます。 |
| 5 | Verbose | エラー、警告、開発者の情報、デバッグ、およびトラブルシューティング メッセージが表示されます。 |
| 6 | すべて | サポート対象のすべてのログメッセージが表示されます。 |
Info に設定します。window.plugins.ADEUMMobilePlugin.initWithConfiguration(
{
"appKey": "<EUM_APP_KEY>",
"loggingLevel": 3
},
(success) => {
this.showAlert("initWithConfiguration return: success");
},
(error) => {
this.showAlert("initWithConfiguration error:" + error);
}
);