Açılır pencereler API

Açılır pencereler modülünün tüm işlemleri (4) ve veri modelleri (2): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Web sitesi açılır pencereleri, hedefleme ve A/B dönüşüm ölçümleri.

Modül kodu popups · 4 işlem · 2 veri modeli · 2 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: popups (hepsi), popups:read (yalnız okuma) ya da popups:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
popup_eventspopup_event/api/v1/popup_events
popupspopup/api/v1/popups

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
popups.deletepopups:deleteAçılır pencereyi sil
popups.savepopups:manageAçılır pencere oluştur ya da düzenle
popups.submitpopups:writeAçılır pencere formunu gönder
popups.trackpopups:writeAçılır pencere etkileşimini say

popups.delete

Açılır pencereyi sil — Açılır pencereyi ve anonim ölçümlerini siler.

Gereken izin popups:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/popups/actions/delete
API anahtarı ya da OAuth token · popups:delete
  • Asıl adres: POST /api/v1/actions/popups.delete

Girdi

AlanTürZorunluAçıklama
iduuidevetAçılır pencere

Yayımladığı olaylar: popups.deleted

Neye yazar: popup (delete) — Deletes the popup; popup_event (delete) — Deletes its counts

curl -X POST https://app.getera.io/api/v1/popups/actions/delete \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"ID_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "popups.deleted"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.popups.delete({
  id: "ID_ID"
})
era popups delete \
  --id "ID_ID"
tools/call
{
  "name": "era__popups__delete",
  "arguments": {
    "id": "ID_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde popups:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek

popups.save

Açılır pencere oluştur ya da düzenle — Web sitenizde ziyaretçilere gösterilecek açılır pencereyi, hedeflemesini ve A/B içeriğini kaydeder.

Gereken izin popups:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/popups/actions/save
API anahtarı ya da OAuth token · popups:manage
  • Asıl adres: POST /api/v1/actions/popups.save

Girdi

AlanTürZorunluAçıklama
iduuidAçılır pencere
namestringevetAd · en çok 200
siteIduuidevetWeb sitesi · kimliği: site
formIduuidPotansiyel müşteri formu · kimliği: public_form
activebooleanYayında
configobject / arrayevetİçerik ve hedefleme · JSON: {a:{title,text,image,ctaLabel,ctaUrl},b:{title,text,image,ctaLabel,ctaUrl},split:0,trigger:"arrival",threshold:5,pages:["/"],visitor:"all",device:"all",frequency:"session"}. İki içerik varyantı da gereklidir; isteğe bağlı içerik metinleri boş olabilir. split, B’ye giden trafiktir (0–100). trigger: arrival/delay/exit/scroll; threshold: saniye (delay) veya yüzde (scroll). visitor: all/new/returning; device: all/mobile/desktop; frequency: session/daily/once.
startsAtdate-timeBaşlangıç
endsAtdate-timeBitiş

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
popup_invalidİçerik, site, form ve zamanlama geçerli olmalı ve bu çalışma alanında bulunmalı.

Yayımladığı olaylar: popups.saved

Neye yazar: popup (upsert) — Saves the popup as a new revision

curl -X POST https://app.getera.io/api/v1/popups/actions/save \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name","siteId":"SITE_ID","config":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "popups.saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.popups.save({
  name: "Name",
  siteId: "SITE_ID",
  config: {}
})
era popups save --data '{"name":"Name","siteId":"SITE_ID","config":{}}'
tools/call
{
  "name": "era__popups__save",
  "arguments": {
    "name": "Name",
    "siteId": "SITE_ID",
    "config": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde popups:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 popup_invalid · 429 çok sık istek

popups.submit

Açılır pencere formunu gönder — Form motoruyla bir potansiyel müşteri oluşturur ve başarılı gönderimi A/B ölçümüne ekler.

Gereken izin popups:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/popup_events/actions/submit
API anahtarı ya da OAuth token · popups:write
  • Asıl adres: POST /api/v1/actions/popups.submit

Girdi

AlanTürZorunluAçıklama
iduuidevetAçılır pencere
revisionnumberevetRevizyon · en az 1
impressionIduuidevetGösterim
variantstring (enum)evetVaryant · İzin verilen değerler: A, B
answersobject / arrayYanıtlar
metaobject / arrayForm bilgileri

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
popup_invalidYayında bir açılır pencere, önceki görüntülenmesi ve etkin bir potansiyel müşteri formu gerekir.

Neye yazar: popup_event (insert) — A successful form send

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde popups:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 popup_invalid · 429 çok sık istek

popups.track

Açılır pencere etkileşimini say — Anonim bir görüntülemeyi ya da tıklamayı bir kez kaydeder.

Gereken izin popups:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/popup_events/actions/track
API anahtarı ya da OAuth token · popups:write
  • Asıl adres: POST /api/v1/actions/popups.track

Girdi

AlanTürZorunluAçıklama
iduuidevetAçılır pencere
revisionnumberevetRevizyon · en az 1
impressionIduuidevetGösterim
variantstring (enum)evetVaryant · İzin verilen değerler: A, B
kindstring (enum)evetEtkileşim · İzin verilen değerler: view, click

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
popup_invalidAçılır pencere bu sitede yayında olmalı; tıklamadan önce görüntülenmiş olmalı.

Neye yazar: popup_event (insert) — One interaction

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde popups:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 popup_invalid · 429 çok sık istek

Veri modelleri

PopupEvent

Tablo popup_event · Kaynak popup_events

  • GET /api/v1/popup_events
  • GET /api/v1/popup_events/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
popup_idstring (uuid) · uuidpopup
revisioninteger · int4
impression_idstring (uuid) · uuid
variantstring · textA, B
kindstring · textview, click, submit
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: popup_id, revision, impression_id, kind

Popup

Tablo popup · Kaynak popups

  • GET /api/v1/popups
  • GET /api/v1/popups/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
form_idstring (uuid) · uuidevetpublic_form
namestring · text
is_activeboolean · bool
revisioninteger · int4
configobject · jsonb
starts_atstring (date-time) · timestamptzevet
ends_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((ends_at IS NULL) OR (starts_at IS NULL) OR (ends_at > starts_at)))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
popups.deletedBir açılır pencere silindi.id
popups.savedBir açılır pencere kaydedildi.id
Bu sayfa yardımcı oldu mu?