
Product
Introducing Rust Support in Socket
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.
GTMonRails enables you to integrate Google Tag Manager easy with Rails application.
GTMonRails not only embed Google Tag Manager snippet, but simply operate and send JavaScript's variable 'dataLayer' for GTM in Ruby code.
GTMonRails basically can't be used only this, you have to set up Tag and Trigger on Google Tag Manager.
Read this in other languages: 日本語
Add this line to your application's Gemfile:
gem 'gtm_on_rails'
And then execute:
$ bundle
And then run initial settings:
$ rails g gtm_on_rails:install
Edit the /config/initializers/gtm_on_rails.rb
file and customize following settings.
Set your Google Tag Manager container ID.
DataLayer is limited by bytesize at once post. If post size is over this bytesize, exception occured.
Settings that send google tag manager controller and action name by dataLayer. Be careful using this, if you enable this option, controller and action name output in html source code.
If somthing error occurred when output tags, subsequent tag's output is stopped and run subsequent processing. The point is, dataLayer error won't affect displaying website, if you enable this option.
Default local currency code when use Enhanced Ecommerce. The local currency must be specified in the ISO 4217 standard.
You only push Hash object in data_layer
variable, can send values what you want by dataLayer.
Usually I’d say you write like the following code in contoller.
data_layer.push({
name: 'name'
})
Configure the variable and so on Google Tag Manager when use sended values.
data_layer.push(
{
name: 'name'
},
before_page_view: true
)
You also can set dataLayer values before the "Page View" event of Google Tag Manager, when you use before_page_view
option as the above.
For examle, you use this option when want to use dataLayer's variables in the "Page View" event.
† Be careful of using this option, because you may not be measure PageView normalcy, when you send Hit type event to GoogleAnalytics before send PageView.
GtmOnRails::DataLayer::Object
object = GtmOnRails::DataLayer::Object.new({name: 'name'})
data_layer.push(object)
You also can use GtmOnRails::DataLayer::Object
object rather than Hash as the above.
object = GtmOnRails::DataLayer::Object.new({name: 'name'})
object.name
object.name = 'name2'
You can access values with GtmOnRails::DataLayer::Object
object as the above.
GtmOnRails::DataLayer::Event
event = GtmOnRails::DataLayer::Event.new('event_name', {name: 'name'})
data_layer.push(event)
You can send dataLayer with Google Tag Manager's event name, when write like the above code.
You can use Enhanced Ecommerce of Google Analytics easily using GTMonRails. Please look official help about details of Enhanced Ecommerce. https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce https://developers.google.com/tag-manager/enhanced-ecommerce
Enhanced Ecommerce has the following 4 types of data object,
and, the following 10 types of measuring activity object.
4 types of data object is used in each measuring activity objects. You enable Enhanced Ecommerce at Google Tag Manager, and 9 tyoes of measuring activity object is sent with 'dataLayer' with 'PageView' or 'Event' of Google Analytics.
Please look official help about details of Enhanced Ecommerce data object. Only GTMonRails's own configures are described.
GtmOnRails::DataLayer::Ecommerce::Impression
Official Help : https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#impression-data
ex.
GtmOnRails::DataLayer::Ecommerce::Impression.new(id: '01', name: 'product_1')
Key | Description |
---|---|
id | In Official Help |
name | In Official Help |
list | In Official Help |
brand | In Official Help |
category | Array of String. Maximum 5. |
variant | In Official Help |
position | In Official Help |
price | In Official Help |
GtmOnRails::DataLayer::Ecommerce::Product
Official Help : https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#product-data
ex.
GtmOnRails::DataLayer::Ecommerce::Product.new(id: '01', name: 'product_1')
Key | Description |
---|---|
id | In Official Help |
name | In Official Help |
list | In Official Help |
brand | In Official Help |
category | Array of String. Maximum 5. |
variant | In Official Help |
price | In Official Help |
quantity | In Official Help |
coupon | In Official Help |
position | In Official Help |
GtmOnRails::DataLayer::Ecommerce::Promotion
Official Help : https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#promotion-data
ex.
GtmOnRails::DataLayer::Ecommerce::Promotion.new(id: '01', name: 'product_1')
Key | Description |
---|---|
id | In Official Help |
name | In Official Help |
creative | In Official Help |
position | In Official Help |
GtmOnRails::DataLayer::Ecommerce::Action
Official Help : https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#action-data
ex.
GtmOnRails::DataLayer::Ecommerce::Action.new(list: 'general product list')
Key | Description |
---|---|
id | In Official Help |
affiliation | In Official Help |
revenue | In Official Help |
tax | In Official Help |
shipping | In Official Help |
coupon | In Official Help |
list | In Official Help |
step | In Official Help |
option | In Official Help |
Please look official help about details of Enhanced Ecommerce data object. Only GTMonRails's own configures are described.
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#product-impressions
You need to send this activity to GoogleAnalytics as 'PageView'.
ex.
GtmOnRails::DataLayer::Ecommerce.product_impression(impressions: impressions)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
impressions | Array of GtmOnRails::DataLayer::Ecommerce::Impression object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#product-clicks
You need to send this activity to GoogleAnalytics as 'Event'.
ex.
GtmOnRails::DataLayer::Ecommerce.product_click(action: action, products: products)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
action | GtmOnRails::DataLayer::Ecommerce::Action object or Hash. |
products | Array of GtmOnRails::DataLayer::Ecommerce::Product object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#details
You need to send this activity to GoogleAnalytics as 'PageView'.
ex.
GtmOnRails::DataLayer::Ecommerce.product_detail(action: action, products: products)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
action | GtmOnRails::DataLayer::Ecommerce::Action object or Hash. |
products | Array of GtmOnRails::DataLayer::Ecommerce::Product object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#add
You need to send this activity to GoogleAnalytics as 'Event'.
ex.
GGtmOnRails::DataLayer::Ecommerce.add_to_cart(products: products)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
products | Array of GtmOnRails::DataLayer::Ecommerce::Product object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#add
You need to send this activity to GoogleAnalytics as 'Event'.
ex.
GtmOnRails::DataLayer::Ecommerce.remove_from_cart(products: products)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
products | Array of GtmOnRails::DataLayer::Ecommerce::Product object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#promo-impressions
You need to send this activity to GoogleAnalytics as 'PageView'.
ex.
GtmOnRails::DataLayer::Ecommerce.promotion_impression(promotions: promotions)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
promotions | Array of GtmOnRails::DataLayer::Ecommerce::Promotion object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#promo-clicks
You need to send this activity to GoogleAnalytics as 'Event'.
ex.
GtmOnRails::DataLayer::Ecommerce.promotion_click(promotions: promotions)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
promotions | Array of GtmOnRails::DataLayer::Ecommerce::Promotion object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#checkoutstep
You need to send this activity to GoogleAnalytics as 'Event'.
ex.
action = GtmOnRails::DataLayer::Ecommerce::Action.new({
step: 1
})
GtmOnRails::DataLayer::Ecommerce.checkout(action: action, products: products)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
action | GtmOnRails::DataLayer::Ecommerce::Action object or Hash. |
products | Array of GtmOnRails::DataLayer::Ecommerce::Product object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#purchases
You need to send this activity to GoogleAnalytics as 'PageView'.
ex.
action = GtmOnRails::DataLayer::Ecommerce::Action.new({
id: '01',
affiliation: 'Online Store',
revenue: '35.43',
tax: '4.90',
shipping: '5.99',
coupon: 'SUMMER_SALE'
})
GtmOnRails::DataLayer::Ecommerce.purchase(action: action, products: products)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
action | GtmOnRails::DataLayer::Ecommerce::Action object or Hash. |
products | Array of GtmOnRails::DataLayer::Ecommerce::Product object or Hash. |
Official Help : https://developers.google.com/tag-manager/enhanced-ecommerce#refunds
You need to send this activity to GoogleAnalytics as 'PageView'.
ex.
action = GtmOnRails::DataLayer::Ecommerce::Action.new({
id: '01'
})
GtmOnRails::DataLayer::Ecommerce.refund(action: action)
Key | Description |
---|---|
currency | Local currency. The local currency must be specified in the ISO 4217 standard. Default value is configured in config/initializers/gtm_o_rails.rb . |
action | GtmOnRails::DataLayer::Ecommerce::Action object or Hash. |
The gem is available as open source under the terms of the MIT License.
FAQs
Unknown package
We found that gtm_on_rails demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.
Product
Socket’s precomputed reachability slashes false positives by flagging up to 80% of vulnerabilities as irrelevant, with no setup and instant results.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.