Skip to content

Commit 4c8446b

Browse files
authored
feat: enable conversion optimization for all sites, remove feature flag (#6151)
1 parent 1ed9a89 commit 4c8446b

5 files changed

Lines changed: 4 additions & 73 deletions

File tree

lib/plausible/stats/legacy/legacy_query_builder.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ defmodule Plausible.Stats.Legacy.QueryBuilder do
7878
struct!(query,
7979
preloaded_goals: preloaded_goals,
8080
revenue_warning: revenue_warning,
81-
revenue_currencies: revenue_currencies,
82-
optimized_conversions: FunWithFlags.enabled?(:optimized_conversions, for: site)
81+
revenue_currencies: revenue_currencies
8382
)
8483
end
8584

lib/plausible/stats/query.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ defmodule Plausible.Stats.Query do
3232
time_on_page_data: %{},
3333
sql_join_type: :left,
3434
smear_session_metrics: false,
35-
optimize_name_filter?: true,
36-
optimized_conversions: false
35+
optimize_name_filter?: true
3736

3837
require OpenTelemetry.Tracer, as: Tracer
3938

lib/plausible/stats/query_builder.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,7 @@ defmodule Plausible.Stats.QueryBuilder do
183183
revenue_warning: revenue_warning,
184184
revenue_currencies: revenue_currencies,
185185
debug_metadata: debug_metadata,
186-
optimize_name_filter?: FunWithFlags.enabled?(:optimize_name_filter, for: site),
187-
optimized_conversions: FunWithFlags.enabled?(:optimized_conversions, for: site)
186+
optimize_name_filter?: FunWithFlags.enabled?(:optimize_name_filter, for: site)
188187
)
189188
end
190189

lib/plausible/stats/sql/query_builder.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ defmodule Plausible.Stats.SQL.QueryBuilder do
212212
defp dimension_group_by(q, :events, query, "event:goal" = dimension) do
213213
goal_join_data = Plausible.Stats.Goals.goal_join_data(query)
214214

215-
if query.optimized_conversions and Enum.all?(goal_join_data.custom_props_keys, &Enum.empty?/1) do
215+
if Enum.all?(goal_join_data.custom_props_keys, &Enum.empty?/1) do
216216
from(e in q,
217217
join: goal in Expression.event_goal_join_no_props(goal_join_data),
218218
hints: "ARRAY",

test/plausible_web/controllers/api/external_stats_controller/query_goal_dimension_test.exs

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -651,70 +651,4 @@ defmodule PlausibleWeb.Api.ExternalStatsController.QueryGoalDimensionTest do
651651
]
652652
end
653653
end
654-
655-
describe "optimized_conversions flag" do
656-
test "returns same results as baseline for goals without custom props", %{
657-
conn: conn,
658-
site: site
659-
} do
660-
FunWithFlags.enable(:optimized_conversions, for_actor: site)
661-
662-
insert(:goal, %{site: site, event_name: "Purchase"})
663-
insert(:goal, %{site: site, page_path: "/test"})
664-
665-
populate_stats(site, [
666-
build(:pageview, timestamp: ~N[2021-01-01 00:00:01], pathname: "/test"),
667-
build(:event, name: "Purchase", timestamp: ~N[2021-01-01 00:00:03]),
668-
build(:event, name: "Purchase", timestamp: ~N[2021-01-01 00:00:03])
669-
])
670-
671-
conn =
672-
post(conn, "/api/v2/query", %{
673-
"site_id" => site.domain,
674-
"date_range" => "all",
675-
"metrics" => ["visitors"],
676-
"dimensions" => ["event:goal"]
677-
})
678-
679-
assert json_response(conn, 200)["results"] == [
680-
%{"dimensions" => ["Purchase"], "metrics" => [2]},
681-
%{"dimensions" => ["Visit /test"], "metrics" => [1]}
682-
]
683-
end
684-
685-
test "falls back to full query when goals have custom props", %{conn: conn, site: site} do
686-
FunWithFlags.enable(:optimized_conversions, for_actor: site)
687-
688-
{:ok, _goal} =
689-
Plausible.Goals.create(site, %{
690-
"event_name" => "Purchase",
691-
"custom_props" => %{"plan" => "premium"}
692-
})
693-
694-
populate_stats(site, [
695-
build(:event,
696-
name: "Purchase",
697-
"meta.key": ["plan"],
698-
"meta.value": ["premium"]
699-
),
700-
build(:event,
701-
name: "Purchase",
702-
"meta.key": ["plan"],
703-
"meta.value": ["free"]
704-
)
705-
])
706-
707-
conn =
708-
post(conn, "/api/v2/query", %{
709-
"site_id" => site.domain,
710-
"date_range" => "all",
711-
"metrics" => ["visitors"],
712-
"dimensions" => ["event:goal"]
713-
})
714-
715-
assert json_response(conn, 200)["results"] == [
716-
%{"dimensions" => ["Purchase"], "metrics" => [1]}
717-
]
718-
end
719-
end
720654
end

0 commit comments

Comments
 (0)