Channels: backfill utm_medium based on click_param_id (#4833)

* Backfill utm_medium

Follow-up to https://github.com/plausible/analytics/pull/4817

* Update backfill
This commit is contained in:
Karl-Aksel Puulmann 2024-11-19 10:12:39 +02:00 committed by GitHub
parent 73166774e0
commit 9af498833e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 0 deletions

View File

@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
### Added ### Added
- Dashboard shows comparisons for all reports - Dashboard shows comparisons for all reports
- UTM Medium report and API shows (gclid) and (msclkid) for paid searches when no explicit utm medium present.
### Removed ### Removed
### Changed ### Changed

View File

@ -0,0 +1,27 @@
defmodule Plausible.IngestRepo.Migrations.BackfillUtmMediumClickIdParam do
@moduledoc """
Backfills utm_medium based on referrer_source and click_id_param
"""
use Ecto.Migration
def up do
execute(fn -> repo().query!(update_query("events_v2")) end)
execute(fn -> repo().query!(update_query("sessions_v2")) end)
end
def down do
raise "irreversible"
end
defp update_query(table) do
"""
ALTER TABLE #{table}
UPDATE utm_medium = multiIf(
referrer_source = 'Google' AND click_id_param = 'gclid', '(gclid)',
referrer_source = 'Bing' AND click_id_param = 'msclkid', '(msclkid)',
utm_medium
)
WHERE empty(utm_medium) AND NOT empty(click_id_param)
"""
end
end