Kitleler
`audiences.list`, `get`, `create`, `update`, `delete`, `empty`, `growth`, `list_contacts`, `add_contact`, `add_contacts`, `import_contacts`, `remove_contact` ve `remove_contacts`.
Her yöntem
from openemail import openemail audiences = openemail.audiences.list_all()everyone = next((audience for audience in audiences if audience['builtin'] == 'default'), None) created = openemail.audiences.create({ 'name': 'Product updates', 'description': 'Customers who asked to hear about releases',})audience_id = created['id'] openemail.contacts.create({'email': '[email protected]', 'name': 'Grace Hopper'})openemail.audiences.add_contact(audience_id, {'email': '[email protected]'}) bulk = openemail.audiences.add_contacts(audience_id, { 'emails': ['[email protected]', '[email protected]'],}) imported = openemail.audiences.import_contacts(audience_id, { 'contacts': [{'email': '[email protected]', 'name': 'Katherine Johnson'}],}) members = openemail.audiences.list_all_contacts( audience_id, q='grace', sort='added-newest', limit=200,) growth = openemail.audiences.growth(audience_ids=[audience_id], days=30) openemail.audiences.update(audience_id, {'name': 'Release notes'})openemail.audiences.remove_contact(audience_id, '[email protected]')openemail.audiences.remove_contacts(audience_id, {'emails': ['[email protected]']})openemail.audiences.empty(audience_id)openemail.audiences.delete(audience_id) print(everyone['contactCount'] if everyone else None, bulk['missing'], imported['created'])print(len(members), growth['totals']['added'])Kitle, bu çalışma alanındaki kişilerden oluşan adlandırılmış bir listedir. Her kişi var olduğu andan itibaren yerleşik varsayılan kitlenin içindedir ve o satırı adlandıran şey builtin alanıdır; geri kalanları oluşturmak, doldurmak ve silmek size kalmıştır. Herkesin değiştirebildiği ada göre değil, builtin alanına göre dallanın.
Bir ya da daha fazla kitleye Broadcasts sayfasındaki openemail.broadcasts.send ile gönderin. Bir kişiyi kitleye koymak kişiye değil kitleye yazmaktır, bu yüzden denetlenen tek kapsam audiences:write'tır. İstisna import_contacts'tır: kişi oluşturduğu için contacts:write de gerekir.
add_contact, halihazırda kişi olan bir adresi alır, olmayanı 422 contact_not_found ile reddeder. Önce openemail.contacts.create ile kaydedin. Birini iki kez eklemek, özgün addedAt değerini taşıyan mevcut üyelik kaydıyla yanıtlanır; dolayısıyla çağrıyı yeniden denemek güvenlidir.
Varsayılan kitle diğerleri gibi yeniden adlandırılabilir ve açıklanabilir, ama silinemez ve içi boşaltılamaz. İkisi de 409 audience_immutable ile reddedilir. Kişinin gitmesini istiyorsanız kişiyi silin.
Yanıt: AudienceResource
list bunlardan bir sayfa döndürür: items, hasMore ve nextCursor içeren bir sözlük; varsayılan kitle en başta, geri kalanlar en yeniden eskiye. list_all ve iterate her sayfayı gezer. get, create ve update her biri bir tane döndürür. list_contacts ise bunun yerine bir AudienceContactResource sayfası döndürür: üyelik kayıtları değil, her birinin katıldığı tarihle birlikte kişilerin kendileri; yanında list_all_contacts ve iterate_contacts bulunur.
idstr- Kalıcı tanıtıcı: `aud_` ve ardından 24 onaltılık karakter. Adlar benzersiz değildir, bu yüzden saklanan yapılandırmaya girmesi gereken değer budur.
namestr- Yazarken kırpılır, 1 ila 120 karakter. İki kitle aynı adı taşıyabilir, çünkü bir kitleye id'siyle erişilir.
descriptionstr | None- Listeyi sonradan okuyacak kişi için serbest metin. Kimse yazmadıysa `None` olur; `update` çağrısında açıkça `None` göndermek bu alanı temizler.
builtinAudienceBuiltin | str | None- Çalışma alanı başına tam olarak bir satırda `default` olur; bu, her kişiyi barındıran kitledir. Birinin oluşturduğu her kitlede `None`'dır. Tür, literal'in yanında `str` ile açık bırakılır; böylece sonradan eklenen yerleşik bir değer, bu türe göre yazılmış kodu bozmaz.
contactCountint- Kitledeki kişi sayısı; önbelleğe alınmak yerine okuma anında sayılır. Bir `contacts.create` çağrısının iki yanındaki iki okuma bir fark gösterir.
lastContactAtstr | None- ISO-8601 UTC; bu kitleye en son katılan kişinin ne zaman katıldığı. Kitle boş olduğu sürece `None` olur.
createdAtstr- ISO-8601 UTC; kitlenin ne zaman oluşturulduğu. Varsayılan kitleden sonraki liste sırasını belirler.
updatedAtstr- ISO-8601 UTC; yeniden adlandırma veya açıklama değişikliğinde güncellenir. Üyelik değişiklikleri bu alana dokunmaz.
Parametreler: audiences.list_contacts
limitint- Sayfa başına kaç kişi: 1 ile 200 arasında bir tam sayı, varsayılanı 50.
cursorstr- Önceki sayfanın `nextCursor` değeri; aynı `q`, `source` ve `sort` ile gönderilir. Bu kitlede olmayan bir kişiyi gösteren imleç 400 `invalid_cursor` verir.
qstr- Adı ve adresi arar, en fazla 200 karakter. İlk sayfada hiçbir şey tam eşleşmezse bunun yerine yakın yazımlar döner ve sonraki sayfalar da aynı şekilde eşleşmeye devam eder.
sourceContactSource- Birinin bilerek kaydettiği kişiler için `'manual'`, uygulamanın e-posta düzenleyicisinin kaydettikleri için `'auto'`. Kitledeki herkes için bu parametreyi vermeyin.
sortAudienceMemberSort- `'last-heard-newest'` (varsayılan) ve `'last-heard-oldest'`, `lastSeenAt` değerine göre sıralar; hiç posta gönderilmemiş kişiler ilkinde sona, ikincisinde başa gelir. `'added-newest'` ve `'added-oldest'` her kişinin bu kitleye katıldığı zamana göre sıralar; `'name'` ise büyük-küçük harf ayırmaz ve adı olmayan bir kişiyi adresine göre sıralar.
statusesSequence[AudienceMemberStatus]- `['subscribed']` aboneliğini bırakmamış üyeleri, `['unsubscribed']` bırakmış olanları tutar. Kitledeki herkes için boş bırakın ya da ikisini birden verin. Değerler `AUDIENCE_MEMBER_STATUSES` içindedir.
Yanıt: AudienceContactResource
list_contacts bir Page[AudienceContactResource] döndürür; list_all_contacts ve iterate_contacts aynı seçeneklerle tüm sayfaları dolaşır. Her satır, alanları Kişiler sayfasında bulunan bir ContactResource ve iki alan daha içerir. Bir kitleyi dışa aktarmanın yolu tüm sayfaları dolaşmaktır.
addedAtstr- ISO-8601 UTC, kişinin bu kitleye katıldığı zaman. Bir kişiyi çıkarıp yeniden eklemek bu değeri sıfırdan başlatır.
unsubscribedAtstr | None- ISO-8601 UTC, kişinin bu kitleye gönderilen bir toplu gönderimden abonelikten çıktığı zaman ya da abone olduğu sürece `None`. Abonelikten çıkmış bir kişi kitlede kalır ve kitleye yapılan toplu gönderimler onu atlar. Onu çıkarıp yeniden eklemek onu yeniden abone yapar.
Toplu ekleme ve çıkarma
add_contacts ve remove_contacts, 1 ile 200 arası adres içeren {'emails': [...]} alır ve tek istekte bir kitleyi değiştirir. add_contacts hiçbir zaman kişi oluşturmaz: kişi olmayan bir adres missing içinde geri döner, onları oluşturan çağrı ise import_contacts metodudur. İkisi de güvenle yinelenebilir; bu yüzden bir zaman aşımından sonraki yeniden deneme başarısız olmak yerine aynı kişileri zaten işlenmiş olarak bildirir.
Varsayılan kitleye ekleme 'added': 0 döndürür, çünkü her kişi zaten içindedir; ona uygulanan remove_contacts ise 409 audience_immutable ile reddedilir. Birini bir kitleden çıkarmak onu adres defterinde, varsayılan kitlede ve diğer kitlelerinde bırakır.
audienceIdstr- Çağrının değiştirdiği kitle, iki sonuçta da.
addedint- `AudienceBatchAddResource` içinde: bu çağrının oluşturduğu yeni üyelikler.
unchangedint- `AudienceBatchAddResource` içinde: zaten kitlede olan kişiler. Onlar için hiçbir şey yazılmadı.
removedint- `AudienceBatchRemoveResource` içinde: bu çağrının kaldırdığı üyelikler.
notInAudiencelist[str]- `AudienceBatchRemoveResource` içinde: kitlede olmayan kişiler; bu yüzden onlara hiçbir şey olmadı.
missinglist[str]- İkisinde de: bu çalışma alanında kişi olmayan adresler, küçük harfle ve tekrarsız.
İçe aktarma
import_contacts, kitle sayfasındaki CSV içe aktarımıdır. Her biri bir email ve isteğe bağlı bir name içeren 1 ile 500 arası satırdan oluşan {'contacts': [...]} alır: düzgün biçimli her adres henüz kişi değilse kişi olur ve hepsi kitleye girer. Daha uzun bir listeyi birkaç çağrıda gönderin. audiences:write ve contacts:write gerektirir.
Zaten kişi olan bir adres yeniden kullanılır ve adını korur; buradaki name yalnızca boş olan bir adı doldurur. Yeni bir kişi manual olarak kaydedilir ve varsayılan kitleye de katılır; defterden silinmiş bir adres ise geri gelir. Aynı satırları yeniden göndermek hiçbir şeyi iki kez oluşturmaz.
audienceIdstr- Satırların girdiği kitle.
createdint- Bu çağrının kaydettiği yeni kişiler.
addedint- Bu kitledeki yeni üyelikler; zaten var olan ve henüz kitlede olmayan kişiler de sayılır.
skippedint- Adres hatalı biçimli olduğu için içe aktarılmayan satırlar.
invalidlist[str]- Hatalı biçimli adresler, tam gönderildikleri gibi.
Boşaltma
empty(id) tek istekte bir kitledeki her kişiyi çıkarır ve bir EmptiedAudienceResource döndürür: kitlenin şimdiki hâli, contactCount 0 olarak, artı kaldırılan üyelik sayısı olan removed. Kitle id'sini, adını ve açıklamasını korur; her kişi adres defterinde ve diğer kitlelerinde kalır.
Geri alınamaz ve listede kimin olduğu hiçbir yerde kaydedilmez; bu yüzden listeyi geri isteyebilecekseniz önce list_all_contacts ile dolaşın. Varsayılan kitle boşaltılamaz ve çağrı 409 audience_immutable ile reddedilir.
Büyüme
growth(), şu an biten bir zaman aralığında her kitleye gün, saat veya dakika bazında kaç kişinin katıldığını okur; bu, kitleler sayfasındaki grafiktir. audiences:read gerektirir ve bir AudienceGrowthResource döndürür.
Bir kitle birinin ne zaman katıldığını kaydeder, ne zaman ayrıldığını asla kaydetmez; bu yüzden her katılım sayısı bugün hâlâ listede olan kişileri katılım tarihlerine göre sayar ve bir çizgi hiçbir zaman düşmez. Katılıp sonra ayrılan bir kişi sayıların hiçbirinde yer almaz.
Parametreler
audience_idsSequence[str]- Virgülle birleştirilerek gönderilen en fazla 50 kitle kimliği. Tüm kitleler için bunu vermeyin. Bu çalışma alanında kitle olmayan bir kimlik 404 `audience_not_found` verir.
daysint- Aralığın geriye ne kadar uzandığı, 1 ile 1095 arası. Ne `days` ne de `minutes` verilmezse 30 olur.
minutesint- Bir günden kısa bir aralık için dakika cinsinden aralık, 1 ile 1576800 arası. İkisi birlikte verilirse `days` yerine bu geçerli olur.
grainTrackingGrain- Her dilimin boyutu: `day` (varsayılan), `hour` veya `minute`.
offset_minutesint- Görüntüleyenin dakika cinsinden UTC farkı, -840 ile 840 arası; böylece günlük ve saatlik dilimler onun yerel sınırında başlar. Varsayılanı 0.
Yanıt
sincestr- ISO-8601 UTC, ilk dilimin başlangıcı.
untilstr- ISO-8601 UTC, okumanın yapıldığı an.
totalsAudienceGrowthTotals- `contacts` her kişiyi kaç listede olursa olsun bir kez sayar, `memberships` ise listeleri toplar; böylece bir kişi, okunan ve kendisini içeren her liste için bir kez sayılır. `subscribed`, okunan listelerden en az birine hâlâ abone olan kişileri, her birini bir kez olmak üzere sayar. `added` aralıktaki katılımları, `unsubscribed` ise aralıktaki abonelikten çıkmaları toplar; `lists` kaç kitlenin okunduğunu gösterir, `busiest` ise en çok katılımın olduğu dilimdir ya da `None` olur.
serieslist[AudienceGrowthSeries]- Kitle başına bir kayıt, en büyükten başlayarak: `id`, `name`, `builtin` (varsayılan kitlede `True`), şu anki üye sayısı `total`, `subscribed` (bunlardan abonelikten çıkmamış olanlar), `before` (`since` öncesinde katılanlar), `added` (aralık içinde katılanlar), `unsubscribed` (aralık içinde abonelikten çıkanlar) ve her biri `bucket`, `added` ve `unsubscribed` içeren bir sözlük olan `buckets`. Yalnızca bir katılım ya da abonelikten çıkma olan dilimler listelenir; anahtarlar farkın yerel saatinde `YYYY-MM-DD`, `YYYY-MM-DDTHH` veya `YYYY-MM-DDTHH:MM` biçimindedir.
Referans
audiences.list()Tam başvuruaudiences.list_all()Tam başvuruaudiences.iterate()Tam başvuruaudiences.get()Tam başvuruaudiences.create()Tam başvuruaudiences.update()Tam başvuruaudiences.delete()Tam başvuruaudiences.empty()Tam başvuruaudiences.growth()Tam başvuruaudiences.list_contacts()Tam başvuruaudiences.list_all_contacts()Tam başvuruaudiences.iterate_contacts()Tam başvuruaudiences.add_contact()Tam başvuruaudiences.add_contacts()Tam başvuruaudiences.import_contacts()Tam başvuruaudiences.remove_contact()Tam başvuruaudiences.remove_contacts()Tam başvuru