ConverlayConverlay

API-Referenz

Vollständige TypeScript-Typdefinitionen für @converlay/sdk.

createConverlay(config)

Factory-Funktion, die eine Converlay-Tracking-Instanz erstellt. Der gesamte Zustand befindet sich in Closures — keine globalen Nebeneffekte.

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

Das von createConverlay() zurückgegebene Objekt.

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

An track() übergebene Eigenschaften. Akzeptiert zusätzliche beliebige Schlüssel.

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

IdentifyData

An identify() übergebene Kundendaten. Alle Felder sind optional.

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

Einwilligungstypen

ConsentInput ist das, was Sie an das SDK übergeben. ConsentData ist das Wire-Format, das in Event-Payloads enthalten ist.

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

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

E-Commerce-Typen

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

Benutzerdaten für erweitertes Matching. Werden im Klartext an den Erfassungsendpunkt gesendet und serverseitig vor der Weiterleitung gehasht.

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

EventPayload

Das Wire-Format-Payload, das an den Erfassungsendpunkt gesendet wird. Sie erstellen dies nicht direkt — das SDK baut es aus Ihren track()- und identify()-Aufrufen zusammen.

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
}