mirror of
https://github.com/status-im/fathom.git
synced 2025-03-01 03:20:27 +00:00
fix realtime visitor count query incl. bc for pageviews without an expliti site tracking ID
This commit is contained in:
parent
2f64d56771
commit
051d0addb3
@ -16,7 +16,7 @@ class Realtime extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.fetchData();
|
this.fetchData(this.props.siteId);
|
||||||
this.interval = window.setInterval(this.handleIntervalEvent, 15000);
|
this.interval = window.setInterval(this.handleIntervalEvent, 15000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
"github.com/usefathom/fathom/pkg/models"
|
"github.com/usefathom/fathom/pkg/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -102,14 +103,23 @@ func (db *sqlstore) GetAverageSiteBounceRate(siteID int64, startDate time.Time,
|
|||||||
|
|
||||||
func (db *sqlstore) GetRealtimeVisitorCount(siteID int64) (int64, error) {
|
func (db *sqlstore) GetRealtimeVisitorCount(siteID int64) (int64, error) {
|
||||||
var siteTrackingID string
|
var siteTrackingID string
|
||||||
var total int64
|
if err := db.Get(&siteTrackingID, db.Rebind(`SELECT tracking_id FROM sites WHERE id = ? LIMIT 1`), siteID); err != nil && err != sql.ErrNoRows {
|
||||||
if err := db.Get(&siteTrackingID, db.Rebind(`SELECT tracking_id FROM sites WHERE id = ?`), siteID); err != nil && err != sql.ErrNoRows {
|
log.Error(err)
|
||||||
return 0, mapError(err)
|
return 0, mapError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
sql := `SELECT COUNT(*) FROM pageviews p WHERE ( site_tracking_id = ? OR ( ? = 1 AND site_tracking_id = "" )) AND ( duration = 0 OR is_bounce = TRUE) AND timestamp > ?`
|
var sql string
|
||||||
|
var total int64
|
||||||
|
|
||||||
|
// for backwards compatibility with tracking snippets without an explicit site tracking ID (< 1.1.0)
|
||||||
|
if siteID == 1 {
|
||||||
|
sql = `SELECT COUNT(*) FROM pageviews p WHERE ( site_tracking_id = ? OR site_tracking_id = '' ) AND ( duration = 0 OR is_bounce = TRUE) AND timestamp > ?`
|
||||||
|
} else {
|
||||||
|
sql = `SELECT COUNT(*) FROM pageviews p WHERE site_tracking_id = ? AND ( duration = 0 OR is_bounce = TRUE) AND timestamp > ?`
|
||||||
|
}
|
||||||
|
|
||||||
query := db.Rebind(sql)
|
query := db.Rebind(sql)
|
||||||
if err := db.Get(&total, query, siteTrackingID, siteID, time.Now().Add(-5*time.Minute)); err != nil {
|
if err := db.Get(&total, query, siteTrackingID, time.Now().Add(-5*time.Minute)); err != nil {
|
||||||
return 0, mapError(err)
|
return 0, mapError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user