On this page

For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.

Node.js SDK 移行ガイド

Amplitudeの最新Node.js SDK(@amplitude/analytics-node)は、プラグインアーキテクチャと組み込み型定義を備えています。最新の Node.js SDK は、メンテナンス Node.js SDK @amplitude/nodeと下位互換性がありません。

@amplitude/analytics-nodeに移行するには、依存関係とインストルメンテーションを更新してください。

用語

  • @amplitude/node:メンテナンスNode.js SDK
  • @amplitude/analytics-node:最新のNode.js SDK

依存関係

package.json を更新してメンテナンス Node.js SDK をアンインストールし、最新の Node.js SDK をインストールします。

json
{
  "dependencies": {
    "@amplitude/node": "*",
    "@amplitude/analytics-node": "^1"
  }
}

npm install @amplitude/analytics-nodeを使用して@amplitude/analytics-nodeをインストールします。

インスツルメンテーション

最新のNode.js SDKでは、インストルメンテーションイベントを行うための新しいAPIが提供されています。移行するには、いくつかのコールを更新します。次のセクションでは、どの呼び出しが変更されたかについて詳しく説明します。

初期化

メンテナンス Node.js SDK は名前空間のインポートのみをサポートしています。 最新のNode.js SDKは、名前空間インポート(import * as amplitude from '@amplitude/analytics-node')と名前付きインポート(import { init } from '@amplitude/analytics-node')の両方をサポートしています。このドキュメントの例では、名前付きインポートを使用しています。

SDKを初期化するには、有効なAmplitude APIキーと設定パラメータを使用してinit()を呼び出します。

js
import * as Amplitude from "@amplitude/node";
import { init } from "@amplitude/analytics-node";
var options = {};
const client = Amplitude.init(AMPLITUDE_API_KEY, options);
init(API_KEY, options);

設定

最新のNode.js SDKでは異なる設定形式が採用されています。最新のNode.js SDKは、一部の設定オプションをサポートしなくなりました。

イベントの記録

logEvent()APIはtrack()にマップされます。

js
import { track } from '@amplitude/analytics-node';
const eventProperties = {
    buttonColor: 'primary',
};
client.logEvent({
track({
  event_type: 'Button Clicked',
  user_id: 'user@amplitude.com',
  event_properties: eventProperties
});

フラッシュ

flush()APIは依然として同じです。

js
import { flush } from "@amplitude/analytics-node";
client.flush();
flush();

Identify

identify()APIでは異なるシグネチャを使用します。メンテナンスNode.js SDKのシグネチャは(userId: string | null, deviceId: string | null, identify: Identify)です。最新のNode.js SDKのシグネチャは(identify: Identify, eventOptions?: EventOptions)です。EventOptionsに関する詳細については、EventOptionsリファレンスを参照してください。

js
import { identify, Identify } from "@amplitude/analytics-node";
const identifyObj = new Identify();
identifyObj.set("location", "LAX");
client.identify("user@amplitude.com", null, identifyObj);
identify(identifyObj, {
  user_id: "user@amplitude.com",
});

ミドルウェア

ミドルウェアは、最新Node.js SDKのプラグインにマップされます。最新のNode.js SDKは、エンリッチメントプラグインと送信先プラグインという2つのプラグインタイプをサポートしています。次の例では、イベント情報を記録しています。

js
+ import { add } from '@amplitude/analytics-node';
+ import { NodeConfig, EnrichmentPlugin, Event, PluginType } from '@amplitude/analytics-types';
- const loggingMiddleware: Middleware = (payload, next) => {
- console.log(`[amplitude] event=${payload.event} extra=${payload.extra}`);
- next(payload);
}
+ export class AddLogEventPlugin implements EnrichmentPlugin {
+ name = 'log-event';
+ type = PluginType.ENRICHMENT as const;
+ config?: NodeConfig;
+ async setup(config: NodeConfig): Promise<undefined> {
+ this.config = config;
+ return;
+ }
+ async execute(event: Event): Promise<Event> {
+ console.log(`[amplitude] event=${event}`);
+ return event;
+ }
+ }

addEventMiddleware()APIはadd()にマップされます。

js
+ import { add } from '@amplitude/analytics-node';
- client.addEventMiddleware(new Middleware())
+ add(new Plugin());

Was this helpful?