diff --git a/README.rst b/README.rst index 685160f..06c8298 100644 --- a/README.rst +++ b/README.rst @@ -8,6 +8,7 @@ Using an analytics service with a Django project means adding Javascript tracking code to the project templates. Of course, every service has its own specific installation instructions. Furthermore, you need to include your unique identifiers, which then end up in the templates. +Not very nice. This application hides the details of the different analytics services behind a generic interface, and keeps personal information and @@ -21,6 +22,7 @@ Currently supported services: * `Chartbeat`_ traffic analysis * `Clicky`_ traffic analysis * `Crazy Egg`_ visual click tracking +* `Geckoboard`_ dashboard * `Google Analytics`_ traffic analysis * `HubSpot`_ inbound marketing * `KISSinsights`_ feedback surveys @@ -30,7 +32,8 @@ Currently supported services: * `Performable`_ web analytics and landing pages The documentation can be found in the ``docs`` directory or `read -online`_. The project source is `hosted by GitHub`_. +online`_. The source code and issue tracker are generously `hosted by +GitHub`_. If you want to help out with the development of django-analytical, by posting detailed bug reports, proposing new features or other analytics diff --git a/docs/history.rst b/docs/history.rst index 34611c0..2ed7038 100644 --- a/docs/history.rst +++ b/docs/history.rst @@ -27,4 +27,4 @@ Helping out =========== .. include:: ../README.rst - :start-after: The project source is `hosted by GitHub`_. + :start-after: GitHub`_. diff --git a/docs/install.rst b/docs/install.rst index 0fc0215..39c5ba1 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -137,6 +137,10 @@ settings required to enable each service are listed here: OPTIMIZELY_ACCOUNT_NUMBER = '1234567' +* :doc:`Performable `:: + + PERFORMABLE_API_KEY = '123abc' + ---- diff --git a/docs/services/clicky.rst b/docs/services/clicky.rst index 386267d..eb5208a 100644 --- a/docs/services/clicky.rst +++ b/docs/services/clicky.rst @@ -116,7 +116,12 @@ Context variable Clicky property Description ``group`` keys. ------------------ --------------- ----------------------------------- ``clicky_goal`` goal_ A succeeded goal. A dictionary - containing ``id`` and ``revenue`` + containing ``id`` and optionally + ``revenue`` keys. +------------------ --------------- ----------------------------------- +``clicky_split`` split_ Split testing page version. A + dictionary containing ``name``, + ``version`` and optionally ``goal`` keys. ------------------ --------------- ----------------------------------- ``clicky_href`` href_ The URL as tracked by Clicky. @@ -131,6 +136,7 @@ Context variable Clicky property Description .. _goal: http://getclicky.com/help/customization#goal .. _href: http://getclicky.com/help/customization#href .. _title: http://getclicky.com/help/customization#title +.. _split: http://getclicky.com/help/customization#split .. _clicky-identify-user: diff --git a/docs/services/mixpanel.rst b/docs/services/mixpanel.rst index 3b5bda2..0240931 100644 --- a/docs/services/mixpanel.rst +++ b/docs/services/mixpanel.rst @@ -115,8 +115,8 @@ Tracking events =============== The django-analytical app integrates the Mixpanel Javascript API in -templates. To tracking events in views or other parts of Django, use -Wes Winham's `django-celery`_ package. +templates. To tracking events in views or other parts of Django, you +can use Wes Winham's `django-celery`_ package. If you want to track an event in Javascript, use the asynchronous notation, as described in the section titled diff --git a/docs/services/performable.rst b/docs/services/performable.rst index 4e067c1..87f09ae 100644 --- a/docs/services/performable.rst +++ b/docs/services/performable.rst @@ -55,7 +55,7 @@ Setting the API key You Performable account has its own API key, which :ttag:`performable` tag will include it in the rendered Javascript code. You can find your API key on the *Account Settings* page (click 'Account Settings' in the -top right-hand corner of your Performable dashboard. Set +top right-hand corner of your Performable dashboard). Set :const:`PERFORMABLE_API_KEY` in the project :file:`settings.py` file:: PERFORMABLE_API_KEY = 'XXXXXX' @@ -69,9 +69,9 @@ Identifying authenticated users ------------------------------- If your websites identifies visitors, you can pass this information on -to Performable so that you can tie survey submissions to customers. -By default, the username of an authenticated user is passed to -Performable automatically. See :ref:`identifying-visitors`. +to Performable so that you can track individual users. By default, the +username of an authenticated user is passed to Performable +automatically. See :ref:`identifying-visitors`. You can also send the visitor identity yourself by adding either the ``performable_identity`` or the ``analytical_identity`` variable to diff --git a/docs/tutorial.rst b/docs/tutorial.rst index 3853e10..b472a49 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -4,12 +4,14 @@ Tutorial ======== -In this tutorial you will learn how to install and configure -django-analytical for basic tracking. Suppose your Django website -provides information about the IPv4 to IPv6 transition. Visitors -can discuss their problems and help each other make the necessary -changes to their network infrastructure. You want to use two -different analytics services: +This tutorial show you how to install and configure django-analytical +for basic tracking, and then briefly touch on two common customization +issues: visitor identification and custom data tracking data. + +*Suppose your Django website provides information about the IPv4 to IPv6 +transition. Visitors can discuss their problems and help each other +make the necessary changes to their network infrastructure.* You want to +use two different analytics services: * :doc:`Clicky ` for detailed traffic analysis * :doc:`Crazy Egg ` to see where visitors click on @@ -42,8 +44,8 @@ installed applications in the ``settings.py`` file of your project:: ... ] -Now add the general-purpose django-analytical template tags to your base -template:: +Then you have to add the general-purpose django-analytical template tags +to your base template:: {% load analytical %} @@ -66,7 +68,7 @@ template:: Finally, you need to configure the Clicky Site ID and the Crazy Egg account number. Add the following to your project :file:`settings.py` -file:: +file (replacing the ``x``'s with your own codes):: CLICKY_SITE_ID = 'xxxxxxxx' CRAZY_EGG_ACCOUNT_NUMBER = 'xxxxxxxx' @@ -78,10 +80,10 @@ changes, both Clicky and Crazy Egg will be tracking your visitors. Identifying authenticated users =============================== -When you visitors post questions on IPv6 or tell about their experience -with transitioning, they first log in through the standard Django -authentication system. Clicky can identify and track individual -visitors and you want to use this feature. +*When your visitors post questions on IPv6 or tell about their +experience with the transition, they first log in through the standard +Django authentication system. Clicky can identify and track individual +visitors and you want to use this feature.* If django-analytical template tags detect that the current user is authenticated, they will automatically include code to send the username @@ -100,12 +102,13 @@ disable or override it, see :ref:`identifying-visitors`. Adding custom tracking data =========================== -You think that visitors who already use IPv6 use the website in a +*You think that visitors who already use IPv6 use the website in a different way from those still on IPv4. You want to test this by -segmenting the Crazy Egg heatmaps based on the IP protocol version. You -need to including the visitor IP protocol version with the Crazy Egg -tracking code. The easiest way to do this is by using a context -processor:: +segmenting the Crazy Egg heatmaps based on the IP protocol version.* + +In order to filter on protocol version in Crazy Egg, you need to +include the visitor IP protocol version in the Crazy Egg tracking code. +The easiest way to do this is by using a context processor:: def track_ip_proto(request): addr = request.META.get('HTTP_X_FORWARDED_FOR', '')