ConverlayConverlay

APIリファレンス

@converlay/sdkの完全なTypeScript型定義です。

createConverlay(config)

Converlayトラッキングインスタンスを作成するファクトリ関数です。すべての状態はクロージャ内に存在し、グローバルな副作用はありません。

ConverlayConfig
interface ConverlayConfig {
  /** Your .myshopify.com domain (required). */
  shopDomain: string
  /** Collection endpoint. Default: "https://converlay.app/api/events/collect" */
  endpoint?: string
  /** Send page_view on init. Default: false */
  autoPageView?: boolean
  /** Enable debug logging. Default: false */
  debug?: boolean
  /** Initial consent state. Default: both granted */
  consent?: ConsentInput
}

ConverlayInstance

createConverlay()が返すオブジェクトです。

ConverlayInstance
interface ConverlayInstance {
  /** Track a named event with optional properties. */
  track: (eventName: string, properties?: TrackProperties) => void
  /** Identify the current user for enhanced matching. */
  identify: (data: IdentifyData) => void
  /** Update consent state. */
  setConsent: (consent: ConsentInput) => void
  /** Force-send any queued events immediately. */
  flush: () => Promise<void>
  /** Cleanup timers and state. */
  destroy: () => void
}

TrackProperties

track()に渡すプロパティです。任意の追加キーも受け付けます。

TrackProperties
interface TrackProperties {
  ecommerce?: EcommerceData
  userData?: UserData
  pageType?: string
  [key: string]: unknown
}

IdentifyData

identify()に渡す顧客データです。すべてのフィールドはオプションです。

IdentifyData
interface IdentifyData {
  customerId?: string
  email?: string
  phone?: string
  firstName?: string
  lastName?: string
}

同意の型

ConsentInputはSDKに渡す形式です。ConsentDataはイベントペイロードに含まれるワイヤーフォーマットです。

ConsentInput & ConsentData
interface ConsentInput {
  analytics?: boolean
  marketing?: boolean
}

interface ConsentData {
  analytics: boolean
  marketing: boolean
  ad_user_data: boolean
  ad_personalization: boolean
}

Eコマースの型

EcommerceData & EcommerceItem
interface EcommerceData {
  transaction_id?: string
  value?: number
  currency?: string
  items?: EcommerceItem[]
  item_list_id?: string
  item_list_name?: string
  search_term?: string
}

interface EcommerceItem {
  item_id: string
  item_name?: string
  item_variant?: string
  price: number
  quantity: number
}

UserData

高度なマッチング用のユーザーデータです。プレーンテキストで収集エンドポイントに送信され、転送前にサーバーサイドでハッシュ化されます。

UserData
interface UserData {
  email?: string
  phone?: string
  firstName?: string
  lastName?: string
  city?: string
  state?: string
  country?: string
  postalCode?: string
}

EventPayload

収集エンドポイントに送信されるワイヤーフォーマットのペイロードです。これを直接構築する必要はありません。SDKがtrack()identify()の呼び出しから自動的に構築します。

EventPayload
interface EventPayload {
  event_id: string
  event_name: string
  shop_domain: string
  page_url: string
  referrer: string
  client_id: string
  session_id: string
  fbp: string
  fbc?: string
  gclid?: string
  ttclid?: string
  fbclid?: string
  utm_source?: string
  utm_medium?: string
  utm_campaign?: string
  utm_term?: string
  utm_content?: string
  customer_id?: string
  page_type?: string
  user_data: WireUserData
  consent_data: ConsentData
  ecommerce: WireEcommerceData | null
  user_agent: string
  sdk_version: string
}