https://github.com/st0yanov/action_mailer_pixel
Tracks email open rate by including a tracking pixel in the message body.
https://github.com/st0yanov/action_mailer_pixel
action-mailer ruby ruby-on-rails rubygem
Last synced: 3 months ago
JSON representation
Tracks email open rate by including a tracking pixel in the message body.
- Host: GitHub
- URL: https://github.com/st0yanov/action_mailer_pixel
- Owner: st0yanov
- License: mit
- Created: 2018-10-21T20:06:31.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-10-21T20:25:56.000Z (over 7 years ago)
- Last Synced: 2026-02-27T20:27:03.355Z (3 months ago)
- Topics: action-mailer, ruby, ruby-on-rails, rubygem
- Language: Ruby
- Size: 32.2 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: MIT-LICENSE
Awesome Lists containing this project
README
# ActionMailerPixel
ActionMailerPixel allows you to easily track your mailers' open rate.
## How it works
When you enable the open tracking pixel on a mailer, a simple **img** tag will be inserted right before the closing body tag upon delivery. The source of the image tag leads to the /open.png path wherever you mounted the engine in your application. The response is a 1x1px transparent PNG image. When the email is opened by an email client, the pixel might get rendered (depending on the security/privacy settings) and the opening will be saved. Open rate is tracked by user and by email campaign. This way you can see exactly who opened a specific email.
## Usage
**1. Default (convention over configuration)** - pixel is created with the first available of the following:
- *@user* -> *params[:user]* -> *recipient_class.find_by(email: message.to.first)*
- *@campaign* -> *params[:campaign]*
```ruby
class PixelMailer < ApplicationMailer
open_tracking_pixel
def sample
mail(to: 'recipient@example.com')
end
end
```
**2. Explicit use** - pixel is created with the provided data
```ruby
class PixelMailer < ApplicationMailer
open_tracking_pixel recipient: -> { params[:user] },
campaign: -> { params[:campaign] }
def sample
mail(to: 'recipient@example.com')
end
end
```
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'action_mailer_pixel'
```
And then execute:
```bash
$ bundle
$ bundle exec rails action_mailer_pixel:install:migrations
$ bundle exec rails db:migrate
$ bundle exec rails action_mailer_pixel:install
```
Mount the engine on a path of choice in **config/routes.rb**:
```ruby
mount ActionMailerPixel::Engine => '/action_mailer_pixel'
```
## Contributing
Contributions are welcome.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).