我在Rails应用程序上有一个 ruby 。我按照facebook的指示添加像素。

但是,要跟踪转换,facebook要求您将页面放入转换中,该转换将在达到所需结果时显示。即,如果我想表明客户已注册,则将注册后进入的页面作为成功对象进行跟踪。

我的问题是,在我的应用程序中,当客户注册时,没有登录页面。该应用程序将用户带回到主页。它在首页上显示一条消息,因此我试图查看是否有一种方法可以跟踪 Controller 操作(而不是实际页面)的转化。

我需要计算的 Action 没有页面,它们是 Controller Action 。是否有任何人都知道的关于如何做到这一点的瑰宝,文档或最佳实践?

这是进入布局文件的像素...

<!-- Facebook Pixel Code -->
      <script>
      !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
      n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
      n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
      t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
      document,'script','https://connect.facebook.net/en_US/fbevents.js');
      fbq('init', '18027724*****', {
      em: 'insert_email_variable,'
      });
      fbq('track', 'PageView');
      </script>
      <noscript><img height="1" width="1" style="display:none"
      src="https://www.facebook.com/tr?id=180277241*****&ev=PageView&noscript=1"
      /></noscript>
  <!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->

但是我需要它在 Controller 中触发...
def create
    @reportapproval = current_user.reportapprovals.create(authorization_params)
      if @reportapproval.valid?
        if @reportapproval.manager_paying_report == true
          flash[:notice] = "Please make payment before proceeding"
          redirect_to new_managers_charge_path(id: @reportapproval.id)
        else
          flash[:notice] = "You have requested a report from #{@reportapproval.tenant_last_name}."
          redirect_to managers_dashboard_path
          @reportapproval.save
        end
     <----PIXEL FIRES HERE IN THE PROCESS ----->
      else
        flash[:error] = @reportapproval.errors.full_messages.to_sentence
        redirect_to managers_dashboard_path
      end
end

最佳答案

较干净的解决方案可能是使用在以下位置找到的rack-tracker gem:
https://github.com/railslove/rack-tracker

主分支尚没有新的facebook像素,因此请改用此fork:
https://github.com/jolim/rack-tracker

将此添加到您的gemfile中:

gem 'rack-tracker', git: 'https://github.com/jolim/rack-tracker.git', ref: 'c2b1b30'

在您的application.rb中:

config.middleware.use(Rack::Tracker) do
  handler :facebook, { id: 'PIXEL_ID' }
end

您将PIXEL_ID替换为Facebook像素ID的位置。

然后在你的controller中:

def create
  ...
  # PIXEL FIRES HERE IN THE PROCESS
  tracker do |t|
    t.facebook :track, { type: 'Purchase', options: { value: 100, currency: 'USD' } }
  end
  ...
end

10-06 07:38
查看更多