Test ve tanılama
Test modu, tanılama bölümü ve tüm hata kodları.
Gerçek müşteriler gelmeden önce entegrasyonunu tıklamadan bildirime kadar bir kez baştan sona çalıştır. Bu sayfada test modunun nasıl çalıştığını, uçtan uca bir testi nasıl yapacağını, entegrasyon sayfasındaki tanılama bölümünün nerede olduğunu ve her hata kodunun ne anlama geldiğini öğrenirsin. Test modu tüm bunları para hareketi yaratmadan yapmanı sağlar.
Kısaca:
- Bir dönüşüm bildirimine
"test": trueekle. Her kontrolden geçer ama asla para hareketi yaratmaz. - Bir test gerçek bir ref kodu gerektirir, bu yüzden program yayında olmalı ve bir yayıncı bağlantısına ihtiyacın var.
- Entegrasyon sayfasındaki Son retler, reddedilen bildirimleri kodları ve ne yapman gerektiğiyle listeler.
- Reddedilen bir bildirim
erroriçinde bir kodla yanıtlanır:REF_PROGRAM_MISMATCHiçin 403, diğerleri için 422.
Test modu
Bir dönüşüm bildirimine "test": true ekle. Bildirim, gerçek bir bildirimin geçtiği her kontrolden geçer: API anahtarı, imza, ref kodu, çerez süresi, tutar ve komisyon kuralları. Ardından:
- asla para hareketi yaratmayan bir test dönüşümü olarak kaydedilir. Bakiye ayrılmaz ve yayıncı hiçbir şey kazanmaz;
- yanıt, gerçek bir bildirimin kazandıracağı komisyonu
"test": trueveREJECTEDdurumuyla gösterir; - entegrasyon sayfasında Test dönüşümleri altında görünür, dönüşüm listende veya istatistiklerinde değil;
- bir durum bildirimi ayarladıysan uç noktan
"test": trueileconversion.recordedalır.
Test dönüşümlerinin kendi sipariş numarası alanı vardır. Bir test, aynı sipariş numarasına sahip gerçek dönüşümü asla engellemez. Aynı orderId ile bir testi tekrarlamak ilk sonucu "duplicate": true ile döndürür. Her çalıştırma için yeni bir sipariş numarası kullan.
Uçtan uca test yap
Bir test, yalnızca gerçek bir tıklamadan sonra var olan gerçek bir ref kodu gerektirir. Bu yüzden program yayında, yani onaylanmış olmalı. Ayrıca program için bir yayıncı bağlantısına ihtiyacın var, örneğin kabul ettiğin bir yayıncıdan.
- Yayıncı bağlantısını bir tarayıcıda aç. Adres çubuğunda
?ref=...ile mağazana ulaşırsın. - Mağazanın kodu sakladığını kontrol et. Bkz. ref kodunu yakala.
- Bir sipariş ver veya bildirim kodunu
test: trueile tetikle. - Yanıtı ve entegrasyon sayfasındaki Test dönüşümleri listesini kontrol et.
API'yi elle dene
Ref kodunu adres çubuğundan kopyala ve cURL ile gönder:
curl -i -X POST https://cli.gs/api/v1/track/conversion \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ref": "PASTE_REF_CODE_HERE",
"orderId": "TEST-0001",
"amount": "149.99",
"currency": "EUR",
"customerType": "NEW",
"test": true
}'Çalışan bir kurulum 201 Created ile yanıt verir:
{ "ok": true, "conversionId": "cmg3x1q2w0001abcd9876efgh", "status": "REJECTED", "commission": 12, "duplicate": false, "confirmed": false, "test": true }İstekleri imzalıyorsan, İmzasız istekleri reddet seçeneğini açmadan önce İmzalı istekler sayfasındaki imzalı sürümle test et.
Tanılama bölümü
Entegrasyon sayfasının altında dört blok bulursun:
- Entegrasyon durumu iki kontrol gösterir. Bağlantı kontrolü günde bir kez hedef URL'ni bir ziyaretçi gibi açar. Ref parametresinin yönlendirmelerinden sağ çıktığını kontrol eder. Mağaza bildirimleri, mağazanın bildirdiği dönüşümleri her saat kaydettiğimiz hatalar ve gönderdiğimiz tıklamalarla karşılaştırır.
- Son retler, mağazandan kabul edemediğimiz bildirimleri en yenisi önce olacak şekilde listeler. Her kayıt kodu, zamanı, ref kodunu ve ne yapman gerektiğini gösterir.
- Test dönüşümleri, son test bildirimlerini tutar ve komisyonla listeler.
- Mağazana gönderilen postback'ler, durum bildirimine yapılan teslimatları durumları, denemeleri ve son HTTP koduyla listeler.

Programına atfedilemeyen retler orada listelenmez, örneğin hiç var olmayan bir ref kodu. API yanıtı her zaman kodu içerir, bu yüzden mağazanın aldığı yanıtları günlüğe kaydet.
Hata kodları
Reddedilen bir dönüşüm bildirimi error içindeki kodla yanıtlanır: REF_PROGRAM_MISMATCH için HTTP 403, diğerleri için HTTP 422. Aynı kodlar Son retler altında görünür.
| Kod | Anlamı | Ne yapmalı |
|---|---|---|
BAD_SIGNATURE | Ref kodu yerleşik kontrolünden geçemedi: değiştirilmiş, kesilmiş veya uydurulmuş. Bu, kodla ilgilidir, HMAC imzanla değil | Kodu ?ref= içinde geldiği haliyle sakla ve gönder |
REF_UNKNOWN | Ref kodu doğru biçimde ama bu kodla bir tıklama yok | Saklanan kodu gönderdiğini kontrol et, bir yer tutucu veya eski test değerini değil |
REF_PROGRAM_MISMATCH | Kod başka bir programdaki tıklamaya ait | Bağlantının ait olduğu programın API anahtarını kullan. Her programın kendi anahtarına ihtiyacı var |
INVALID_OCCURRED_AT | occurredAt gelecekte veya tıklamadan önce | Gerçek sipariş zamanını saat dilimiyle gönder; sunucu saatini eşitlenmiş tut |
REF_EXPIRED | Tıklama, programın çerez süresinden daha eski; komisyon hak edilmedi | Satış gerçekten geç geldiyse düzeltilecek bir şey yok. Geç bildiriyorsan occurredAt gönder |
PROGRAM_INACTIVE | Bildirim geldiğinde program yayında değildi | Bildirimler program onaylı veya duraklatılmışken kabul edilir |
INVALID_BASKET | Tutar okunamadı, negatif veya makul olmayan derecede büyük | Ondalık ayırıcı olarak noktayla gönder, ör. 49.90 |
DUPLICATE | Sipariş numarası olmayan aynı bildirim bir dakika içinde iki kez geldi; ikincisi yok sayıldı | Her zaman orderId gönder. Sipariş numarasıyla tekrarlar bunun yerine 200 ve duplicate: true ile yanıtlanır |
INVALID_EVENT | Takip pikselinde bilinmeyen eventType | SALE, LEAD veya SIGNUP kullan. API'de bu bir 400 invalid payload hatasıdır |
INTERNAL | Bizim tarafımızda bir hata | Yapman gereken bir şey yok; bize bildirildi. Bildirimi daha sonra yeniden dene |
Diğer yanıtlar
Bu yanıtlar Son retler altında görünmez:
| HTTP | error | Ne yapmalı |
|---|---|---|
| 400 | invalid payload (issues ile) veya invalid json body | İsteği düzelt; issues alanı adlandırır |
| 401 | missing bearer token, invalid api key | Güncel bir anahtarla Authorization: Bearer <anahtar> gönder |
| 401 | programme not active | Anahtar bir taslağa, reddedilmiş veya arşivlenmiş bir programa ait |
| 401 | signature required, invalid signature, stale or missing timestamp, invalid nonce, nonce already used | Bkz. İmzalı istekler |
| 404 | CONVERSION_UNKNOWN | Dönüşümü olmayan bir sipariş için iptal |
| 409 | CONVERSION_FINAL | Bir ödeme için zaten kilitlenmiş bir komisyon için iptal |
| 429 | rate limit exceeded | Anahtar başına dakikada 600'den fazla istek; yavaşla ve yeniden dene |
Yayına almadan önce kontrol listesi
- Ref kodu her açılış sayfasında yakalanıyor, yönlendirmelerden sağ çıkıyor ve siparişle birlikte kaydediliyor.
- Sunucun her ödenmiş siparişi
orderId, net tutar vecurrencyile bildiriyor. 5xx veya zaman aşımında yeniden deniyor. - Bir test dönüşümü, Test dönüşümleri altında beklediğin komisyonu gösteriyor.
- İadeler ve iptaller bir iptal isteği tetikliyor.
- İstekler imzalı ve İmzasız istekleri reddet açık.
- Mağazan gerçek siparişlerde
"test": truegöndermiyor.
Sonraki adımlar
Gerçek dönüşümler gelmeye başladığında bunları Dönüşümler altında incele: bkz. Dönüşümleri incele.