このトピックでは、DingTalk、Alipay、WeChat 向け以外の標準準拠ミニプログラムを ARMS ブラウザ監視でモニタリングする方法について説明します。また、一般的な構成、API メソッド、および高度なシナリオについても取り上げます。
基本的な使用方法
基本的なセットアップは、npm パッケージのインストールと初期化、ログのレポート、セキュリティドメイン名の構成という 3 つのステップで構成されます。
npm パッケージをインストールして初期化します。
ご利用のミニプログラムプロジェクトで、モニタリングを有効にするために
@arms/js-sdknpm パッケージをインストールします。npm install @arms/js-sdk/utilsディレクトリ内のmonitor.jsファイルに以下のコードを追加して、SDK を初期化します。説明JavaScript (JS) ファイルの名前と場所はカスタマイズできます。
import MiniProgramLogger from '@arms/js-sdk/miniapp'; const Monitor = MiniProgramLogger.init({ pid: 'xxx', uid: 'userxxx', // ユーザー ID を設定します。UV 統計に使用されます。 region: 'cn', // アプリケーションがデプロイされているリージョンを指定します。中国本土の場合は 'cn'、中国本土以外の場合は 'sg' を設定してください。デフォルト値は 'cn' です。 // 基本的なミニプログラムモニタリングでは、RPC 関数を手動で提供する必要があります。 // ご利用のビジネスロジックに基づいて関数を実装してください。以下の例は DingTalk E-App での呼び出し方法を示しています。 sendRequest: (url, resData) => { // この部分を必ず設定してください。GET および POST レポートの両方をサポートしています。 // DingTalk でのデモ var method = 'GET'; var data; if (resData) { method = 'POST'; data = JSON.stringify(resData); } dd.httpRequest({ url: url, method: method, data: data, fail: function (error) { //... } }); }, // 現在のページパスを取得する関数を手動で提供します。 // ご利用のビジネスロジックに基づいて関数を実装してください。以下の例は DingTalk E-App での呼び出し方法を示しています。 getCurrentPage: () => { // この部分を必ず設定してください。 if (typeof getCurrentPages !== 'undefined' && typeof getCurrentPages === 'function') { var pages = (getCurrentPages() || []); var pageLength = pages.length; var currPage = pages[pageLength - 1]; return (currPage && currPage.route) || null; } } }); export default Monitor;説明パラメーターの詳細については、「SDK パラメーター」をご参照ください。
ログをレポートします。
app.js内で、以下のいずれかの方法を使用してログをレポートします。Monitor.hookApp(options) メソッドを使用して、エラーログを自動的にキャプチャします。options パラメーターは、ご利用の App の元の構成オブジェクトです。
import Monitor from '/utils/monitor'; App(Monitor.hookApp({ onError(err) { console.log('onError に入りました:', err); }, onLaunch() { console.log('onLaunch に入りました'); }, onShow(options) { }, onHide() { } }));Monitor.error(err) メソッドを使用して、エラーログを手動でレポートします。
import Monitor from '/utils/monitor'; App({ onError(err) { Monitor.error(err); console.log('onError に入りました:', err); }, onLaunch() { console.log('onLaunch に入りました'); }, onShow(options) { }, onHide() { } });
ページの JS ファイル内で、以下のいずれかの方法を使用してログをレポートします。
Monitor.hookPage(options) メソッドを使用して、ページビュー (PV) およびヘルスデータを自動的にレポートします。
説明このメソッドは API リクエストを自動的にレポートしません。
import Monitor from '/utils/monitor'; Page(Monitor.hookPage({ data: {}, onLoad(query) { }, onReady() { // ページのロードが完了しました。 }, onShow() { }, onLoad(query) { }, onHide() { }, onUnload() { }, onTitleClick() { /** * カスタムイベントトラッキングデータをレポートします。 * @desc */ Monitor.sum('titleClick'); } }));
セキュリティドメイン名を構成します。
region を
cnに設定した場合、有効なドメイン名のリストにhttps://arms-retcode.aliyuncs.comを追加します。region を
sgに設定した場合、有効なドメイン名のリストにhttps://arms-retcode-sg.aliyuncs.comを追加します。
API メソッド
メソッド | パラメーター | 説明 |
hookApp | {} | 元の App 構成オブジェクトをラップして、App ライフサイクルコールバックを自動的にイベントトラッキングします。 |
hookPage | {} | 元の Page 構成オブジェクトをラップして、Page ライフサイクルコールバックを自動的にイベントトラッキングします。 |
setCommonInfo | {[key: string]: string;} | レポートされるすべてのデータに追加される共通フィールドを設定します。段階的リリースなどのシナリオで役立ちます。 |
setConfig | {[key: string]: string;} | 構成フィールドを設定します。詳細については、「ブラウザ監視 SDK 構成」をご参照ください。 |
pageShow | {} | ページ表示イベントをレポートして、ページビュー (PV) データを送信します。 |
pageHide | {} | ページ非表示イベントをレポートして、ヘルスデータを送信します。 |
error | String/Object | エラーログをレポートします。 |
api | フロントエンド API リファレンス を参照してください。 | API リクエストログをレポートします。 |
sum/avg | String | 合計および平均計算用のカスタムメトリックをレポートします。 |
hookApp および hookPage を使用してライフサイクルを自動的にイベントトラッキングするには、ご利用のミニプログラムが標準ミニプログラム仕様に準拠している必要があります。つまり、App レベルで onError メソッドを、Page レベルで onShow、onHide、および onUnload メソッドを持つ必要があります。例については、「基本的な使用方法」をご参照ください。
ほとんどのログレポート API は Web ブラウザ監視 SDK と一貫性があります。その他の API の使用方法は以下に記載されています。
現在のページの PV データを送信するには、Page の onShow ライフサイクルメソッド内で pageShow() メソッドを呼び出します。
説明このメソッドを hookPage() メソッドと一緒に使用しないでください。そうしないと、重複した PV ログがレポートされます。
import Monitor from '/util/monitor'; Page({ onShow: function() { Monitor.pageShow(); } })現在のページのヘルスデータを送信し、ヘルスレベルとページ滞在時間を測定するには、Page の onHide および onUnload ライフサイクルメソッド内で pageHide() メソッドを呼び出します。
説明このメソッドを hookPage() メソッドと一緒に使用しないでください。そうしないと、重複したログがレポートされます。
import Monitor from '/util/monitor'; Page({ onHide: function() { Monitor.pageHide(); }, onUnload: function() { Monitor.pageHide(); } ... })
高度なシナリオ
基本的な使用方法が要件を満たさない場合は、このセクションの高度なシナリオをご検討ください。
uid の設定(UV 統計用)
ユーザー ID が SDK 初期化前に利用可能な場合は、
init構成内で直接 uid を設定できます。ユーザー ID が初期化時に利用できない場合は、アプリケーションの
onShowイベント前に取得し、setCommonInfo({uid: 'xxx'}) を呼び出して uid を設定できます。
ミニプログラムの共通情報の設定
setCommonInfo メソッドを使用して、ミニプログラムの共通情報を設定します。ARMS ブラウザ監視は以下のフィールドを分析します。
sr:画面の解像度
vp:ビューポート
dpr:デバイスピクセル比
ul:ドキュメント言語
dr:ドキュメントリファラー
ct:ネットワーク接続タイプ(例:Wi-Fi または 3G)
警告setCommonInfo メソッドでフィールドを多く設定しすぎないでください。リクエスト長制限を超えると、リクエストが失敗する可能性があります。
SDK パラメーター
ARMS ブラウザ監視は、詳細設定用の SDK パラメーターを提供しています。以下の表では、このシナリオに適用される一般的なパラメーターについて説明します。
パラメーター | タイプ | 説明 | 必須 | デフォルト |
pid | String | プロジェクトの一意の ID です。サイト作成時に ARMS によって自動生成されます。 | はい | なし |
uid | String | ユーザーの ID です。ユーザーを識別するための識別子であり、ユーザーの検索に使用できます。カスタム値を指定できます。このパラメーターを指定しない場合、SDK によって自動生成され、6 か月ごとに更新されます。 | いいえ | SDK によって自動生成 |
tag | String | 入力タグです。各ログにはタグが付与されます。 | いいえ | なし |
release | String | アプリケーションのバージョンです。異なるバージョンのレポート情報を確認するために、このパラメーターを設定することを推奨します。 | いいえ |
|
environment | String | 環境フィールドです。有効な値:prod、gray、pre、daily、local。
| いいえ |
|
sample | Integer | ログサンプリング構成です。値は 1 ~ 100 の整数です。パフォーマンスログおよび成功した API ログは | いいえ |
|
behavior | Boolean | エラーをレポートするユーザー動作を記録するかどうかを指定します。トラブルシューティングを容易にするために使用します。 | いいえ |
|
SDK パラメーターの完全なリストについては、「ブラウザ監視 SDK 構成」をご参照ください。