用途:为 customerio-node 提供生产可用的 SDK 集成模式,覆盖类型安全封装、重试、事件批量与单例管理,适用于需要在 TypeScript 项目中稳定调用 Customer.io Track/App API 的场景。
主要能力:一是类型安全客户端包装,用联合类型约束事件名与数据(如 signed_up、plan_changed、feature_used、checkout_completed、subscription_cancelled),并对用户属性做类型约束;二是指数退避重试,默认 maxRetries 3、baseDelayMs 1000、maxDelayMs 30000、jitterFactor 0.3,4xx(429 除外)不重试;三是事件批量队列,按 batchSize(默认 50)与 flushIntervalMs(默认 5000)自动 flush,并以并发 10 分块提交,配合 SIGTERM 优雅关闭;四是单例工厂,按需读取 CUSTOMERIO_SITE_ID、CUSTOMERIO_TRACK_API_KEY、CUSTOMERIO_APP_API_KEY、CUSTOMERIO_REGION,缺失时抛错,并提供 reset 用于测试。
使用方式:需先安装 customerio-node,建议使用 TypeScript 项目,并明确自身事件分类。按资料示例,从环境变量读取凭据创建 TrackClient/APIClient,通过 TypedCioClient 或 CioClientFactory 获取实例后调用 identify、track、suppress、destroy 等方法,高流量场景用 CioBatchTracker.enqueue 入队。
限制与注意:资料未提供具体安装命令、价格或平台支持范围;不要将客户端 token 或完整事件负载写入日志,集成测试应使用合成 profile 并只记录状态码与关联 ID;队列内存增长时需降低 batchSize 或提高 flush 频率。