私は重い電子商取引アプリに取り組んでいます。このようなアプリでは、追跡は大きな懸念事項です。ユーザーが機能 x を使用するのか、ボタン y などをクリックするのかを知ることは非常に重要です。
たとえば、ヘッダーの検索ボタンをクリックするか、アプリ全体のキーボード コマンドを使用して、検索を表示できるとしますCTRL + S
。
そのようなものを追跡したい場合、どのように処理するのが最善の方法でしょうか。私は熟考し、その間をディザリングします(JavaScript
ここでは疑似を使用しますが、言語は実際には問題ではありません):
1. アクションが発生した場所を直接追跡するだけです。
function searchButtonClicked{
//this event will be raised anyway to be catched somewhere else to bring up the search
raiseEvent('searchButtonClicked');
//now directly track the stuff here
trackingService.trackEvent('searchButtonClicked');
}
と...
2. アクションのイベントを発生させてから、trackingService でそれらをキャッチします。
function searchButtonClicked{
//this event will be raised anyway to be catched somewhere else to bring up the search
raiseEvent('searchButtonClicked');
}
...そしてtrackingServiceのどこかに
onEvent('searchButtonClicked', function(){
track('searchButtonClicked');
});
したがって、一見すると2.は、trackingService
. 彼らは追跡が存在することさえ知りません。さらに、既存のイベントの一部はおそらく再利用できます。ただし、これはイベントの小さなサブセットにのみ当てはまります。ほとんどのイベントは、多かれ少なかれ追跡のためだけに発生します。では、その抽象化の層が本当に必要なのだろうか?
このような追跡は、ロギングと大差ないように思われます。イベントが発生した場所で直接ロギングすることは、受け入れられている方法だと思いますね。