API Referansı
Selwise sınıfının tüm üyeleri ve imzaları
Selwise sınıfının tüm genel üyeleri, 0.12.0 kaynak kodundan alınmış imzalarla. Konu anlatımı için ilgili sayfalara bağlanır. Dışa aktarılan diğer her şey (hook'lar, yardımcılar, tipler) Tipler ve Yardımcılar sayfasındadır.
import { Selwise } from '@selwise/react-native'; // default export da aynı sınıftır
const selwise = new Selwise();
init() bitmeden: olay üreten track ailesi (track, trackProductView, trackAddToCart, trackRemoveFromCart, trackSurfaceView, trackSurfaceClick, trackEnrichmentView, trackEnrichmentClick, trackSearchClick, trackRecommendationImpression, trackRecommendationClick) olayı sessizce atar. setScreen, trackScreenView, identify, logout, setConsent, getConsent, getSurfaces, getRecommendation*, search, trackOrder, getEnrichment, getScenarioInbox ve endpoints [Selwise] call init() before using the SDK hatası fırlatır. setCart, getCart, onCartChange ve resolveGoalBar init() öncesinde de çalışır; flush ve destroy hiçbir şey yapmaz.
Yaşam döngüsü
| Üye | İmza | Not |
|---|---|---|
init | (options: SelwiseInitOptions) => Promise<void> | Bir kez; ikinci çağrı yok sayılır. Bkz. Kurulum |
destroy | () => Promise<void> | Zamanlayıcıyı durdurur, kuyruğu gönderir ve yazar |
isInitialized | boolean | |
endpoints | Endpoints | Ham uç noktalar; init() öncesi hata fırlatır |
flush | () => Promise<void> | Kuyruğu gönderir; uçuştaki gönderimi bekler |
Kimlik, onay, ekran
| Üye | İmza |
|---|---|
identify | (siteUserId: string, traits?: Record<string, unknown>) => Promise<void> |
logout | () => Promise<void> |
setConsent | (snapshot: ConsentSnapshot) => Promise<void> |
getConsent | () => ConsentSnapshot |
setScreen | (pageUrl: string) => void |
trackScreenView | (pageUrl: string, metadata?: TrackOptions['metadata']) => void |
Ayrıntı: Kimlik, Onay ve Kuyruk, Event Takibi.
Olaylar ve sipariş
| Üye | İmza |
|---|---|
track | (name: string, options?: TrackOptions) => void |
trackProductView | (itemCode: string, metadata?) => void |
trackAddToCart | (itemCode: string, metadata?) => void |
trackRemoveFromCart | (itemCode: string, metadata?) => void |
trackOrder | (order: OrderInput) => Promise<{ success: boolean; created: boolean; id?: string }> |
Kampanya, widget, sepet
| Üye | İmza |
|---|---|
getSurfaces | (pageUrl?: string, context?: { pageType?; deviceType?; country?; behavior?; locale?: string; product?: ProductInput | null }) => Promise<Surface[]> |
recordSurfaceShown | (surface: Pick<Surface, 'id' | 'placement'>) => Promise<void> |
trackSurfaceView | (surface: Pick<Surface, 'id' | 'kind' | 'type'>) => void |
trackSurfaceClick | (surface, metadata?) => void |
dismissSurface | (surface) => Promise<void> |
resetDismissals | () => Promise<void> |
invalidateSurfaces | () => void |
getExperimentAssignments | () => ExperimentAssignment[] |
getTheme | () => Record<string, string> |
getSearchStatus | () => { enabled: boolean; testMode: boolean } |
subscribeNewsletter | (email: string, extra?: { fullName?: string; locale?: string; surfaceId?: string }) => Promise<{ success: boolean }> |
setCart | (cart: CartInput | null) => boolean |
getCart | () => DynamicCart |
onCartChange | (listener: (cart: DynamicCart) => void) => () => void |
resolveGoalBar | (surface: Pick<Surface, 'type' | 'content'>, options?: { locale?: string }) => GoalBarView |
trackGoalReached | (surface, detail: { step: number; threshold?: number; metric?: GoalMetric }) => boolean |
Ayrıntı: Kampanya ve Widget, Sepet ve Dinamik İçerik.
Senaryo, zenginleştirme
| Üye | İmza |
|---|---|
getScenarioInbox | (signal?: AbortSignal) => Promise<ScenarioInboxEntry[]> |
acknowledgeScenarioDeliveries | (acks: ReadonlyArray<ScenarioInboxAcknowledgement>, signal?) => Promise<void> |
getEnrichment | (code: string, slots: readonly string[], signal?) => Promise<EnrichmentResult> |
enrichmentForSlot | (result: EnrichmentResult, slot: string) => EnrichmentItem[] |
getEnrichmentSlots | () => string[] |
trackEnrichmentView | (item: Pick<EnrichmentItem, 'assignmentId' | 'placementKey'>) => void |
trackEnrichmentClick | (item, metadata?) => void |
invalidateEnrichment | () => void |
Yuva adı a-z, 0-9 ve tireden oluşur, en çok 64 karakterdir; boşluk ve alt çizgi tireye, harfler küçüğe çevrilir. Sonuç ürün koduna ve yuva kümesine göre önbelleklenir (en çok 20 ürün; kural ya da blok değişince sunucu damgası değişir ve önbellek geçersiz olur). Test modu ve segment elemesi sonuçta istemcide uygulanır. Hiçbir yuva çizmeyen kanalda getEnrichmentSlots() boş döner. Ayrıntı: Zenginleştirme: uygulama; SelwiseEnrichment bileşeni App Maker'dadır (Eklenti).
Öneri ve arama
| Üye | İmza |
|---|---|
getRecommendationWidgets | (pageUrl?: string) => Promise<RecommendationWidgetSummary[]> |
resolveRecommendationWidget | (widget: string | RecommendationWidgetSummary) => Promise<ResolvedRecommendationWidget> |
getRecommendationProducts | (widgetId: string, context?: RecommendationContext, signal?) => Promise<RecommendationProductsResult> |
trackRecommendationImpression | (widgetId: string, productItemCodes?: string[]) => void |
trackRecommendationClick | (widgetId: string, itemCode: string, position?: number) => void |
search | (query: string, options?: SearchOptions, signal?) => Promise<SearchResult> |
trackSearchClick | (query: string, itemCode: string, position?: number) => void |
Hata sınıfı
class SelwiseApiError extends Error {
readonly status: number; // HTTP durumu
readonly path: string; // örn. '/orders'
readonly body: string | undefined;
get isAuthError(): boolean; // 401 ya da 403
}
Başarısız (2xx olmayan) bir cevap SelwiseApiError fırlatır; ağ hataları altta yatan hatayla gelir. Fırlatanlar: trackOrder, getRecommendationWidgets, getRecommendationProducts, search, subscribeNewsletter. Hiç fırlatmayanlar: track ailesi, identify (hata günlüğe gider), getSurfaces (/config yüklenemezse boş liste), getEnrichment (hatayı yutar, boş sonuç verir), getScenarioInbox, acknowledgeScenarioDeliveries ve olay gönderimi. isAuthError çoğu zaman anahtarda mobile_write olmadığını gösterir.
try {
await selwise.trackOrder(order);
} catch (error) {
if (error instanceof SelwiseApiError && error.isAuthError) {
// anahtar eksik, iptal ya da mobile_write yok
}
}
Hata ayıklama için Sorun Giderme.
Son güncelleme: 10 Ekim 2026