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 publish komutunu çalıştırın.
  • Paywall’lar: Adapty’de zaten bulunan ürünlerden bir paywall oluşturmak için adapty paywalls create komutunu ç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 create komutunu ç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 create komutuyla 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.

  1. Test etmek istediğiniz içeriklerin ID’lerini adapty paywalls list veya adapty flows list komutuyla bulun.

  2. İ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}]'

    --placement zorunludur. Paywall testi için bir paywall placement, flow testi için ise bir flow placement gerekir. Flow testi için her kolda flow_id ile birlikte --flows parametresini kullanın. Bir kolun ayrıca "title":"A" gibi bir title değeri de olabilir.

  3. Taslağı inceleyin ab-tests get komutuyla.

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

Warning

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 completed durumuna geçer.
  • Placement’in bu segment için kitlesi yok: start komutu, 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:

FlagDurdurmadan 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-contentKitle 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
TerminaldeCLI 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 ileCLI, sormadan isteği gönderir.
--json ile, bir pipe içinde veya terminal yokkenCLI 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ış koduNedenNe yapmalı
1Prompt’ta y dışında bir şey girdiniz. Hiçbir şey gönderilmedi.Göndermek istiyorsanız komutu tekrar çalıştırın.
2CLI, 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.
3Giriş 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.
4Adapty isteği reddetti. Mesaj, nedeni belirtiyor.Adapty’den Gelen Mesajlar bölümüne bakın.
5CLI, Adapty’ye ulaşamadı.İnternet bağlantınızı kontrol edin ve komutu tekrar çalıştırın.
6Geri 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.
130Prompt’ta Ctrl+C’ye bastınız. Hiçbir şey gönderilmedi.—

Adapty’den Gelen Mesajlar

MesajNe 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

BayrakZorunluAçıklama
--typeHayırflow (varsayılan) veya paywall.
--stateHayırlive, draft, completed, inactive veya archived.
--placementHayırYalnızca bu placement’a ait testler (ID). Birden fazla placement için bayrağı tekrarlayın.
--segmentHayırYalnızca tam olarak bu segment için çalışan testler (ID). Birden fazla segment için bayrağı tekrarlayın.
--searchHayırYalnızca başlığı bu metni içeren testler.
--pageHayırSayfa numarası. Varsayılan: 1.
--page-sizeHayırSayfa 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

FlagGerekliAçıklama
--titleEvetTest başlığı.
--paywallsİkisinden biriJSON formatında paywall testi kolları: [{"paywall_id":"<id>","weight":50,"title":"A"}, …]. title isteğe bağlıdır.
--flowsİkisinden biriJSON formatında flow testi kolları; paywall_id yerine flow_id kullanılır.
--goalHayırTestin neyi ölçmeyi hedeflediği.
--placementEvetTestin planlandığı placement (ID). Paywall testi bir paywall placement’ı, flow testi ise bir flow placement’ı gerektirir.
--segmentHayırTesti belirli bir segment için planlar (ID). --all-users ile birlikte kullanılamaz.
--all-usersHayırTesti 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

BayrakZorunluAçıklama
--placementEvetTestin çalıştırılacağı placement (ID).
--segmentİkisinden biriTesti belirli bir segment için çalıştır (ID).
--all-usersİkisinden biriTesti tüm kullanıcılar için çalıştır.
--yes, -yHayırSormadan başlat. --json ile veya pipe içinde kullanıldığında zorunludur.

ab-tests stop

BayrakZorunluAçıklama
--winnerÜçünden biriBu kolun paywall veya flow’unu (ID) tüm kitleye göster.
--otherÜçünden biriTestte yer almayan bir paywall veya flow göster (ID).
--no-contentÜçünden biriKitleyi placement’tan kaldır. Tüm kullanıcılar testi için reddedilir.
--yes, -yHayırOnay sormadan durdur. --json ile veya bir pipe içinde zorunludur.

ab-tests replace

FlagZorunluAçıklama
--titleEvetYeni testin başlığı.
--placementEvetYeni testin placement’ı (ID). Farklı bir placement, kitleyi o placement’a taşır.
--paywalls or --flowsEvetcreate komutundaki gibi yeni testin kolları.
--goalHayırYeni testin kanıtlamayı hedeflediği şey.
--yes, -yHayırOnay 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

FlagZorunluAçıklama
--yes, -yHayırOnay istemeden arşivle. --json ile veya pipe içinde kullanırken zorunludur.

Sırada ne var