すべてのプロダクト
Search
ドキュメントセンター

:SDK メソッド

最終更新日:Dec 30, 2024

ブラウザ監視 SDK は、データのレポートと SDK 設定の変更を行うためのメソッドを提供します。

このトピックのメソッド

api()

ページ上の API 呼び出しの成功率をレポートするために、api() メソッドを呼び出すことができます。

デフォルトでは、SDK はページ上の Asynchronous JavaScript and XML (AJAX) リクエストをリッスンし、このメソッドを呼び出してデータをレポートします。ページ上のデータが JSON with Padding (JSONP) またはクライアント SDK などの他のカスタムツールを使用してリクエストされた場合は、データリクエストで api() メソッドを呼び出して手動でレポートできます。

説明

このメソッドを呼び出すには、SDK 設定で disableHook パラメーターを true に設定することをお勧めします。詳細については、disableHook を参照してください。

api() の構文:

__bl.api(api, success, time, code, msg, begin, traceId, sid)

または

__bl.api({api: xxx, success: xxx, time: xxx, code: xx, msg: xx, begin: xx, traceId: xx, sid: xx})
表 1. api()のリクエストパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

api

String

メソッドの名前。

はい

なし

success

Boolean

呼び出しが成功したかどうかを指定します。

はい

なし

time

Number

呼び出しに消費された時間。

はい

なし

code

String/Number

ステータスコード。

いいえ

なし

msg

String

レスポンス情報。

いいえ

なし

begin

Number

API 呼び出しが開始された時刻。値はタイムスタンプです。

いいえ

なし

traceId

String

EagleEye-TraceID の値。

いいえ

なし

sid

String

EagleEye-SessionID の値。

いいえ

なし

api() の例:

var begin = Date.now(),
    url = '/data/getTodoList.json',
    traceId = window.__bl && __bl.getTraceId('EagleEye-TraceID'),
    sid = window.__bl && __bl.getSessionId('EagleEye-SessionID');
// リクエストヘッダーで EagleEye-TraceID と EagleEye-SessionID を指定します。
fetch(url, {
    headers: {
        'EagleEye-TraceID': traceId,
        'EagleEye-SessionID': sid
    }
}).then(function (result) {
    var time = Date.now() - begin;
    // 呼び出しが成功したことをレポートします。
    window.__bl && __bl.api(url, true, time, result.code, result.msg, begin, traceId, sid);
    // 何かを行う ....
}).catch(function (error) {
    var time = Date.now() - begin;
    // 呼び出しが失敗したことをレポートします。
    window.__bl && __bl.api(url, false, time, 'ERROR', error.message, begin, traceId, sid);
    // 何かを行う ...
});    

[トップに戻る]

error()

error() メソッドを呼び出して、ページでキャプチャしたい JavaScript (JS) エラーまたは例外をレポートできます。ブラウザ監視の JS エラー診断 ページで JS エラーの詳細を確認できます。

通常、SDK はページ上のグローバルエラーをリッスンし、このメソッドを呼び出して例外をレポートします。ただし、ブラウザの同一生成元ポリシーのため、エラーの詳細にアクセスできないことがよくあります。この場合、そのようなエラーを手動でレポートする必要があります。

error() の構文:

__bl.error(error, pos)
表 2. error()のリクエストパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

error

Error

JS エラーオブジェクト。

はい

なし

pos

Object

エラーが発生した場所。場所は、次の属性を含みます: pos.filenamepos.lineno、および pos.colno

いいえ

なし

pos.filename

String

エラーが発生したファイルの名前。

いいえ

なし

pos.lineno

Number

エラーが発生した行の番号。

いいえ

なし

pos.colno

Number

エラーが発生した列の番号。

いいえ

なし

error() の例 1: ページ上の JS エラーをリッスンしてレポートします。

window.addEventListener('error', function (ex) {
    // イベントパラメーターには通常、場所情報が含まれています。
    window.__bl && __bl.error(ex.error, ex);
});            

error() の例 2: カスタムエラーをレポートします。

window.__bl && __bl.error(new Error('カスタムエラーが発生しました。'), {
    filename: 'app.js', 
    lineno: 10, 
    colno: 15
});            

error() の例 3: カスタムエラーをレポートします。

__bl.error({name:'CustomErrorLog',message:'this is an error'}, {
    filename: 'app.js', 
    lineno: 10, 
    colno: 15
});           

[トップに戻る]

sum()

sum() メソッドを呼び出して、レポートされるログをカスタマイズできます。ログは、ビジネスシナリオで特定のイベントが何回発生したかをカウントするために使用されます。カスタム統計 ページで sum() メソッドを呼び出すことによってレポートされた次のデータを表示できます。カスタム統計

説明

データをレポートした後、数分後にカスタム統計ページに表示されます。

  • カスタムイベントのトレンドチャート

  • イベントのページビュー(PV)とユニークビジター(UV)

  • ディメンション分布情報

sum() の構文:

__bl.sum(key, value)
表 4. sum()のリクエストパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

key

String

イベントの名前。

はい

なし

value

Number

一度にレポートされるアイテムの数。

いいえ

1

sum() の例:

__bl.sum('event-a');
__bl.sum('event-b', 3);

[トップに戻る]

avg()

avg() メソッドを呼び出して、レポートされるログをカスタマイズできます。ログは、ビジネスシナリオで特定のイベントが平均何回発生したかをカウントするために使用されます。カスタム統計 ページで avg() メソッドによってレポートされた次のデータを表示できます。カスタム統計

  • カスタムイベントのトレンドチャート

  • イベントの PV と UV

  • ディメンション分布情報

avg() の構文:

__bl.avg(key, value)
表 5. avg()のリクエストパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

key

String

イベントの名前。

はい

なし

value

Number

レポートされるアイテムの数。

いいえ

0

avg() の例:

__bl.avg('event-a', 1);
__bl.avg('event-b', 3);

[トップに戻る]

reportBehavior()

reportBehavior() メソッドを呼び出して、現在の動作キューをすぐにレポートできます。

このメソッドを手動で呼び出さない場合、JS エラーが発生すると、現在の動作キューが自動的にレポートされます。キューの最大サイズは 100 です。キューに 100 を超える動作レコードが含まれている場合、動作レコードはキューの先頭から破棄されます。

説明

このメソッドを呼び出すには、SDK 設定で behavior パラメーターを true に設定する必要があります。

reportBehavior() の構文:

__bl.reportBehavior()

reportBehavior() メソッドにはリクエストパラメーターがありません。

[トップに戻る]

performance()

重要

このメソッドは Web クライアントにのみ適用されます。

onLoad メソッドが呼び出された後、performance() メソッドが呼び出され、デフォルトのパフォーマンスメトリック以外にカスタムパフォーマンスメトリックがレポートされます。

説明

このメソッドは、onLoad メソッドが呼び出された後にのみ呼び出すことができます。そうでない場合、デフォルトのパフォーマンスメトリックの収集が完了していないため、呼び出しは失敗します。performance() メソッドは、各 PV 中に 1 回だけ呼び出すことができます。

performance() メソッドの呼び出し方法:

  1. autoSendPerf パラメーターを false に設定して、パフォーマンスメトリックの自動レポートを無効にし、手動レポートを待ちます。

  2. __bl.performance(Object) メソッドを呼び出して、カスタムパフォーマンスメトリックを手動でレポートします。このプロセスでは、デフォルトのパフォーマンスメトリックが自動的にレポートされます。

performance() の例 1 (CDN を使用):

window.onload = () => {
 setTimeout(()=>{
  __bl.performance({cfpt:100, ctti:200, t1:300, …});
 }, 1000); // デフォルトのパフォーマンスデータが確実に収集されるように遅延を設定します。
};

performance() の例 2 (npm パッケージを使用):

const BrowserLogger = require('alife-logger');
const __bl = BrowserLogger.singleton({pid:'Unique site ID'});
window.onload = () => {
 setTimeout(()=>{
  __bl.performance({cfpt:100, ctti:200, t1:300, …});
 }, 1000); // デフォルトのパフォーマンスデータが確実に収集されるように遅延を設定します。
};
説明

カスタムパフォーマンスメトリックの説明:

  • cfpt: カスタムの最初のペイント時間

  • ctti: 最初のカスタムのインタラクションまでの時間

  • t1 から t10 まで: 10 個のカスタムパフォーマンスメトリック

[トップに戻る]

setConfig()

SDK の初期化後に setConfig() メソッドを呼び出して、特定の設定項目を変更できます。詳細については、SDK リファレンスを参照してください。

setConfig() の構文:

__bl.setConfig(next)
表 8. setConfig()のリクエストパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

next

Object

変更したいパラメーターと新しいパラメーター値。

はい

なし

setConfig() の例: disableHook パラメーターの値を変更して、自動 API レポートを無効にします。

__bl.setConfig({
    disableHook: true
});            

[トップに戻る]

setPage()

setPage() メソッドを呼び出して、ページのページ名をリセットできます。デフォルトでは、PV データが再レポートされます。 このメソッドは通常、シングルページアプリケーション(SPA)に使用されます。詳細については、SPA のページデータレポートを参照してください。

説明

PV データが再レポートされるとき、既存のデータは上書きされません。新しいデータエントリが追加されます。

setPage() の構文:

__bl.setPage(page, sendPv)
表 9. setPage()のリクエストパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

page

String

新しいページ名。

はい

なし

sendPv

Boolean

PV データをレポートするかどうかを指定します。デフォルトでは、PV データがレポートされます。

いいえ

true

api() の例:

現在のページの名前を現在の URL ハッシュに設定し、PV データを再レポートします。
__bl.setPage(location.hash);

// PV データレポートをトリガーせずに、現在のページの名前をホームページに設定します。
__bl.setPage('homepage', false);          

[トップに戻る]

setCommonInfo()

setCommonInfo() メソッドを呼び出して、共通フィールドを設定できます。

setCommonInfo() の構文:

__bl.setCommonInfo(obj)

setCommonInfo() メソッドにはオブジェクトが渡されます。setCommonInfo() の例:

__bl.setCommonInfo({
  name: 'xxx',
  common: 'xxx'
});          
説明

このメソッドのオブジェクトのサイズは制限することをお勧めします。そうでない場合、GET リクエストのサイズが大きくなり、失敗する可能性があります。

[トップに戻る]

addBehavior()

addBehavior() メソッドを呼び出して、カスタムユーザー動作を現在の動作キューの末尾に追加できます。

SDK は、最大 100 レコードのユーザー動作キューを保持します。addBehavior() メソッドを呼び出して、カスタムユーザー動作を現在の動作キューの末尾に追加できます。JS エラーが発生すると、addBehavior() メソッドは現在の動作キューをレポートし、キューをクリアします。

JS エラー診断 ページでユーザーの動作を確認できます。詳細については、ユーザーの動作をバックトラックして JS エラーを診断するを参照してください。

説明

このメソッドを呼び出すには、SDK 設定で behavior パラメーターを true に設定する必要があります。

addBehavior() の構文:

__bl.addBehavior(behavior)
表 10. addBehavior()のリクエストパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

data

Object

動作データ。このパラメーターには、次の 2 つの必須フィールドがあります。

  • name: STRING タイプの動作名。名前は最大 20 文字です。

  • message: STRING タイプの動作コンテンツ。値は最大 200 文字です。

はい

なし

page

String

動作が発生したページ。

いいえ

location.pathname パラメーターの値

addBehavior() の例:

_bl.addBehavior({
  data:{name:'string',message:'sting'},
  page:'string'
})

[トップに戻る]

複数のインスタンスを作成する

npm パッケージを使用して複数のインスタンスを作成します。公式 npm パッケージ alife-logger が公開されています。

Web ページ

  • 例:

    const BrowerLogger = require('alife-logger');
    const bl2 = BrowerLogger.createExtraInstance(props); // createExtraInstance メソッドを使用してインスタンスを作成します。
    bl2.custom({
      key: 'biz',
      msg: 'msg info'
    });
    説明

    props パラメーターは Object タイプです。props パラメーターに含まれるパラメーターは、基本的に SDK 設定のパラメーターと同じです。

  • 新しいインスタンスはカスタム情報のみをレポートします。

    var props = {
      pid: 'xxxx', // 新しいインスタンスがデータをレポートする必要があるサイトの ID。
      region: 'cn',
      page: '',
      uid: ''
    }

Weex ページ

  • 例:

    const WeexLogger = require('alife-logger/weex');
    const wl2 = WeexLogger.createExtraInstance(props); // createExtraInstance メソッドを使用してインスタンスを作成します。
    wl2.custom({
      key: 'biz',
      msg: 'msg info'
    });
    説明

    props パラメーターは Object タイプです。props パラメーターに含まれるパラメーターは、基本的に SDK 設定のパラメーターと同じです。

  • 新しいインスタンスはカスタム情報のみをレポートします。

    var props = {
      pid: 'xxxx', // 新しいインスタンスがデータをレポートする必要があるサイトの ID。
      region: 'cn',
      sendRequest: function(data, imgUrl) {
        // GET ログスキームを送信します。
      },
      postRequest: function(data, imgUrl) {
        // POST ログスキームを送信します。
      }
    }

ミニプログラム

例:

import MiniProgramLogger from 'alife-logger/miniprogram'; // ミニプログラムのタイプ(DingTalk ミニプログラムや Alipay ミニプログラムなど)に基づいてパスを指定します。
const MiniInstance = MiniProgramLogger.createExtraInstance({
  pid: 'xxxinstance',
  uid: 'userxxx', // ユーザーの ID。UV データの収集に使用されます。
  region: 'cn', // ログのレポート先アプリケーションが中国またはシンガポールにデプロイされているかどうかを指定します。値 cn は中国を示し、値 sg はシンガポールを示します。このパラメーターを指定しない場合、値は cn に設定されます。
  // リモートプロシージャコール(RPC)メソッドをビジネスに基づいて指定して、ミニプログラムのブラウザ監視を実行します。
  sendRequest: (url, resData) => {
    // 送信方法。
  }
});