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
}이커머스 타입
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
}