Commit Graph

386 Commits

Author SHA1 Message Date
Uku Taht
d94a8dbc7e
Clickhouse (#66)
* Get stats from clickhosue

* Pull stats from clickhouse

* Use correct Query namespace

* Use Clickhouse in unit tests

* Use Clickhouse in stats controller tests

* Use fixtures for unit tests

* Add Clickhouse to travis

* Use Clickhouse session store for sessions

* Add garbage collection to session store

* Reload session state from Clickhouse on server restart

* Query from sessions table

* Trap exits in event write buffer

* Run hydration without starting the whole app

* Make session length 30 minutes

* Revert changes to fingerprint schema

* Remove clickhouse from fingerprint sessions

* Flush buffers before shutdown

* Use old stats when merging

* Remove old session schema

* Fix tests with CH sessions

* Add has_pageviews? to Stats

* Use CH in staging

* Update schema

* Fix test setup
2020-05-21 13:03:39 +03:00
Uku Taht
f7180f9620 Don't track wrong password page 2020-05-19 16:20:21 +03:00
Uku Taht
e7cd441a43 Skip tracking on share email 2020-05-19 16:18:26 +03:00
Uku Taht
f587e348cd Update contact form and email addresses 2020-05-18 16:20:00 +03:00
Uku Taht
d1b703f007
Clickhouse (#63)
* Get stats from clickhosue

* Pull stats from clickhouse

* Use correct Query namespace

* Use Clickhouse in unit tests

* Use Clickhouse in stats controller tests

* Use fixtures for unit tests

* Add Clickhouse to travis

* Use Clickhouse session store for sessions

* Add garbage collection to session store

* Reload session state from Clickhouse on server restart

* Query from sessions table

* Trap exits in event write buffer

* Run hydration without starting the whole app

* Make session length 30 minutes

* Revert changes to fingerprint schema

* Remove clickhouse from fingerprint sessions

* Flush buffers before shutdown

* Use old stats when merging

* Remove old session schema

* Fix tests with CH sessions

* Add has_pageviews? to Stats
2020-05-18 12:44:52 +03:00
Uku Taht
3faec27c82 Fix clickhouse buffer inserts 2020-05-07 14:53:06 +03:00
Uku Taht
5d1dc0d27c
Clickhouse DB (#62)
* WIP

* Get all stats from Clickhouse

* Use https dependency

* Do not namespace db tables in hydrate task

* Update hydration task

* Ingest data to clickhouse

* Double-write to both Clickhouse and Postgres

* Add test setup

* Keep old stats module

* Prepare for live ingestion test
2020-05-07 14:28:41 +03:00
Uku Taht
9f7b5b9533 Only delete subscription if it exists
Fixes #61
2020-05-07 14:26:22 +03:00
Uku Taht
9476ccf95c
Yearly billing (#58)
* Add yearly billing options

* Add new subscription names

* Add note about yearly billing in the email

* Add a test for change_plan function

* Add allowance function back in

* Test billing controller endpoint
2020-04-21 14:11:38 +03:00
Uku Taht
4163d2a9ba
Authentication updates (#54)
* Use separate cookie for shared link auth

* Remove CSRF protection from login and register pages

* Add AuthorizeStats Plug

* Fix tests
2020-04-14 14:04:35 +03:00
Uku Taht
75ac1dcc3a Use plausible.nolt.io 2020-04-13 17:54:47 +03:00
Uku Taht
1fc7442ad0 Don't set session if user isn't logged in 2020-04-13 15:14:16 +03:00
Uku Taht
1e66bde1d0 Add CTA to the demo page 2020-04-02 15:50:42 +03:00
Uku Taht
2b50c6cf2a Use correct headers 2020-04-02 13:43:06 +03:00
Uku Taht
d3c770a6da Remove log 2020-04-02 13:38:01 +03:00
Uku Taht
d8936888e6 Inspect headers 2020-04-02 13:32:36 +03:00
Uku Taht
074e895204 redirect users to /sites after login 2020-04-01 10:37:30 +03:00
Uku Taht
d9d43160d0 Add sites route 2020-03-31 16:16:21 +03:00
Uku Taht
1b9cc038a3 Make cookie accessible to JS 2020-03-31 16:08:00 +03:00
Uku Taht
9b9735dd0b Keep a cookie for whether the user is logged in 2020-03-31 15:47:34 +03:00
Uku Taht
e14001664c Fix tests 2020-03-31 15:01:27 +03:00
Uku Taht
594b085467
Analytics without using cookies (#44)
* Use fingerprints instead of user_id

* Fix tests
2020-03-24 10:50:16 +02:00
Uku Taht
ee92ed5213
Email flows (#46)
* Update activation email

* Update trial upgrade emails

* Remove feedback emails

* Remove feedback email test

* Update welcome email (and send it earlier)

* Site setup emails

* Add create site emails for trialers

* Add check stats email

* Remove dead code

* Adjust site setup emails for users who are not on trial

* BCC myself on all new emails

* Use old phrasing in the welcome email
2020-03-23 11:34:25 +02:00
Uku Taht
3fc17a51d5
Add field to track trial expiry date (#45) 2020-03-18 16:27:46 +02:00
Uku Taht
8db9a83cf7 Don't allow google to index the stats page 2020-03-17 15:14:50 +02:00
Uku Taht
cc5722050a
Show favicons for referrers (#39) 2020-03-03 14:32:32 +02:00
Uku Taht
1d21ce144e Skip plausible tracking on pages with customer site domains 2020-03-02 11:12:11 +02:00
Uku Taht
90a2c67825 Remove debug code 2020-03-02 10:48:11 +02:00
Uku Taht
c0f686b3d0 Fix trailing slash in referrer 2020-03-02 10:47:25 +02:00
Uku Taht
36c08b989d Debug bad referrer 2020-03-02 09:54:00 +02:00
Uku Taht
7d5443396f Use fingerprint 2020-02-27 12:04:13 +02:00
Uku Taht
aaa9c67e47
Add fingerprint sessions (#36) 2020-02-27 11:46:48 +02:00
Uku Taht
08eba461df Fix issue with snippet code 2020-02-26 11:46:28 +02:00
Uku Taht
79b9f72b52
Custom domains (#34)
* UI to create custom domains

* Only call ssh once per domain

* Update copy for custom domain setup

* Use correct user for ssh
2020-02-26 10:54:21 +02:00
Uku Taht
5495e53454
Backfill fingerprints for returning users (#33) 2020-02-12 14:42:34 +02:00
Uku Taht
ed3110a6ea
Introduce initial referrer and initial referrer source (#32)
* Introduce initial referrer and initial referrer source

* Add test
2020-02-12 11:11:02 +02:00
Uku Taht
7bb5d98956 Remove raw fingerprint 2020-02-11 11:02:44 +02:00
Uku Taht
759c21fff0 Use cloudflare header for fingerprint 2020-02-11 10:52:59 +02:00
Uku Taht
16b2dbf023 Store raw fingerprint for testing 2020-02-11 10:10:53 +02:00
Uku Taht
158dd3f822 Strip www from domain 2020-02-10 16:07:34 +02:00
Uku Taht
0875d57b59 Track fingerprint 2020-02-10 16:00:19 +02:00
Uku Taht
8a4d0a91d1
WIP: New UI updates (#19)
* WIP: New UI idea

* Remove hover styling if things are not clickable

* Improve mobile view

* Remove dead code

* Fade in tabs

* Update landing page with new style

* Fix countries test

* Fix alignment in conversions report
2020-02-10 15:17:00 +02:00
Uku Taht
e1ed9d59d9
Simple script format (#31)
* New script format

* Add popstate listener to p.js

* Render site creation error with focus
2020-02-06 11:25:24 +02:00
Uku Taht
3679a7351f Remove www from domain 2020-02-05 13:53:57 +02:00
Uku Taht
7dbbc8ba22
Configurable site id (#30)
* Use site id instead of hostname for events

* Use site id in domain status check

* Revert change to tracking module

* Catch more places where link generation needed updating

* Rename site_id to domain

* Drop hostname index from events
2020-02-04 15:44:13 +02:00
Uku Taht
f9724bf9f1 Delete user subscription when deleting the user 2020-01-29 16:00:18 +02:00
Uku Taht
5f62025176
Shared links (#29)
* Create shared links UI

* Show shared links in a list on settings page

* Show dropdown for each shared link

* Show icon actions for shared links

* Log user in when they click non-password-protected shared link

* Actually authenticate using a password

* Delete shared links
2020-01-29 11:29:11 +02:00
Uku Taht
3fc1b6d952 Remove tracking 2020-01-22 16:13:27 +02:00
Uku Taht
c96f364ad8
Add and remove recipients for email reports (#28)
* Add and remove recipients for email reports

* Remove unused google_settings controller action

* Background job sends email reports to multiple recipients

* Add a way to unsubscribe for recipients who cannot log in

* Fix view on plausible link

* Include bounce rate in email report
2020-01-22 11:16:53 +02:00
Uku Taht
423db302f7 Only count new visitors in referrer report 2020-01-16 15:40:06 +02:00
Uku Taht
9f30e9eb1c
Export main graph as csv (#24)
* Export main graph as csv

* Remove unused deps from mix-lock

* Update bamboo dependency
2020-01-13 15:16:35 +02:00
Uku Taht
254d34d0a4 Trim trailing slash from referrer 2020-01-08 10:53:08 +02:00
Uku Taht
29ae3a2c21 Show bounce rate for referrers and pages 2020-01-07 14:53:04 +02:00
Uku Taht
df1ba2cd82 Remove session length from the UI 2020-01-06 15:31:43 +02:00
Uku Taht
980275092d Show bounce rate and session length 2020-01-06 14:36:55 +02:00
Uku Taht
ddac5685a2 Add unload event to the tracking script 2019-12-18 16:06:01 +08:00
Uku Taht
f7d752988a Add sessions 2019-12-18 15:23:53 +08:00
Uku Taht
a1f61d1a8b Show goals to anon vistitors 2019-11-28 12:44:31 +08:00
Uku Taht
8888c86820 Launch goals & conversions 2019-11-28 12:01:07 +08:00
Uku Taht
69eba6b0f2 Revert "Track visits to public sites"
This reverts commit 7a9a0f9ea0.
2019-11-26 12:08:33 +08:00
Uku Taht
5ee2d908f2 Show conversion rate in the top stats when filtered for goal 2019-11-25 17:17:18 +08:00
Uku Taht
3b533fae21 Compare graph when filtering for goal 2019-11-25 11:37:50 +08:00
Uku Taht
c540c70e87 Show conversion rate when filtering for goal 2019-11-22 16:37:44 +08:00
Uku Taht
529d4f3018 Fix offset in react 2019-11-21 16:59:06 +08:00
Uku Taht
f71f98a521 Test Google referrer drilldown 2019-11-20 16:42:45 +08:00
Uku Taht
96abfc4ea1 Click on goal to see conversions for it 2019-11-20 13:48:27 +08:00
Uku Taht
e8f20e67cc
React (#17)
* Load dashboard with react

* Rename stast2 to dashboard

* Save timeframe on the frontend

* Implement current visitors

* Implement comparisons

* React to route changes

* Add modals

* Show number of visitors on hover

* Show 'Today' for today

* Add 30 days

* Show referrer drilldown

* Arrow keys to go back and forward

* Improve comparisons UI

* Fix dropdown when clicking on it

* Verify API access in a memoized fashion

* Test API access

* Test stats through controller

* Move map formatting from stats controller to stats

* Remove unused code

* Remove dead code from query

* Remove dead code from stats templates

* Add stats view test back in

* Render modal inside the modal component

* Implement google search terms

* Add explanation for screen sizes

* Separate dashboard JS from the app js
2019-11-19 12:30:42 +08:00
Uku Taht
7a9a0f9ea0 Track visits to public sites 2019-11-12 16:16:37 +08:00
Uku Taht
71f6ccc73c Add tests for site controller 2019-10-31 14:25:16 +08:00
Uku Taht
c7ed0d54ce Add goals and conversions 2019-10-31 13:39:51 +08:00
Uku Taht
d687663b80 Use new /event endpoint for pageviews 2019-10-31 11:49:46 +08:00
Uku Taht
3ea64de42b Add name to events 2019-10-25 14:06:11 +08:00
Uku Taht
0c453be08c Rename pageviews to events 2019-10-24 14:58:17 +08:00
Uku Taht
71edf2c86d Remove unused fields from pageviews 2019-10-15 15:34:41 +08:00
Uku Taht
731407f7b2 Configure Google Search Console property 2019-10-10 12:12:15 +08:00
Uku Taht
ac267c5f69 Manage monthly reports 2019-09-09 12:37:57 +01:00
Uku Taht
17e4dc96ef Rename email settings to weekly report 2019-09-09 12:19:21 +01:00
Uku Taht
12b91ab242 Offer new sites to set up weekly reports 2019-09-10 16:51:34 +01:00
Uku Taht
7b8b48982b Customize email address for email reports 2019-09-10 16:18:17 +01:00
Uku Taht
cc75974821 Allow user to change email settings from settings page 2019-09-07 15:01:37 +01:00
Uku Taht
8397944a11 Only delete google auth if it exists 2019-09-06 10:50:46 +01:00
Uku Taht
00d02faad0 Show current visitors 2019-09-04 16:08:01 +01:00
Uku Taht
d2855210de Fix bug with screen size 2019-09-04 10:50:56 +01:00
Uku Taht
f3985903b3 Add 7 days as an option 2019-09-03 12:06:06 +01:00
Uku Taht
dc201f0b57 Remember timeframe period for next time 2019-09-02 20:12:30 +01:00
Uku Taht
779d64e19a Initial commit 2019-09-02 12:29:19 +01:00