aboutsummaryrefslogtreecommitdiffstats
path: root/doc/qtanalytics-concepts.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/qtanalytics-concepts.qdoc')
-rw-r--r--doc/qtanalytics-concepts.qdoc133
1 files changed, 133 insertions, 0 deletions
diff --git a/doc/qtanalytics-concepts.qdoc b/doc/qtanalytics-concepts.qdoc
new file mode 100644
index 0000000..cf9c2a3
--- /dev/null
+++ b/doc/qtanalytics-concepts.qdoc
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 Luxoft Sweden AB
+**
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtAnalytics plugin.
+**
+** $QT_BEGIN_LICENSE:GPL-QTAS$
+** Commercial License Usage
+** Licensees holding valid commercial Qt Automotive Suite licenses may use
+** this file in accordance with the commercial license agreement provided
+** with the Software or, alternatively, in accordance with the terms
+** contained in a written agreement between you and The Qt Company. For
+** licensing terms and conditions see https://www.qt.io/terms-conditions.
+** For further information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+** SPDX-License-Identifier: GPL-3.0
+**
+****************************************************************************/
+
+/*!
+
+\page qtanalytics-concepts.html
+\title Concepts
+
+\section1 Tracking
+
+What do we want to track?
+
+We want mostly track page views and actions, as also general device
+information.
+
+\section1 ConfigUtil
+
+\l ConfigUtil provides utility function to load and parse JSON based
+configuration files. The file lookup is based on a given name (e.g.
+\c {analytics}) and the lookup looks first for an environment variable
+called \c {ANALYTICS_CONFIG}, and if exists will take that path. If not
+then a file will be looked in the resource file named \c {:/analytics.json}.
+If this also not exists a warning is printed and the configuration is
+not successful.
+
+\section1 \l {Context} {Context}
+
+The \l Context object provides the methods available to the builders. It is
+reused across all hits. It provides a configuration value access as also network
+HTTP GET/POST methods.
+
+In general it should be possible to have a Context interface which could
+then be used inside the hit builders and by this making them more
+testable.
+
+The configuration is stored into a JSON file (e.g. analytics.json) which
+is looked up using the ConfigUtil functions.
+
+\sa {Context}, {IContext}
+
+\section1 \l {HitBuilder} {Hit Builder}
+
+The hit builder is an interface used to collect the various tracking
+information and then send the information away using a network.
+
+The hit builder has a common high level API to be shared across specific
+builders.
+
+\list
+\li send build trackVisit trackEvent
+\endlist
+
+\sa {HitBuilder}, {MatomoBuilder}, {GoogleBuilder}
+
+\section1 \l {MatomoBuilder} {Matomo Hit Builder}
+
+\list
+\li \l {https://developer.matomo.org/api-reference/tracking-api}
+\endlist
+
+The Matomo hit builder is enabled by setting tracker to "matomo" in the
+configuration file. The builder support visit and event tracking. It
+uses a GET request to the server URL to send the tracking information.
+
+\section1 \l {GoogleBuilder} {Google Analytics Tracking}
+
+\list
+\li \l {https://developers.google.com/analytics/devguides/collection/protocol/v1/}
+\li \l {https://ga-dev-tools.appspot.com/hit-builder/}
+\endlist
+
+The Google hit builder is enabled by setting the tracker to "google". It
+uses the Google measurements protocol.
+
+\section1 Configuration Format
+
+The configuration is stored in JSON documents. The document keys change with the chosen \c tracker (e.g. \c matomo, \c google).
+
+\note It is not possible currently to support several trackers.
+
+\section2 Google Configuration
+
+\code
+{
+ "tracker": "google"
+ "tid": "UA-555555555-5",
+ "cid": "555",
+ "deviceResolution": "1280x800",
+ "domain": "http://example.org",
+}
+\endcode
+
+\section2 Matomo Configuration
+
+\code
+{
+ "tracker": "matomo",
+ "server": "http://localhost:8000/piwik.php",
+ "idsite": "1"
+}
+\endcode
+
+
+*/