Skip to content

AI kampanyaları

AI kampanyası, bir istem kümesini bir dizi gönderiye çevirir. İstemleri, kanalları ve bir bitiş tarihi seçersin; her istem için bir gönderi yazar ve bunları takvime yayar, hepsi onay bekler durumda.

Bir kez ya da tekrarlayarak

Kampanyayı kur

Bir ad ver, istemlerini ve kanallarını seç, bitiş tarihini belirle.

Gün ve saatleri seç

Hangi saatlerde ve hangi haftagünlerinde çalışacağını seç.

Tekrarla'yı aç ya da kapalı bırak

Kapalı — kampanya yalnızca Şimdi çalıştır'a bastığında üretir, o kadar.

Açık — seçtiğin gün ve saatlerde, bitiş tarihine kadar kendi kendine tekrar çalışır.

Kaçan çalıştırmalar telafi edilmez, atlanır

Bir çalıştırmanın vakti geldiğinde uygulama kapalıysa, o çalıştırma sonradan yapılmaz. Kapalıyken iki çalıştırmanın vakti geldiyse yalnızca en yenisi koşar. "Telafi" için iki parti üretmek neredeyse hiç kimsenin istediği şey değildir ve her parti AI kredisi harcar.

Kartta ne görürsün

  • Aktif — sıradaki 14/02 09:00 — tekrarlıyor, ve sırası o zaman.
  • Aktif — tekrarlıyor ama henüz bir sonraki çalıştırma hesaplanmadı.
  • Tek seferlik — yalnızca Şimdi çalıştır'a bastığında koşar.
  • Üretiyor… — şu anda bir çalıştırma sürüyor.
  • Bitti — bitiş tarihini geçti ve kendiliğinden durdu.
  • Durduruldu — sen kapattın.

Krediler

Her çalıştırma AI kredisi harcar: istem başına bir metin üretimi, kampanya görsel üretiyorsa istem başına bir de görsel üretimi. Aylık hakkını aşacak bir çalıştırma yarım koşmak yerine atlanır ve hiçbir şey düşülmez.

İlgili

Geliştiriciler için

Program ai_posts.recurrence üzerinde { enabled, times: ["HH:mm"], days: [0-6], timezone, last_occurrence } olarak durur — RRULE değil, tipli; çünkü editör bir saat × haftagünü ızgarasıdır ve başka bir şey üretemez de gösteremez de. Bu alan var olmadan önce oluşturulmuş kampanyalar, resolveCampaignRecurrence tarafından eski data.scheduledTimes / data.selectedDays blob'undan okunur — göç gerekmemesinin sebebi budur. Onlar enabled: false ile döner: aylar önce kurulmuş bir kampanya, kimsenin yeniden vermediği bir karar için harcamaya başlamamalıdır.

generateCampaignRuns on dakikada bir koşar (campaign-recurrence, jobId: campaign-recurrence-10m). Ufuk üreticisi değil, vadesi-gelen sweep'idir: runCampaign bir modeli çağırır, dolayısıyla 30 günlük içeriği peşin üretmek hem israf hem bayat olurdu. Yakalama penceresi iki saat, en yeni vade kazanır.

İdempotans koşullu bir güncellemedir — findOneAndUpdate({ _id, "recurrence.last_occurrence": { $ne: occurrence } }) — böylece iki replika aynı slotu birlikte alamaz. Kapılar sırayla, hiçbir şey harcanmadan önce: enabled → aktif → bitiş tarihi → workspace kilitli değil → planda ai.text var → AI kredisi yeterli.