Module: Omnitrack
- Defined in:
- lib/omnitrack.rb,
lib/omnitrack/errors.rb,
lib/omnitrack/logger.rb,
lib/omnitrack/result.rb,
lib/omnitrack/context.rb,
lib/omnitrack/railtie.rb,
lib/omnitrack/version.rb,
lib/omnitrack/registry.rb,
lib/omnitrack/adapters/base.rb,
lib/omnitrack/adapters/meta.rb,
lib/omnitrack/configuration.rb,
lib/omnitrack/adapters/tiktok.rb,
lib/omnitrack/adapters/snapchat.rb,
lib/omnitrack/jobs/tracking_job.rb,
lib/omnitrack/adapters/google_ads.rb,
lib/omnitrack/concerns/controller.rb,
lib/omnitrack/pipeline/dispatcher.rb,
lib/omnitrack/helpers/view_helpers.rb,
lib/omnitrack/adapters/google_analytics.rb,
lib/omnitrack/middleware/request_tracker.rb,
lib/generators/omnitrack/install/install_generator.rb
Overview
Omnitrack
Top-level module providing the primary public API.
Usage:
Omnitrack.configure { |c| c.adapters = { ... } }
Omnitrack.track("purchase", value: 99.00, currency: "USD")
Omnitrack.track_conversion(value: 99.00, order_id: "ORD-001")
Omnitrack.identify(email: "user@example.com")
Defined Under Namespace
Modules: Adapters, Concerns, Helpers, Jobs, Middleware, Pipeline, Registry Classes: AdapterError, Configuration, ConfigurationError, Context, Error, InstallGenerator, InvalidPayloadError, Logger, MultiResult, Railtie, Result, UnknownAdapterError
Constant Summary collapse
- VERSION =
"2.0.0"- Controller =
Shorthand for
Omnitrack::Concerns::Controller Concerns::Controller
Class Method Summary collapse
- .backend_mode? ⇒ Boolean
-
.config ⇒ Omnitrack::Configuration
Access the global configuration object.
-
.configure {|config| ... } ⇒ Object
Configure OmniTrack via block.
-
.frontend_mode? ⇒ Boolean
——————————————————————- Mode helpers ——————————————————————-.
-
.identify(user_data = {}) ⇒ Omnitrack::MultiResult
Identify a user across all enabled adapters.
- .logger ⇒ Omnitrack::Logger
-
.reset! ⇒ Object
Reset configuration and logger (useful in tests).
-
.track(event_name, payload = {}) ⇒ Omnitrack::MultiResult
Track a named event across all enabled adapters.
-
.track_conversion(data = {}) ⇒ Omnitrack::MultiResult
Track a conversion across all enabled adapters.
Class Method Details
.backend_mode? ⇒ Boolean
132 133 134 |
# File 'lib/omnitrack.rb', line 132 def backend_mode? %i[backend hybrid].include?(config.effective_mode) end |
.config ⇒ Omnitrack::Configuration
Access the global configuration object.
53 54 55 |
# File 'lib/omnitrack.rb', line 53 def config @config ||= Configuration.new end |
.configure {|config| ... } ⇒ Object
Configure OmniTrack via block.
Omnitrack.configure do |c|
c.mode = :hybrid
c.adapters = { meta: { enabled: true, pixel_id: "..." } }
end
64 65 66 67 68 69 |
# File 'lib/omnitrack.rb', line 64 def configure yield config config.validate! reset_logger! self end |
.frontend_mode? ⇒ Boolean
Mode helpers
128 129 130 |
# File 'lib/omnitrack.rb', line 128 def frontend_mode? %i[frontend hybrid].include?(config.effective_mode) end |
.identify(user_data = {}) ⇒ Omnitrack::MultiResult
Identify a user across all enabled adapters.
120 121 122 |
# File 'lib/omnitrack.rb', line 120 def identify(user_data = {}) dispatch(:identify_user, user_data.to_h) end |
.logger ⇒ Omnitrack::Logger
91 92 93 |
# File 'lib/omnitrack.rb', line 91 def logger @logger ||= build_logger end |
.reset! ⇒ Object
Reset configuration and logger (useful in tests)
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/omnitrack.rb', line 72 def reset! @config = nil @logger = nil Omnitrack::Registry.reset! # Re-bind built-in adapters without reloading (avoids duplicate constant/method warnings) [ Omnitrack::Adapters::GoogleAds, Omnitrack::Adapters::GoogleAnalytics, Omnitrack::Adapters::Meta, Omnitrack::Adapters::TikTok, Omnitrack::Adapters::Snapchat ].each { |adapter_class| Omnitrack::Registry.register(adapter_class) } end |
.track(event_name, payload = {}) ⇒ Omnitrack::MultiResult
Track a named event across all enabled adapters.
104 105 106 |
# File 'lib/omnitrack.rb', line 104 def track(event_name, payload = {}) dispatch(:track_event, event_name.to_s, payload.to_h) end |
.track_conversion(data = {}) ⇒ Omnitrack::MultiResult
Track a conversion across all enabled adapters.
112 113 114 |
# File 'lib/omnitrack.rb', line 112 def track_conversion(data = {}) dispatch(:track_conversion, data.to_h) end |