Placement ve segment komutları

Bu Adapty CLI komutları, placement’ları, bunların üzerindeki kitleleri ve bu kitlelerin hedeflediği segmentleri yönetir.

Placement’lar

Placement’lar, flow’larınızın, paywall’larınızın ve onboarding’lerinizin kullanıcılara ulaştığı yerlerdir. Bir placement’ın içerik türü oluşturma sırasında belirlenir; bu nedenle bir uygulamayı paywall’lardan flow’lara taşımak, mevcut placement’ları güncellemek yerine yeni placement’lar oluşturmayı gerektirir — migrate-placements skill bu komutları toplu olarak gerçekleştirmek için kullanılır.

adapty placements list

Bir uygulama için tüm placement’ları listeler.

adapty placements list --app <app-id>
FlagGerekliAçıklama
--appEvetUygulama ID’si (UUID)

Sayfalama flag’lerini destekler.

Her öğe id, developer_id, title ve is_active alanlarını içerir. is_active, aktif bir placement için true, pasif bir placement için false değerini alır.

adapty placements get

Belirli bir placement için ayrıntıları alır.

adapty placements get --app <app-id> <placement-id>
ArgümanAçıklama
placement-idPlacement ID (UUID)
BayrakGerekliAçıklama
--appEvetUygulama ID (UUID)

Yanıt; id, developer_id, title, is_active ve bir audiences dizisi içerir. is_active, aktif bir placement için true, pasif bir placement için false değerini alır. Her kitle girdisi; content_type, segment_ids, priority ve içeriğin ID’sini taşır: paywall için paywall_id, flow için flow_id, A/B testi çalıştıran bir kitle için ise ab_test_id ve ab_test_title. Varsayılan kitle segment_ids: [] değerine ve en yüksek öncelik sayısına (en son değerlendirilen) sahiptir. Bkz. Kitle yapısı.

adapty placements create

Yeni bir placement oluşturur.

adapty placements create --app <app-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
BayrakZorunluAçıklama
--appEvetUygulama ID’si (UUID)
--titleEvetPlacement başlığı
--developer-idEvetUygulamanın kodunda bu placement’ı istemek için kullanılan string tanımlayıcı
--audiencesİkisinden biriHer biri açık bir content_type içeren audience girdilerinden oluşan JSON dizisi. Bkz. Audiences shape
--paywall-idİkisinden biriKullanımdan kaldırıldı. Paywall ID’si (UUID). İstemci tarafında tek bir varsayılan audience içine sarılır

--audiences veya --paywall-id seçeneklerinden yalnızca birini geçirin. İkisini birden ya da hiçbirini geçmek hatayla sonuçlanır.

Warning

--paywall-id kullanımdan kaldırılmıştır ve ileride kaldırılacaktır. Geçirildiğinde, CLI bir stderr uyarısı yazdırır ve değeri varsayılan bir kitleye dönüştürür. Yeni otomasyon için --audiences kullanın.

adapty placements update

Mevcut bir placement’ın tüm alanlarını değiştirir.

adapty placements update --app <app-id> <placement-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'

Bu komut, tam kitle listesi de dahil olmak üzere placement’ın tüm alanlarını değiştirir.

ArgümanAçıklama
placement-idPlacement ID’si (UUID)
BayrakGerekliAçıklama
--appEvetUygulama ID’si (UUID)
--titleEvetPlacement başlığı
--developer-idEvetUygulamada bu placement’ı istemek için kullanılan string tanımlayıcı
--audiencesİkisinden biriHer biri açık bir content_type içeren kitle girdilerinden oluşan JSON dizisi. Bkz. Kitleler şekli
--paywall-idİkisinden biriKullanımdan kaldırıldı. Paywall ID’si (UUID). Tüm kitleleri tek bir varsayılan kitleyle değiştirir
Warning

--paywall-id parametresi geçirildiğinde, placement üzerindeki tüm kitleler yeniden yazılır. Segmente özgü kitleler silinir. Bunları korumak için --audiences kullanın ve tutmak istediğiniz tüm girişleri dahil edin.

Kitleler yapısı

--audiences bayrağı bir JSON dizisi alır. Her girişin şunları içerir:

AlanTürAçıklama
content_typestringHer girdide zorunludur. "paywall", "flow", "ab_test" (paywall A/B testi), "flow_ab_test" (flow A/B testi), "cross_ab_test" veya "flow_cross_ab_test" (crossplacement A/B testi). Paywall placement’ında paywall, ab_test ve cross_ab_test; flow placement’ında ise flow, flow_ab_test ve flow_cross_ab_test kullanın
segment_idsstring[]Bu kitle tarafından hedeflenen Segment ID’leri. Uzunluk 0 veya 1. Boş dizi, başka hiçbir segmentle eşleşmeyen kullanıcılar için yedek olan varsayılan kitleyi işaret eder
paywall_idstringBu kitledeki kullanıcılara gösterilen Paywall ID’si (UUID). content_type değeri "paywall" olduğunda zorunludur
flow_idstringBu kitledeki kullanıcılara gösterilen Flow ID’si (UUID). content_type değeri "flow" olduğunda zorunludur
ab_test_idstringBu kitledeki kullanıcılar için çalıştırılan A/B testi ID’si. Dört A/B testi içerik türünde de zorunludur
ab_test_titlestringA/B testi başlığı. Salt okunur: API, yazma işleminde bu alanı yok sayar
prioritynumber0 tabanlı, placement içinde benzersizdir. Kitleler düşükten yükseğe doğru değerlendirilir; varsayılan kitle en yüksek değere sahip olmalıdır

Bir placement’ın tam olarak bir varsayılan kitlesi olmalıdır.

Warning

placements update komutu, A/B testi çalıştıran kitleler de dahil olmak üzere tam kitle listesini değiştirir. Çalışan bir testi korumak için placements get komutundan ilgili girişi --audiences parametresine olduğu gibi kopyalayın; ab_test_id ve segment_ids değerleri aynı kalmalıdır. Bu girişi kaldıran veya değiştiren bir yazma işlemi, testi kazanansız durdurur. Girişi başka segmentlere taşıyan bir yazma işlemi testi yeniden başlatır; başka bir kitlede ab_test_id belirtmek ise testi orada başlatır. Yalnızca öncelikleri değiştiren bir yazma işlemi testi çalışmaya devam ettirir. CLI bu durumlar için sizi uyarmaz.

Çapraz placement A/B testi girdileri (cross_ab_test, flow_cross_ab_test) salt okunurdur. API, yazma işlemlerinde bunları yok sayar ve mevcut olanları korur.

Bir placement’ın içerik türü oluşturulduğunda sabitlenir; bu nedenle placements update komutu bir paywall placement’ını flow’a veya tersine çeviremez. Flow’u kendi placement’ından sunun — bkz. Flow için yeni bir placement oluşturma.

CLI, isteği göndermeden önce her girişi kontrol eder. Eksik veya bilinmeyen content_type içeren ya da content_type’ının gerektirdiği ID’ye sahip olmayan bir giriş, kod 2 ile çıkar ve hiçbir şey gönderilmez. Tanımadığı bir content_type için CLI, this CLI does not know this audience kind; update the CLI mesajını yazdırır. Giriş placements get komutundan geldiyse, girişi kaldırmak yerine CLI’yi güncelleyin: giriş çalışan bir A/B testi olabilir.

Bir flow yalnızca yayımlandıktan sonra eklenebilir. draft durumundaki bir flow veya ilk yayımlaması hâlâ devam eden bir flow sunucu tarafından reddedilir; CLI bu reddi algılar ve flows publish komutunu yazdırarak 2 koduyla çıkar. Bir flow’u yayımlamak için flows publish komutunu veya Flow & Paywall Builder’ı kullanın, ardından durumunun published olmasını bekleyin.

Bir hedefli kitle ve bir varsayılan kitle içeren örnek:

adapty placements update <placement-id> --app <app-id> --title "Main" --developer-id "main" \
  --audiences '[{"content_type":"paywall","segment_ids":["<vip-segment-id>"],"paywall_id":"<vip-paywall-id>","priority":0},{"content_type":"paywall","segment_ids":[],"paywall_id":"<default-paywall-id>","priority":1}]'

Yayımlanmış bir flow’u tüm kullanıcılara sunan bir placement örneği:

adapty placements create --app <app-id> --title "Onboarding" --developer-id "onboarding" \
  --audiences '[{"content_type":"flow","segment_ids":[],"flow_id":"<flow-id>","priority":0}]'

Segment’e özgü yönlendirmeyi kaybetmeden bir paywall’u birden fazla placement’ta değiştirmek için:

  1. Etkilenen placement’ları bulun:

    adapty paywalls placements --app <app-id> <old-paywall-id>
  2. Her biri için audiences dizisinin tamamını okuyun:

    adapty placements get --app <app-id> <placement-id> --json
  3. Eşleşen paywall_id değerlerini istemci tarafında değiştirin. A/B testi girdileri dahil diğer tüm girdileri değiştirmeden bırakın.

  4. Değiştirilen payload’ı geri yazın:

    adapty placements update --app <app-id> <placement-id> --title "<title>" --developer-id "<developer-id>" --audiences '<modified-payload>'

Segmentler

Segmentler, kullanıcıları profil özelliklerine göre gruplar. Placement kitlelerini oluştururken segment ID’lerini bulmak veya yeni segment oluşturmak için bu komutları kullanın. Apple Ads kampanyalarına, reklam gruplarına veya anahtar kelimelere göre segment oluşturmak için adapty asa segments create komutunu kullanın: Apple ID’lerini sizin yerinize bulur ve segmenti Ads Manager’ın kullandığı şekilde adlandırır.

adapty segments list

Bir uygulamaya ait tüm segment’leri listeler.

adapty segments list --app <app-id>
BayrakZorunluAçıklama
--appEvetUygulama ID’si (UUID)

Sayfalandırma bayraklarını kabul eder.

adapty segments get

Belirli bir segment için ayrıntıları alır.

adapty segments get --app <app-id> <segment-id>
ArgümanAçıklama
segment-idSegment ID’si (UUID)
BayrakZorunluAçıklama
--appEvetUygulama ID’si (UUID)

Yanıt, id, title, description, filters, profile_count, refresh_in_progress, created_at ve updated_at alanlarını içerir. list yalnızca id, title ve description alanlarını döndürür.

adapty segments create

Bir veya daha fazla filtreden segment oluşturur.

adapty segments create --app <app-id> --title "US installs" --filter ip_country:IN:US --filter install_date:>=:2026-01-01
FlagGerekliAçıklama
--appEvetUygulama ID’si (UUID)
--titleEvetSegment başlığı
--filterEvetFiltre kuralı. Tekrarlanabilir. Bkz. Filtre söz dizimi
--descriptionHayırSegment açıklaması

Bir kullanıcı, segmente yalnızca tüm filtreleri sağladığında dahil edilir. Yanıt, segments get ile aynı alanları içerir. profile_count 0 ile başlar ve Adapty, segment oluşturulduktan sonra bunu yeniden hesaplar.

adapty segments update

Mevcut bir segment’in başlığını, açıklamasını ve filtrelerini değiştirir.

adapty segments update --app <app-id> <segment-id> --title "US installs" --filter ip_country:IN:US,CA
ArgümanAçıklama
segment-idSegment ID (UUID)
FlagZorunluAçıklama
--appEvetUygulama ID (UUID)
--titleEvetSegment başlığı
--filterEvetFiltre kuralı. Tekrarlanabilir. Bkz. Filtre sözdizimi
--descriptionHayırSegment açıklaması
Warning

segments update tüm segmenti değiştirir. Yalnızca değiştirdiğiniz filtreyi değil, korumak istediğiniz her filtreyi geçirin. Mevcut filtreleri okumak için şunu çalıştırın: adapty segments get --app <app-id> <segment-id> --json.

Filtre sözdizimi

Her --filter değerini field:OPERATOR:value biçiminde yazın. Birden fazla değerden herhangi biriyle eşleştirmek için değerleri virgülle ayırın: ip_country:IN:US,CA.

OperatörDeğerlerÖrnek
IN, NOT INBir veya daha fazlaip_country:NOT IN:US,CA
>, >=, <, <=Birage:>:18
BETWEENİkitotal_revenue_usd:BETWEEN:10,100
IS NULL, IS NOT NULLHiçbiriage:IS NULL

Sayıları düz değerler olarak iletin; örneğin age:>:18. Adapty, bunları age, total_revenue_usd ve float türündeki özel öznitelikler gibi sayısal alanlar için dönüştürür.

Bu kısa formun ifade edemediği bir değer için filtreyi JSON nesnesi olarak iletin:

adapty segments create --app <app-id> --title "Adults" --filter '{"field_name":"age","operator":">","value_list":[18]}'

Adapty alan adlarını, operatörleri ve değer türlerini doğrular; geçersiz her filtre için ayrı bir hata bildirir. Mevcut filtrelerin alan adlarını ve değer biçimlerini görmek için kontrol panelinde oluşturulmuş bir segment üzerinde adapty segments get --app <app-id> <segment-id> --json komutunu çalıştırın.

Sırada ne var

  • Komut referansı — tüm CLI konuları, genel bayraklar ve sayfalama bayrakları.