2017-01-07 6 views
2

레일즈 애플리케이션에 루비가 있습니다. 페이스 북의 지시에 따라 픽셀을 추가했습니다.레일 컨트롤러 액션에서 페이스 북 픽셀을 만드는 법

그러나 전환을 추적하려면 원하는 결과에 도달 할 때 표시 될 전환 페이지를 게시해야합니다. 즉, 고객이 가입했음을 보여주고 싶다면 가입 후 추적 할 페이지를 성공 객체로 지정합니다.

내 문제는 고객이 가입 할 때 내 방문 페이지가 없다는 것입니다. 앱이 사용자를 홈페이지로 다시 이동시킵니다. 홈페이지에 메시지가 표시되므로 실제 페이지 대신 컨트롤러 작업에서 전환을 추적 할 수있는 방법이 있는지 확인하려고합니다.

카운트해야하는 동작에는 페이지가 없으며 컨트롤러 동작입니다. 누구나 알고있는 이것을 행하는 방법에 대한 보석, 문서 또는 모범 사례가 있습니까? 여기

은 레이아웃 파일에 들어가는 픽셀 ...

내가 컨트롤러 여기에 불 필요하지만
<!-- 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 --> 

...

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 
+1

은 아마 그냥 날,하지만 난 당신이 해결하려고하는 문제를 이해하지 않습니다. 좀 더 정교하고 명확하게하기 위해 코드를 추가 할 수 있습니까? – spickermann

답변

4

: 그것은 같이 보일 것이다 대신 포크를 사용 https://github.com/jolim/rack-tracker

gemfile이 추가 :

gem 'rack-tracker', git: 'https://github.com/jolim/rack-tracker.git', ref: 'c2b1b30' 
당신의 application.rb에서3210

: 당신이 당신의 페이스 북 픽셀 ID로 PIXEL_ID 교체

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

. 당신의 controller에서 다음

:

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

당신은에 도우미를 추가 할 수있다 현재 컨트롤러와 동작을 확인한 다음 그 안에 추적 픽셀을 표시합니다. 그래서, https://github.com/railslove/rack-tracker

가 마스터 분기 아직 새로운 페이스 북의 픽셀을 가지고 있지 않습니다 클리너 솔루션은 여기에있는 랙 추적기 보석을 사용할 수 있습니다

# In ApplicationHelper 
def display_tracking_pixel?(controller) 
    controller.current_controller == "my_controller" && controller.current_action == "my_action" 
end 

# In the layout 
<% if display_tracking_pixel?(controller) %> 
<!-- Tracking embed goes here --> 
<% end %>