Treasure Data JavaScript SDKを使用して、ウェブサイトから顧客データを追跡します。SDKを使用することで、ウェブサイトのアクティビティを追跡するためにサーバー側に何もインストールする必要がありません。
JavaScriptとHTMLの基礎知識
Treasure Dataの基礎知識
IPホワイトリストは、JavaScript SDKからのインポートには適用されません。
Webブラウザは頻繁に無効なtimestampを指定します(1970/01/01など)。このため、7日より古いtimestampを持つログ、または現在の日付より3日先のログは無視されます。
追跡したい各ページのheaderにJavaScript SDKを追加します。
Treasure DataJavaScript SDKはGitHubで入手できます。READMEには、JavaScript SDK APIの説明が含まれています。
TD Consoleを開きます。
Treasure Dataのwrite-only API keyを見つけます。
追跡したい各ページのheader(
<head>)に以下のコードを追加します。
<script type="text/javascript">
!function(t,e){if(void 0===e[t]){e[t]=function(){e[t].clients.push(this),this._init=[Array.prototype.slice.call(arguments)]},e[t].clients=[];for(var r=["addRecord","blockEvents","fetchServerCookie","fetchGlobalID","fetchUserSegments","resetUUID","ready","setSignedMode","setAnonymousMode","set","trackEvent","trackPageview","trackClicks","unblockEvents"],s=0;s<r.length;s++){var c=r[s];e[t].prototype[c]=function(t){return function(){return this["_"+t]=this["_"+t]||[],this["_"+t].push(Array.prototype.slice.call(arguments)),this}}(c)}var n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=("https:"===document.location.protocol?"https:":"http:")+"//cdn.treasuredata.com/sdk/4.1/td.min.js";var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(n,o)}}("Treasure",this);
</script>database毎に1つの_Treasure_クライアントオブジェクトを作成し、_trackPageview()_関数を呼び出してpageview trackingを初期化する必要があります。
デフォルトでは、インポートされた各レコードは、SDK backendサーバーで_time_ columnが挿入されます。クライアント側のclockを使用する場合は、td.set_で_time columnを設定します。
JavaScript SDKは、Windows10およびMicrosoft Edgeブラウザの"td_os"、"td_os_version"、"td_browser"を解析しません。新しいUser Agentパーサーライブラリはこの組み合わせをサポートするように更新されていますが、受け入れられないパフォーマンスの制限も導入されています。td_user_agentに含まれるローUser Agent文字列を解析するには、Presto TD_PARSE_AGENT UDFを使用することをお勧めします。
_trackPageview()_関数を呼び出すことで、Treasure Data JavaScript SDK Version 3.0のデフォルトログパラメータで詳しく説明されている以下のパラメータが自動的にログに記録されます。
各eventは非同期で実行されます。
- 以下のコードスニペットを追加して、地域のendpoint、write-only API key、trackerオブジェクトを取得し、サイトからの情報を保存するTreasure Data databaseを指定します。
<script type="text/javascript">
// Configure an instance for your database
var td = new Treasure({
host: 'YOUR_REGION.TREASUREDATA.COM',
writeKey: 'YOUR_WRITE_ONLY_APIKEY_IS_HERE',
database: 'DATABASE_NAME'
});
// Enable cross-domain tracking
td.set('$global', 'td_global_id', 'td_global_id');
// Track pageview information to 'pageviews' table
td.trackPageview('pageviews');
</script>- カスタムパラメータを設定する場合は、_td.set()_関数を使用します。
// track pageview information to 'pageviews' table
td.set('pageviews', {foo: 'foo', bar: 'bar'});
td.trackPageview('pageviews');さまざまなドメインでのデータプライバシー規制、特にGDPRに準拠するために、Treasure Data Javascript SDKはanonymousモードで動作します。これは、個人を特定できる特定のeventメタデータを収集しないことを意味します。具体的には、デフォルトでanonymousモードでは以下の情報は収集されません:
td_ip - requestのIP(server-sideで追加)
td_client_id - クライアントのuuid(1st party cookie - Anonymous IDを参照)
td_global_id - クライアントのuuid(3rd party cookie - Anonymous IDを参照)
個々のユーザーを追跡し、ユーザーsession内およびsession間でデータを分析し、追跡された行動を実際の個人と関連付けるなどを行う場合は、td_client_idとtd_global_idが必要です。
個人情報を収集するかどうかを判断するには、会社のデータプライバシー責任者および法務顧問とデータ収集ポリシーを確認する必要があります。個人の追跡を有効にすることを決定した場合は、consent management systemと統合して、個々のユーザーのtrackingのオプトインを追跡することをお勧めします。ユーザーのconsentを判断したら、JS SDKのsignedモードを有効にして、eventでこれらの属性をキャプチャできます:
td.setSignedMode()_trackEvent()_関数を使用して、ページビューに加えてカスタムeventを追跡することもできます。次の例では、_button_はeventがログに記録されるtableの名前です。引数としてeventに追加情報とコンテキストを渡すことができます。
var buttonEvent2 = function () {
td.trackEvent('button', {
number: 1
});
// doButtonEvent(1);
};このビデオは、JavaScript SDKを使用したwebsite trackingの手順を示しています。
JavaScript SDKはREST API endpointを使用してデータをインポートし、server-sideのバッファリングのため、databaseへのインポートが反映されるまでに数分かかる場合があります。
- X-TD-Data-Type: k—Eventコレクターは複数のデータタイプを処理します。'k'はそのうちの1つです。複数のレコードを処理できます。
- 単一レコード
$ curl -X POST -H 'Content-Type: application/json' -H 'X-TD-Write-Key: your_write_apikey' \
--data-binary '{"name":"komamitsu", "num":1234}' \
https://your_region.treasuredata.com/js/v3/event/your_db/your_table- 複数レコード
$ curl -X POST -H 'Content-Type: application/json' -H 'X-TD-Write-Key: your_write_apikey' \
-H 'X-TD-Data-Type: k'
--data-binary '{"your_db.your_table":[{"time":1403147720, "name":"komamitsu", "age":41},{"time":1403147721, "name":"kzk", "age":29}]}' \
https://your_region.treasuredata.com/js/v3/event前の例を試す際は、time値を現在のUNIX time値に変更してください。7日より古いtimestamp、または現在の日付より3日先のtimestampは無視されます。