Skip to content
Last updated

Javascript SDK Version 3.1について

JavaScript SDK v3.1から、セキュリティを向上させ、ingestionのボトルネックを排除するために、新しいingestion endpointがサポートされています。この新しいendpointを使用することで、以下の拡張機能と変更が導入されます:

表示される変更

  • これらの値は入力されなくなります。顧客はtd_user_agentからPrestoおよびHiveのTD_PARSE_AGENT関数を使用してそれらを取得する必要があります:

  • td_browser: クライアントbrowser

    • td_browser_version: クライアントbrowserバージョン
    • td_os: クライアントoperating system
    • td_os_version: クライアントoperating systemバージョン
    • 注: td_user_agentは、navigator.userAgent APIを介してJavaScriptを使用して入力されます
  • JSSDK/versiontd_user_agentプロパティの末尾に追加されます

    • すなわち、td_user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36;JSSDK/3.1.1"
  • 新しいendpointは、requestが受信されるとAPIKEYを検証します。APIKEYが無効な場合、即座に401エラーを返します。

    • {"code":401,"message":"Credentials are required to access this resource."}

Treasure Data JavaScript SDK Version 3.1のログパラメータ

TD JS SDKは、trackPageview関数を使用して以下のパラメータをログに記録します。

パラメータ説明デフォルト
td_versiontd-js-sdkのバージョンX
td_client_idクライアントのuuidNO
td_charset文字セットX
td_descriptiondescriptionメタタグX
td_languageブラウザ言語X
td_color画面のcolor depthX
td_screen画面解像度X
td_viewportviewportサイズX
td_titleドキュメントタイトルX
td_urlドキュメントURLX
td_user_agentブラウザuser agentX
td_platformブラウザplatformX
td_hostドキュメントhostX
td_pathドキュメントpathnameX
td_referrerドキュメントreferrerX
td_ipリクエストIP(server)NO
td_browserクライアントbrowser(server)X
td_browser_versionクライアントbrowserバージョン(server)X
td_osクライアントoperating system(server)X
td_os_versionクライアントoperating systemバージョン(server)X
td_global_id3rd party cookieNO
td_ssc_idServer Side CookieNO

追跡されるデフォルトパラメータには、グローバルなプライバシー法への準拠を確保するためにtd_client_idtd.ip、およびtd_global_idが含まれていません。td.setコマンドを呼び出すことで有効にできます。

新しいendpointの使用方法

新しいJavaScript endpointをオプトインするための新しいオプションuseNewJavaScriptEndpointを導入します。これにはtrueまたはfalse値があります。このオプションを有効にする場合は、新しいendpointを指すようにhost設定も変更する必要があります。

host設定は、使用する環境に応じて以下の値を持つ必要があります:

_useNewJavaScriptEndpoint_をfalseに設定するか、設定しないことでこの機能をオプトアウトする場合は、hostを古い設定に更新してください。

var td = new Treasure({
  database: 'foo',
  writeKey: 'your_write_only_key',
  useNewJavaScriptEndpoint: true,
  host: 'us01.records.in.treasuredata.com'
});

FAQ

  • 以前のバージョンでサポートされている既存の関数を使用できますか?
    • はい。機能は現状のままです。
  • queryでtd_browser、td_browser_version、td_os、td_os_versionを取得するにはどうすればよいですか?
-- Presto
-- element_atはkeyが欠落している場合でも処理できます。
SELECT
  element_at(
    td_parse_agent(td_user_agent) ,
    'name'
  ) AS td_browser,
  element_at(
    td_parse_agent(td_user_agent) ,
    'version'
  ) AS td_browser_version,
  element_at(
    td_parse_agent(td_user_agent) ,
    'os'
  ) AS td_os,
  element_at(
    td_parse_agent(td_user_agent) ,
    'os_version'
  ) AS td_os_version
FROM
  web_access

  -- OR, 以下はHiveとPrestoの両方で機能します
  SELECT
    td_parse_agent(td_user_agent) ['name'] AS td_browser,
    td_parse_agent(td_user_agent) ['version'] AS td_browser_version,
    td_parse_agent(td_user_agent) ['os'] AS td_os,
    td_parse_agent(td_user_agent) ['os_version'] AS td_os_version
  FROM
    web_access

制限事項と変更された動作

Real-time segmentationを使用するには、Backendからのルーティング有効化が必要です。Treasure Data Supportに連絡して、ルーティングを有効にするアカウント、database、tableをお知らせください。バックエンドから実行できます。将来のリリースでこの制限を削除する予定です。