18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/mc/report.rb', line 18
def run
last_campaign_sent = @api.campaigns(:filters => {:status => "sent"}, :start => @start, :limit => 1)
campaign_data = last_campaign_sent['data'].first
campaign_id = campaign_data['id']
campaign_stats = @api.campaign_stats({:cid => campaign_id})
emails_sent = campaign_stats['emails_sent']
email_domains = @api.campaign_email_domain_performance({:cid => campaign_id})
puts "Details for #{campaign_data['title']} - #{campaign_data['archive_url']}"
puts "==="
puts "Sent at #{campaign_data['send_time']}"
puts "Last open at #{campaign_stats['last_open']}"
puts "--"
puts "Emails sent: #{emails_sent}"
puts "Opens: #{campaign_stats['unique_opens']} (%#{(campaign_stats['unique_opens'].to_f / emails_sent).round(4) * 100})"
puts "Users who clicked: #{campaign_stats['users_who_clicked']} (%#{(campaign_stats['users_who_clicked'].to_f / emails_sent).round(4) * 100})"
puts "Clicks: #{campaign_stats['unique_clicks']}"
puts "--"
puts "Unsubscribers: #{campaign_stats['unsubscribes']}"
puts "Hard/Soft Bounces: #{campaign_stats['hard_bounces']}/#{campaign_stats['soft_bounces']}"
puts "Abuse reports: #{campaign_stats['abuse_reports']}"
puts "--"
email_domains.each do |domain|
puts "#{domain['emails']} sent to #{domain['domain']} - open/click count: #{domain['opens']}/#{domain['clicks']} - open/click %: #{domain['opens_pct']}/#{domain['clicks_pct']}"
end
puts "--"
most_clicked_links(campaign_id).first(20).each do |url,clicks|
puts "#{clicks} - #{url[0..70]}"
end
end
|