Module: Mailblastr::Campaigns
- Defined in:
- lib/mailblastr/campaigns.rb
Overview
Campaigns are DOMAIN-FIRST: domain (required on create) picks the
contact pool the campaign targets; from may be any verified domain.
Class Method Summary collapse
-
.ab(campaign_id) ⇒ Object
A/B winner evaluation for an A/B campaign.
-
.cancel(campaign_id) ⇒ Object
Cancel a scheduled campaign (returns it to draft).
-
.create(params) ⇒ Object
POST /campaigns Mailblastr::Campaigns.create({ domain: "yourdomain.com", from: "you@yourdomain.com", subject: "Hello", html: "
Hi
", segment_id: "seg_1" }) Optional scheduling params:schedule_timezone(IANA zone the schedule + daily batching are evaluated in, e.g. "America/New_York") anddaily_batch_size(max recipients per batch-day, 1-100000). -
.delete(campaign_id) ⇒ Object
DELETE /campaigns/:id.
-
.get(campaign_id) ⇒ Object
GET /campaigns/:id.
-
.list(params = {}) ⇒ Object
GET /campaigns.
-
.send(campaign_id, params = {}) ⇒ Object
Send now, or schedule with { scheduled_at: "..." }.
-
.stats(campaign_id) ⇒ Object
Per-campaign analytics (counts, engagement rates, top links).
-
.update(campaign_id, params) ⇒ Object
PATCH /campaigns/:id (draft campaigns only).
Class Method Details
.ab(campaign_id) ⇒ Object
A/B winner evaluation for an A/B campaign. GET /campaigns/:id/ab
56 57 58 |
# File 'lib/mailblastr/campaigns.rb', line 56 def ab(campaign_id) Client.request(:get, "/campaigns/#{Client.path_escape(campaign_id)}/ab") end |
.cancel(campaign_id) ⇒ Object
Cancel a scheduled campaign (returns it to draft). POST /campaigns/:id/cancel
46 47 48 |
# File 'lib/mailblastr/campaigns.rb', line 46 def cancel(campaign_id) Client.request(:post, "/campaigns/#{Client.path_escape(campaign_id)}/cancel") end |
.create(params) ⇒ Object
POST /campaigns Mailblastr::Campaigns.create({ domain: "yourdomain.com", from: "you@yourdomain.com", subject: "Hello", html: "
Hi
", segment_id: "seg_1" }) Optional scheduling params:schedule_timezone (IANA zone the schedule +
daily batching are evaluated in, e.g. "America/New_York") and
daily_batch_size (max recipients per batch-day, 1-100000).
14 15 16 17 |
# File 'lib/mailblastr/campaigns.rb', line 14 def create(params) Client.require_domain!(params, "Campaigns.create") Client.request(:post, "/campaigns", body: params) end |
.delete(campaign_id) ⇒ Object
DELETE /campaigns/:id
61 62 63 |
# File 'lib/mailblastr/campaigns.rb', line 61 def delete(campaign_id) Client.request(:delete, "/campaigns/#{Client.path_escape(campaign_id)}") end |
.get(campaign_id) ⇒ Object
GET /campaigns/:id
20 21 22 |
# File 'lib/mailblastr/campaigns.rb', line 20 def get(campaign_id) Client.request(:get, "/campaigns/#{Client.path_escape(campaign_id)}") end |
.list(params = {}) ⇒ Object
GET /campaigns
25 26 27 |
# File 'lib/mailblastr/campaigns.rb', line 25 def list(params = {}) Client.request(:get, "/campaigns", query: Client.pagination(params)) end |
.send(campaign_id, params = {}) ⇒ Object
Send now, or schedule with { scheduled_at: "..." }. An optional
schedule_timezone (IANA name) is persisted onto the campaign so daily
batching evaluates batch-days in that zone. POST /campaigns/:id/send
41 42 43 |
# File 'lib/mailblastr/campaigns.rb', line 41 def send(campaign_id, params = {}) Client.request(:post, "/campaigns/#{Client.path_escape(campaign_id)}/send", body: params) end |
.stats(campaign_id) ⇒ Object
Per-campaign analytics (counts, engagement rates, top links). GET /campaigns/:id/stats
51 52 53 |
# File 'lib/mailblastr/campaigns.rb', line 51 def stats(campaign_id) Client.request(:get, "/campaigns/#{Client.path_escape(campaign_id)}/stats") end |
.update(campaign_id, params) ⇒ Object
PATCH /campaigns/:id (draft campaigns only). Accepts the create-side
fields plus followups (replace pending follow-ups, [] clears),
list_to (true/false), unsubscribe_policy ("account" | "domain" |
"ignore"), schedule_timezone (IANA zone; nil clears), and
daily_batch_size (1-100000; nil clears).
34 35 36 |
# File 'lib/mailblastr/campaigns.rb', line 34 def update(campaign_id, params) Client.request(:patch, "/campaigns/#{Client.path_escape(campaign_id)}", body: params) end |