Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
<a href="https://plausible.io/docs">Docs</a> |
<a href="https://github.com/plausible/analytics/blob/master/CONTRIBUTING.md">Contributing</a>
<br /><br />
<a href="https://code-rho-dun.vercel.app/google-analytics/">
<img src="https://code-rho-dun.vercel.app/badge/google-analytics.svg" alt="Featured on osalt.dev" />
</a>
</p>

[Plausible Analytics](https://plausible.io/) is an open source, privacy-first web analytics tool. Lightweight, cookie-free [alternative to Google Analytics](https://plausible.io/blog/remove-google-analytics). Available in managed cloud or self-hosted community edition.
Expand Down
13 changes: 6 additions & 7 deletions lib/plausible/stats/query_optimizer.ex
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,9 @@ defmodule Plausible.Stats.QueryOptimizer do
Enum.find(query.dimensions, &Time.time_dimension?/1)
end




defp build_split_query(:events, metrics, query) do
{
:events,
Expand All @@ -178,13 +181,9 @@ defmodule Plausible.Stats.QueryOptimizer do
end)

filters =
if "event:page" in query.dimensions do
Filters.rename_dimensions_used_in_filter(query.filters, %{
"event:page" => "visit:entry_page"
})
else
query.filters
end
Filters.rename_dimensions_used_in_filter(query.filters, %{
"event:page" => "visit:entry_page"
})

{
:sessions,
Expand Down
6 changes: 5 additions & 1 deletion lib/plausible/stats/sql/where_builder.ex
Original file line number Diff line number Diff line change
Expand Up @@ -200,8 +200,12 @@ defmodule Plausible.Stats.SQL.WhereBuilder do
filter_field(db_field_name(key), filter)
end

defp add_filter(:sessions, query, [op, "event:page" | rest] = _filter) do
add_filter(:sessions, query, [op, "visit:entry_page" | rest])
end

defp add_filter(:sessions, _query, [_, "event:" <> _ | _rest]) do
# Cannot apply sessions filters directly on session query where clause.
# Cannot apply other event filters directly on session query where clause.
true
end

Expand Down
2 changes: 1 addition & 1 deletion lib/plausible/stats/table_decider.ex
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ defmodule Plausible.Stats.TableDecider do
conflicting_event_metrics = event_only_metrics -- @revenue_metrics

cond do
# event:page is a special case handled in QueryOptimizer.split_sessions_query
# event:page is a special case handled in QueryOptimizer.build_split_query
event_only_dimensions == ["event:page"] ->
:ok

Expand Down