A/B testlerini CLI'dan çalıştırın
Adapty CLI, adapty ab-tests komutu altında terminalden paywall veya flow’ların standart A/B testlerini çalıştırır. Bir testi taslak olarak oluşturabilir, bir placement üzerinde tek bir kitle için başlatabilir, kazananı belirleyerek durdurabilir, canlı bir testi değiştirilmiş biriyle değiştirebilir ve eski testleri arşivleyebilirsiniz.
Bir AI ajanının testlerinizi çalıştırmasına izin vermek, birkaç uygulama genelinde bir testi komut dosyasıyla yönetmek ya da kontrol panelini açmadan bir testi başlatmak veya durdurmak için kullanın.
Düzenli bir test, bir placement’taki bir kitlenin kullanıcılarını iki veya daha fazla paywall arasında ya da iki veya daha fazla flow arasında böler. Testi birkaç placement genelinde çalıştırmak için kontrol panelindeki crossplacement testi kullanın. ab-tests komutları test sonuçlarını döndürmez. En iyi olma olasılığı gibi sonuçları görmek için kontrol panelini kullanın: A/B testi sonuçları ve metrikleri. Bir testin kullanıcılarına ait analizleri okumak için analiz komutlarını adapty analytics catalog içindeki A/B tests boyutuna göre filtreleyin.
Başlamadan önce
ab-tests konusu, CLI’ın geri kalanıyla aynı kurulum ve girişi kullanır. Bunu henüz yapmadıysanız, hızlı başlangıç kılavuzundaki 1. ve 2. adımları takip edin. Bu konu için CLI sürüm 0.14.0 veya üstü gereklidir. Sürümünüzü görmek için şunu çalıştırın: adapty --version.
Her komut, --app parametresinde uygulamanın UUID’sini alır. Bunu bulmak için şunu çalıştırın:
adapty apps list
Bir test, zaten mevcut olan içerikleri kullanır:
- Flow’lar: Bir flow, yalnızca yayınlandığında teste dahil edilir. Taslak hâlindeki veya yayınlanmamış değişiklikler içeren bir flow reddedilir. Bir flow’u yayınlamak için
adapty flows publishkomutunu çalıştırın. - Paywall’lar: Adapty’de zaten bulunan ürünlerden bir paywall oluşturmak için
adapty paywalls createkomutunu çalıştırın. Bir paywall’a yeni bir tasarım vermek için Paywall Builder aracını kullanın. - Placement’lar: Bir paywall testi, paywall placement’ı üzerinde; bir flow testi ise flow placement’ı üzerinde çalışır. Bir placement oluşturmak için
adapty placements createkomutunu çalıştırın. Uygulamanızın kodu o placement’ı getirene kadar yeni bir placement’tan herhangi bir şey gösterilmez. - Segment’ler: Testi yalnızca belirli kullanıcılar için çalıştırmak istiyorsanız önce
adapty segments createkomutuyla bir segment oluşturun.
Bu komutlar için komut referansına bakın.
Testleri listele ve oku
list komutu, --type paywall geçmediğiniz sürece flow testlerini gösterir. Bir uygulamanın tüm testlerini görmek için her tür için ayrı çalıştırın:
adapty ab-tests list --app <app-id> --type flow --page-size 100
adapty ab-tests list --app <app-id> --type paywall --page-size 100
Bir test şu durumlardan birinde olabilir: draft, live, completed, inactive veya archived.
Bir testin kollarıyla birlikte tamamını okumak için şunu çalıştırın:
adapty ab-tests get --app <app-id> <test-id>
get --json komutunda segment_ids, testin kitlesini belirtir: [] Tüm kullanıcılar anlamına gelir, null ise henüz kitle planlanmadığı anlamına gelir. Her kolun weight değeri ve paywall ya da flow ID’si bulunur. Bir kolu tanımlamak için paywall_title veya flow_name kullanın. Kolun title değeri, siz ayarlamadıkça boş kalır.
Test oluşturma
Yeni bir test taslak olarak oluşturulur. Hiçbir kullanıcı taslağı görmez, dolayısıyla istediğiniz zaman taslak oluşturabilir ve düzenleyebilirsiniz.
-
Test etmek istediğiniz içeriklerin ID’lerini
adapty paywalls listveyaadapty flows listkomutuyla bulun. -
İki veya daha fazla kol içeren taslağı oluşturun. Her kol, bir paywall veya flow ile bir ağırlıktan oluşur. Ağırlık, o kolu görecek kullanıcıların yüzdesidir ve tüm ağırlıkların toplamı 100 olmalıdır:
adapty ab-tests create --app <app-id> --title "Annual vs monthly" \ --goal "More revenue per user" --placement <placement-id> \ --paywalls '[{"paywall_id":"<paywall-a>","weight":50},{"paywall_id":"<paywall-b>","weight":50}]'--placementzorunludur. Paywall testi için bir paywall placement, flow testi için ise bir flow placement gerekir. Flow testi için her koldaflow_idile birlikte--flowsparametresini kullanın. Bir kolun ayrıca"title":"A"gibi birtitledeğeri de olabilir. -
Taslağı inceleyin
ab-tests getkomutuyla.
Bir taslağın placement’ı yalnızca planlanmış durumdadır. create komutu, --segment veya --all-users ile planlanmış bir kitle de alabilir. Bu planlanmış değerlerin kullanıcılar üzerinde hiçbir etkisi yoktur. Testi başlatırken placement ve kitleyi start komutuna tekrar geçin.
Bir test başlat
Başlatmayı geri alamazsınız. Test başladığı andan itibaren, belirlediğiniz kitledeki kullanıcılar mevcut paywall’larını veya flow’larını görmez.
Bir taslağı başlatmak için placement ve bir kitle belirtin: --all-users ya da --segment ile birlikte bir segment ID’si:
adapty ab-tests start --app <app-id> <test-id> --placement <placement-id> --segment <segment-id>
CLI, herhangi bir şey göndermeden önce başlatmanın ne yapacağını yazdırır ve Apply? [y/N] diye sorar. Testin nerede çalışacağı, placement’ın kitlesine göre belirlenir:
- Placement’in bu segment için bir kitlesi var (veya Tüm kullanıcılar için): Test o kitle üzerinde çalışır. Şu anda orada çalışan bir test durur ve
completeddurumuna geçer. - Placement’in bu segment için kitlesi yok:
startkomutu, placement’e en yüksek öncelikli yeni bir kitle ekler. Şu anda başka bir kitleyle eşleşen bu segmentteki kullanıcılar teste taşınır.
Teste başka bir kitleye göre daha düşük öncelik vermek için, önce segmenti o öncelikte bir kitle olarak ekleyin. Bu kullanıcıların şu an gördüğü paywall veya flow’u verin, ardından testi o kitle üzerinde başlatın. Bkz. Kitle önceliğini değiştirme.
Bir segment kitlesindeki değişikliğin tüm kullanıcılara ulaşması 20 dakika kadar sürebilir.
Yalnızca taslak hâlindeki bir test başlatılabilir. Testi yeniden çalıştırmak için yeni bir tane oluşturun: eski testi get ile okuyun, ardından aynı kollarla create ile yeni bir test oluşturun.
Bir testi değiştirme
update komutu testi baştan sona tekrar gönderir. Her seferinde --placement dahil tüm flag’leri belirtmen gerekir. Bir flag’i atlarsan Adapty o değeri temizler: örneğin hedef veya planlanan kitle.
adapty ab-tests update --app <app-id> <test-id> --title "Annual vs monthly, Q4" \
--goal "More revenue per user" --placement <placement-id> \
--paywalls '[{"paywall_id":"<paywall-a>","weight":70},{"paywall_id":"<paywall-b>","weight":30}]'
Canlı bir testte update yalnızca başlık ve hedefi değiştirir. Kolları, placement’ı ve kitleyi get’in döndürdüğü şekilde iletmelisiniz; farklı kollar veya başka bir placement reddedilir. Test başlangıç zamanını korur ve kullanıcılar kendi kollarında kalmaya devam eder. Tamamlanmış veya arşivlenmiş bir testi değiştiremezsiniz.
Canlı bir testin kollarını veya ağırlıklarını değiştirmek için testi değiştirin. replace, kontrol panelindeki Modify eylemidir:
adapty ab-tests replace --app <app-id> <test-id> --title "Annual vs monthly v2" \
--placement <placement-id> \
--paywalls '[{"paywall_id":"<paywall-a>","weight":80},{"paywall_id":"<paywall-b>","weight":20}]'
Canlı test durur ve completed durumuna geçer; sonuçları kendi ID’siyle saklanır. Aynı kitle üzerinde yeni bir ID ile yeni bir test başlar ve Adapty, kitledeki her kullanıcıyı yeniden bir kola atar. --placement parametresinde farklı bir placement belirtirseniz Adapty, kitleyi o placement’a taşır. Tüm kullanıcılar testini taşıyamazsınız.
Testi Durdurma
stop testi bitirir. Test kitlesindeki kullanıcıların bundan sonra ne göreceğini siz belirlersiniz. Aşağıdaki flag’lerden tam olarak birini geçin:
| Flag | Durdurmadan sonra |
|---|---|
--winner <id> | Kitlenin tamamı testin bir kolunu görür. Kolun paywall ID’sini veya flow ID’sini geçin. |
--other <id> | Kitlenin tamamı, testte yer almayan ve testle aynı türde bir paywall veya flow görür. |
--no-content | Kitle placement’tan çıkar; bu kullanıcılar eşleştikleri bir sonraki kitleye geçer. “All users” testi için kabul edilmez. |
adapty ab-tests stop --app <app-id> <test-id> --winner <paywall-b>
Test, completed durumuna geçer. Aynı kolları tekrar test etmek için Bir test başlat bölümünde açıklandığı gibi yeni bir test oluşturun. Kazananı seçmek için A/B testi sonuçları ve metrikler bölümüne bakın.
Testi arşivle
Yayında olmayan herhangi bir testi arşivleyebilirsiniz. Yayındaki bir testi arşivlemek için önce durdurmanız gerekir. Arşivlenmiş bir testi geri yükleyemezsiniz.
adapty ab-tests archive --app <app-id> <test-id>
Betiklerde ve ajanlarda onay
start, stop, replace ve archive işlemleri geri alınamaz; bu nedenle her biri bir şey göndermeden önce etkisini gösterir. Onay isteme şekli, komutun nasıl çalıştırıldığına bağlıdır:
| Komutun nasıl çalıştırıldığı | Ne olur |
|---|---|
| Terminalde | CLI etkiyi yazdırır ve Apply? [y/N] diye sorar. y veya yes yanıtı verirseniz CLI isteği gönderir. Başka bir yanıt verilirse CLI, kod 1 ile çıkar ve hiçbir şey göndermez. |
--yes ile | CLI, sormadan isteği gönderir. |
--json ile, bir pipe içinde veya terminal yokken | CLI hiçbir şey göndermez ve kod 6 ile çıkar. Hata mesajı etkiyi açıklar. |
Böylece bir script ya da agent, bir komutun etkisini önce okuyabilir: --yes olmadan çalıştırır, mesajı okur ve yalnızca biri o etkiyi onayladıktan sonra --yes ile tekrar çalıştırır.
Hatalar
| Çıkış kodu | Neden | Ne yapmalı |
|---|---|---|
| 1 | Prompt’ta y dışında bir şey girdiniz. Hiçbir şey gönderilmedi. | Göndermek istiyorsanız komutu tekrar çalıştırın. |
| 2 | CLI, göndermeden önce girişi reddetti: geçersiz bir UUID, JSON dizisi olmayan kollar, ID’si veya tam sayı ağırlığı olmayan bir kol, --paywalls ve --flows’un ikisinin birden ya da hiçbirinin belirtilmemesi veya iki durdurma seçeneği. | Mesajın adını verdiği flag’i düzeltin. |
| 3 | Giriş yapmadınız ya da Adapty kullanıcınızın uygulamaya erişimi yok. | adapty auth login ile giriş yapın ve uygulama ID’sini adapty apps list üzerinden bulun. |
| 4 | Adapty isteği reddetti. Mesaj, nedeni belirtiyor. | Adapty’den Gelen Mesajlar bölümüne bakın. |
| 5 | CLI, Adapty’ye ulaşamadı. | İnternet bağlantınızı kontrol edin ve komutu tekrar çalıştırın. |
| 6 | Geri alınamaz bir komut --yes olmadan ve cevap verecek kimse yokken çalıştırıldı. Hiçbir şey gönderilmedi. | Mesajdaki etkiyi okuyun, ardından komutu --yes ile tekrar çalıştırın. |
| 130 | Prompt’ta Ctrl+C’ye bastınız. Hiçbir şey gönderilmedi. | — |
Adapty’den Gelen Mesajlar
| Mesaj | Ne yapmalı |
|---|---|
The sum of the weights must equal 100, but has N. | Ağırlıkların toplamı 100 olacak şekilde değiştirin. |
Flow(<id>) must be published before adding to AB test. | Flow’u yayınlayın, ardından komutu tekrar çalıştırın. |
Paywalls cannot be changed in non-draft ab tests. veya Placement cannot be changed in non-draft ab tests. | Kolları ve placement’ı get komutunun döndürdüğü şekilde iletin ya da replace kullanın. |
AB Test from default audience can not be stopped. | Tüm kullanıcılar testinin durdurulduktan sonra bir paywall veya flow’a ihtiyacı var: --winner ya da --other kullanın. |
AB Test to stop must be live. | Yalnızca yayındaki bir test durdurulabilir veya değiştirilebilir. |
Live Ab Test can not be deleted. | Arşivlemeden önce testi durdurun. |
Komut referansı
Her komut, adapty apps list komutundan alınan uygulama UUID’si için --app parametresini alır. list dışındaki her komut, test kimliğini argüman olarak alır.
ab-tests list
| Bayrak | Zorunlu | Açıklama |
|---|---|---|
--type | Hayır | flow (varsayılan) veya paywall. |
--state | Hayır | live, draft, completed, inactive veya archived. |
--placement | Hayır | Yalnızca bu placement’a ait testler (ID). Birden fazla placement için bayrağı tekrarlayın. |
--segment | Hayır | Yalnızca tam olarak bu segment için çalışan testler (ID). Birden fazla segment için bayrağı tekrarlayın. |
--search | Hayır | Yalnızca başlığı bu metni içeren testler. |
--page | Hayır | Sayfa numarası. Varsayılan: 1. |
--page-size | Hayır | Sayfa başına test sayısı, en fazla 100. Varsayılan: 20. |
ab-tests get
Testin kollarıyla birlikte testi döndürür. Başka flag almaz.
ab-tests create
| Flag | Gerekli | Açıklama |
|---|---|---|
--title | Evet | Test başlığı. |
--paywalls | İkisinden biri | JSON formatında paywall testi kolları: [{"paywall_id":"<id>","weight":50,"title":"A"}, …]. title isteğe bağlıdır. |
--flows | İkisinden biri | JSON formatında flow testi kolları; paywall_id yerine flow_id kullanılır. |
--goal | Hayır | Testin neyi ölçmeyi hedeflediği. |
--placement | Evet | Testin planlandığı placement (ID). Paywall testi bir paywall placement’ı, flow testi ise bir flow placement’ı gerektirir. |
--segment | Hayır | Testi belirli bir segment için planlar (ID). --all-users ile birlikte kullanılamaz. |
--all-users | Hayır | Testi tüm kullanıcılar için planlar. |
ab-tests update
create ile aynı flag’leri alır ve --placement zorunludur. Dışarıda bıraktığınız bir flag temizlenir. Canlı bir testte yalnızca --title ve --goal değiştirilebilir. Aynı placement ve kitleyi tekrar geçirin.
ab-tests start
| Bayrak | Zorunlu | Açıklama |
|---|---|---|
--placement | Evet | Testin çalıştırılacağı placement (ID). |
--segment | İkisinden biri | Testi belirli bir segment için çalıştır (ID). |
--all-users | İkisinden biri | Testi tüm kullanıcılar için çalıştır. |
--yes, -y | Hayır | Sormadan başlat. --json ile veya pipe içinde kullanıldığında zorunludur. |
ab-tests stop
| Bayrak | Zorunlu | Açıklama |
|---|---|---|
--winner | Üçünden biri | Bu kolun paywall veya flow’unu (ID) tüm kitleye göster. |
--other | Üçünden biri | Testte yer almayan bir paywall veya flow göster (ID). |
--no-content | Üçünden biri | Kitleyi placement’tan kaldır. Tüm kullanıcılar testi için reddedilir. |
--yes, -y | Hayır | Onay sormadan durdur. --json ile veya bir pipe içinde zorunludur. |
ab-tests replace
| Flag | Zorunlu | Açıklama |
|---|---|---|
--title | Evet | Yeni testin başlığı. |
--placement | Evet | Yeni testin placement’ı (ID). Farklı bir placement, kitleyi o placement’a taşır. |
--paywalls or --flows | Evet | create komutundaki gibi yeni testin kolları. |
--goal | Hayır | Yeni testin kanıtlamayı hedeflediği şey. |
--yes, -y | Hayır | Onay istemeden değiştirir. --json kullanırken veya pipe içinde zorunludur. |
Yeni test, yerine geçtiği testin kitlesini devralır; bu nedenle replace komutu kitle flag’i almaz.
ab-tests archive
| Flag | Zorunlu | Açıklama |
|---|---|---|
--yes, -y | Hayır | Onay istemeden arşivle. --json ile veya pipe içinde kullanırken zorunludur. |
Sırada ne var
- A/B testleri için agent skill — ajanınızın testleri planlamasını, başlatmasını ve durdurmasını sağlayın; geri alınamayan her adımda onayınız alınır.
- A/B testi oluşturma, çalıştırma ve durdurma — kontrol panelinde aynı adımlar.
- A/B testi sonuçları ve metrikler — sonuçları nasıl okuyacağınız ve kazananı nasıl seçeceğiniz.