analytics/lib/mix/tasks
Vini Brasil e4d4f7d954
Revenue tracking: Ingestion and breakdown queries (#2957)
* Add revenue fields to ClickHouse events

This commit adds 4 fields to the ClickHouse events_v2 table:

* `revenue_source_amount` and `revenue_source_currency` store revenue in
  the original currency sent during ingestion

* `revenue_reporting_amount` and `revenue_reporting_currency` store
  revenue in a common currency to perform calculations, and this
  currency is defined by the user when setting up the goal

The type of amount fields is `Nullable(Decimal64(3))`. That covers all
fiat currencies and allows us to store huge amounts. Even though
ClickHouse does not suggest using `Nullable`, this is a good use case,
because otherwise additional work would have to be done to
differentiate missing values from real zeroes.

I ran a benchmark with the data pattern we expect in production, where
we have more missing values than real decimals. I created 100 million
records where 90% of decimals are missing. The difference between the
tables in storage is just 0.4Mb.

* Add revenue parameter to Events API

This commit adds support for sending revenue data in ingestion using the
`revenue` parameter - aliased to `$`.

* Add revenue parameter to mix send_pageview

* Add average and total revenue to breakdown queries
2023-06-12 18:29:17 +01:00
..
analyze_plans.ex Add task for plans 2022-01-15 09:07:59 -06:00
clean_clickhouse.ex Switch to new clickhouse adapter (ch/chto) (#2733) 2023-03-21 09:55:59 +01:00
create_free_subscription.ex Formatting only changes - No code change (#75) 2020-06-08 10:35:13 +03:00
download_country_database.ex Replace Geolix with Locus (#2362) 2023-01-17 12:05:09 -03:00
generate_referrer_favicons.ex Suppress dialyzer warning 2021-08-04 17:25:20 +03:00
pull_sandbox_subscription.ex CRM improvements (#1903) 2022-05-27 14:45:25 +03:00
send_pageview.ex Revenue tracking: Ingestion and breakdown queries (#2957) 2023-06-12 18:29:17 +01:00