Class: Omnitrack::Adapters::Snapchat
- Defined in:
- lib/omnitrack/adapters/snapchat.rb
Overview
Snapchat Conversions API (server-side). Docs: marketingapi.snapchat.com/docs/conversion.html
Required config:
pixel_id — Snap Pixel ID
access_token — long-lived access token
Constant Summary collapse
- API_ENDPOINT =
"https://tr.snapchat.com/v2/conversion"- STANDARD_EVENTS =
%w[ PURCHASE ADD_CART VIEW_CONTENT ADD_BILLING SIGN_UP LOGIN START_CHECKOUT PAGE_VIEW SUBSCRIBE SEARCH CUSTOM_EVENT_1 ].freeze
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #identify_user(user_data = {}) ⇒ Object
- #track_conversion(data = {}) ⇒ Object
- #track_event(event_name, payload = {}) ⇒ Object
Methods inherited from Base
#enabled?, inherited, #initialize, #name
Constructor Details
This class inherits a constructor from Omnitrack::Adapters::Base
Instance Method Details
#identify_user(user_data = {}) ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/omnitrack/adapters/snapchat.rb', line 36 def identify_user(user_data = {}) ctx = Omnitrack::Context.current ctx&.merge!(snapchat_user_data: normalize_user(user_data)) Omnitrack::Result.success( adapter: name, metadata: { note: "Snapchat user data stored in context" } ) end |
#track_conversion(data = {}) ⇒ Object
32 33 34 |
# File 'lib/omnitrack/adapters/snapchat.rb', line 32 def track_conversion(data = {}) track_event("PURCHASE", data) end |
#track_event(event_name, payload = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/omnitrack/adapters/snapchat.rb', line 22 def track_event(event_name, payload = {}) safe_execute(event_name) do body = build_event_body(event_name, payload) response = http_post(API_ENDPOINT, body: body, headers: auth_headers) result = JSON.parse(response.body) Omnitrack::Result.success(adapter: name, data: result) end end |