我有@promoted_products在整个网站上发布(如广告),并链接到@products。
目标是计算来自promote_product(ad)的特定产品的点击次数。
<% @promoted_products.each do |promoted_product| %>
<%= link_to promoted_product.product.name, product_path(promoted_product.product) %>
...
<% end %>
答案 0 :(得分:1)
考虑链接重定向用户以显示产品的行为。然后,您可以在数据库和每个显示请求更新计数中添加字段计数。通过这种方式,您可以轻松找到点击次数。您也可以使用remote true来检查请求是js还是html。在js请求更新计数记录和html中不更新计数。因此,您将获得准确的点击次数。
答案 1 :(得分:1)
不需要使用Google Analytics。
我们是开发人员 - 我们可以制作自己的东西!
-
<强>系统强>
我这样做的方法是使用带有数据库或Redis实例的控制器来提供&#34;运行总数&#34;点击链接:
#app/controllers/products_controller.rb
Class ProductsController < ApplicationController
before_action :increase_click
private
def increase_click
@product = Product.find params[:id]
@product.increase_click
end
end
#app/models/product.rb
Class Product < ActiveRecord::Base
has_many :clicks
def increase_click
self.clicks.create!
end
end
#app/models/click.rb
Class Click < ActiveRecord::Base
#fields id | product_id | created_at | updated_at -> add more attributes for specific info
belongs_to :product
end
这样,您就可以在每次调用ProductsController
时为产品添加新的点击次数。
然后,您可以按如下方式调用clicks
产品:
@product = Product.find params[:id]
@product.clicks.size #-> number of clicks
答案 2 :(得分:0)
您可以轻松地将https://github.com/railslove/rack-tracker添加到您的代码中并使用Google Analytics。例如:
def show
tracker do |t|
t.google_analytics :send, { type: 'event', category: 'button', action: 'click', label: 'nav-buttons', value: 'X' }
end
end