Class: SeoGa4SyncWorker
- Inherits:
-
Object
- Object
- SeoGa4SyncWorker
- Includes:
- Sidekiq::Status::Worker, Sidekiq::Worker
- Defined in:
- app/workers/seo_ga4_sync_worker.rb
Overview
Syncs engagement metrics from Google Analytics 4.
Can run in parallel with GSC and Visits sync (no dependencies).
Creates time-series data in site_map_data_points:
ga4_page_views, ga4_sessions, ga4_users, ga4_bounce_rate, ga4_engagement_rate, ga4_avg_session_duration
Scheduled nightly at 2:15 AM CT via sidekiq_production_schedule.yml
Instance Method Summary collapse
Instance Method Details
#perform(options = {}) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/workers/seo_ga4_sync_worker.rb', line 17 def perform( = {}) = .with_indifferent_access total 2 at 1, 'Syncing Google Analytics 4 metrics...' result = Seo::Ga4SyncService.new(.slice(:start_date, :end_date)).process at 2, 'Complete' store info_message: "GA4: #{result[:pages_updated]} pages updated" store pages_updated: result[:pages_updated] store errors: result[:errors] Rails.logger.info "[SeoGa4SyncWorker] Completed: #{result[:pages_updated]} pages" rescue StandardError => e Rails.logger.error "[SeoGa4SyncWorker] Failed: #{e.}" store info_message: "GA4 sync failed: #{e.}" raise end |