Öneri ve Arama

Hook ve doğrudan çağrı

Uygulamada öneri ve arama sonuçlarını almak.

Öneriler — hook ile

import { SelwiseProvider, useRecommendationWidget } from '@selwise/react-native/react';

Uygulamanızı sağlayıcıyla sarın:

<SelwiseProvider client={selwise}>{children}</SelwiseProvider>

Ardından herhangi bir bileşende widget'ın ürünlerini alın. Hook, ürünleri, yükleniyor durumunu ve gösterim/tıklama bildirimi için yardımcıları döndürür.

Ürün sayfasında bağlamı doğru alanla gönderin

Bakılan ürünün kodu currentProductId alanıyla gönderilir. Bu platformun her yerinde aynı değere "ürün kodu" dendiği için productItemCode, itemCode veya sku yazmak akla yakın gelir — ama bunlar kabul edilir ve sessizce yok sayılır: sonuçta "Benzer Ürünler" bakmakta olduğunuz ürünü önerir, "Birlikte Alınanlar" genel listeye düşer ve hiçbir yerde hata görünmez.

Sepeti tamamlayan şerit

Kargo Bedavaya Tamamla stratejisindeki bir widget, uygulamanın setCart ile bildirdiği sepete göre ürün seçer. SDK sepeti bu widget'ın ürün isteğine kendisi ekler; başka stratejilere göndermez. Sepet bildirilmemişse şerit boş döner.

useRecommendationWidget böyle bir şeridi sepetle birlikte kendiliğinden günceller; reload çağırmanız gerekmez:

DurumHook ne yapar
Sepet değişti (tutar, adet, para birimi ya da satırlar)Kısa bir beklemeden sonra (art arda gelen değişiklikler tek istek olur) aynı şeridi yeni sepet için yeniden sorar.
Yeni ürünler geldiŞerit ekranda kalır, kartlar yerinde değişir. loading bu sırada true olmaz; şeridi yeniden çizmeniz gerekmez.
Sepet eşiği geçtiSunucu ürün döndürmez, products boş olur; şeridi çizmeyin.
Sepet artık bilinmiyor (setCart(null))İstek atılmaz, products boş olur.

Şerit aynı şerit olarak kaldığı sürece yenileme ikinci bir gösterim sayılmaz. Şerit boşalıp sepet değişince yeniden dolarsa, bu yeni bir gösterimdir — web'de de aynı kural geçerlidir. Hook'un döndürdüğü followsCart alanı, şeridin sepeti izleyip izlemediğini söyler.

Satır kodlarını da gönderin: setCart çağrısındaki codes listesi (sepetteki ürünlerin kodları) olmadan şerit, sepette zaten olan ürünü önerebilir. Akinon App Maker eklentisi bunu sepetten kendisi okur; eklentinin hazır şeritleri (RecommendationStrips) de sepeti hook'la aynı kurallarla izler.

Bu davranış SDK'nın 0.10.0 sürümüyle gelir. Hook kullanmayan bir uygulama aynı davranışı paketin dışa aktardığı RecommendationWidgetLoader ile kurabilir; hook da eklenti de onu kullanır.

Hook'suz kullanım

React ağacı dışında (örneğin bir servis katmanında) doğrudan istemci üzerinden de çağırabilirsiniz. Tam imzalar için paketin README dosyasına bakın.

Gösterim ve tıklama bildirimi

Öneri performansının panelde görünmesi için gösterim ve tıklamaları bildirmeniz gerekir. Web'de bu otomatiktir; mobilde arayüzü siz çizdiğiniz için bildirimi de siz yaparsınız.

Bildirim yoksa rapor boş kalır

Ürünleri çizip gösterim bildirmezseniz öneri widget'ı panelde sıfır gösterim gösterir ve performansını ölçemezsiniz. Liste görünür olduğunda gösterimi, karta dokunulduğunda tıklamayı bildirin.

A/B deneyleri

Bir öneri widget'ı üzerinde çalışan deney uygulamada da çalışır. SDK, bir şeridin ürünlerini istemeden önce ziyaretçinin hangi kolda olduğuna bakar. Widget'ı kimliğiyle çağıran bir uygulamanın bunun için kod değiştirmesi gerekmez.

Deney moduUygulamada ne olur
different_moduleKolun şeridi, kontrol şeridinin yerine çizilir. Ürünler o şeridin kimliğiyle istenir; sonuçtaki widgetId ve widget alanları o şeridi anlatır, sourceWidgetId ise sizin istediğiniz widget'ı. Kolun şeridi kendi başına pasif olabilir: deney çalıştığı sürece sunucu onun ürünlerini döndürür.
config_overrideŞerit aynı kalır. Kolun başlığı, alt başlığı, görünüm tipi ve stilleri sonuçtaki widget alanına uygulanır.

Strateji ve ürün sayısı gibi ürün seçimini değiştiren ayarlar, ürünleri seçen sunucunun işidir. SDK ürün isteğine ziyaretçinin kolunu ekler, sunucu da kolun stratejisini ve ürün sayısını kayıtlı deneyden okuyarak uygular — web'deki widget da aynısını yapar. SDK kartları kırpıp yeniden sıralayarak bunları taklit etmez; şeride sunucunun döndürdüğü ürünler çizilir.

Başlığı kendi sabit metninizden değil, hook'un döndürdüğü widget alanından (widget?.title) çizin. Aksi halde bir başlık deneyinin iki kolu uygulamada aynı görünür. Akinon App Maker eklentisinin hazır şeritleri (RecommendationStrips) bunu kendisi yapar.

Ziyaretçi deneye ne zaman sayılır

Ziyaretçi, şeridin ilk gösterim bildiriminde (trackImpression ya da trackRecommendationImpression) deneye sayılır: her kol için, uygulama açık kaldığı sürece bir kez. Web'de de an budur ve her kolda aynıdır; karşılaştırmayı adil kılan da budur. Gösterim bildirilmezse uygulamanın ziyaretçileri deney sonuçlarında hiç görünmez. Test modundaki bir cihaz deneye sayılmaz.

Gösterim ve tıklama, ziyaretçiye gerçekten çizilen şeridin kimliğiyle ve o şeride verilen cevaba göre kaydedilir; bildirirken sonuçtaki widgetId alanını kullanın (hook bunu kendisi yapar). Listedeki widget'ın kimliğini gönderseniz bile SDK onu o widget için son cevaplanan şeride çevirir.

Deneyin bir Kitle adımı varsa şerit deneye yalnızca kitleyle eşleşen bir ekranda girer. Eşleşmeye şerit istendiği anda bakılır: setScreen ile bildirdiğiniz ekran adı, mobil cihaz, sunucunun bulduğu ülke, ölçülen sepet, segmentler ve test modu. Sayfa türü ya da ekrandaki ürün gibi yalnızca kampanyalar için verilen bilgilere dayanan bir kural şeritte eşleşmez: ziyaretçi canlı şeridi görür ve deneye sayılmaz.

SDK kolları uygulama açılışında bir kez sorar ve her şerit bu cevabı bekler. Cevaptan önce istenen bir şerit herkese kontrolü gösterirdi.

Şerit çizilmeyen kol

Ziyaretçinin kolu bir şeride hiçbir şey çizmiyorsa sonuç hidden: true ile döner ve ürün isteği atılmaz; şeridi çizmeyin. Öneri deneylerinde holdout kolu (yüzeyi hiç görmeyen kol) kurulamaz: bir şeridin çizilip çizilmeyeceği sunucunun cevabına bağlıdır ve o istek de kaydedilir. Yine de böyle bir kol gelirse şerit çizilmez ve ziyaretçi deneye sayılmaz.

Sepeti okuyan kol

Bir kol, sepeti okumayan bir şeridin yerine bir Kargo Bedavaya Tamamla şeridi koyabilir. SDK bunu kolun şeridine göre değerlendirir: sepeti o şeridin isteğine ekler ve hook şeridi sepetle birlikte günceller. Kontrol şeridinin kendi stratejisi bu kararı vermez.

Bu davranış SDK'nın 0.11.0 sürümüyle gelir. Daha eski bir SDK her ziyaretçiye kontrol şeridini gösterir ve kimseyi deneye saymaz.

Arama

import { useSelwiseSearch } from '@selwise/react-native/react';

const { query, setQuery, hits, loading, isZeroResults, trackClick } = useSelwiseSearch({
  limit: 20,
  minChars: 2,
});

isZeroResults alanı, sonuçsuz arama ekranınızı çizmek için kullanılır. Sonuçsuz aramalar panelde de listelenir — bkz. Sonuçsuz Aramalar.

Sayfa hedefleme

Öneri widget'ının mobilde görünmesi için panelde sayfa hedeflemesinin sentetik ekran adlarınızla eşleşmesi gerekir — app://product gibi. Bkz. Event Takibi.

Sepete ekleme

SDK sepete ekleme işlemini yapmaz; uygulamanızın kendi sepet servisi yapar. SDK'nın görevi olayı kaydetmektir:

selwise.track('add_to_cart', { productItemCode: 'SKU-001', quantity: 1 });

Öneri yanıtındaki her ürün, sepete eklenecek kodunu kendisi taşır (cartCode; boşsa itemCode geçerlidir) ve hangi ürünlerle kardeş olduğunu groupCode alanında bildirir — bkz. Varyant Gruplama.

Son güncelleme: 9 Ekim 2026