<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_usertrack.xml.meta">
<name>mod_usertrack</name>
<description>
<em>Clickstream</em> logging of user activity on a site
</description>
<status>Extension</status>
<sourcefile>mod_usertrack.c</sourcefile>
<identifier>usertrack_module</identifier>

<summary>
    <p>Provides tracking of a user through your website via browser
    cookies.</p>
</summary>


<section id="logging">
<title>Logging</title>

    <p><module>mod_usertrack</module> sets a cookie which can be logged
    via <module>mod_log_config</module> configurable logging formats:</p>

    <highlight language="config">
LogFormat "%{Apache}n %r %t" usertrack
CustomLog "logs/clickstream.log" usertrack
    </highlight>

</section>

<directivesynopsis>
<name>CookieDomain</name>
<description>The domain to which the tracking cookie applies</description>
<syntax>CookieDomain <em>domain</em></syntax>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>

<usage>

    <p>This directive controls the setting of the domain to which
    the tracking cookie applies. If not present, no domain is
    included in the cookie header field.</p>

    <p>The domain string <strong>must</strong> begin with a dot, and
    <strong>must</strong> include at least one embedded dot. That is,
    <code>.example.com</code> is legal, but <code>www.example.com</code> and
    <code>.com</code> are not.</p>

    <note>Most browsers in use today will not allow cookies to be set
    for a two-part top level domain, such as <code>.co.uk</code>,
    although such a domain ostensibly fulfills the requirements
    above.<br />

    These domains are equivalent to top level domains such as
    <code>.com</code>, and allowing such cookies may be a security
    risk. Thus, if you are under a two-part top level domain, you
    should still use your actual domain, as you would with any other top
    level domain (for example <code>.example.co.uk</code>).
    </note>

    <highlight language="config">
    CookieDomain .example.com
    </highlight>
</usage>
</directivesynopsis>


<directivesynopsis>
<name>CookieExpires</name>
<description>Expiry time for the tracking cookie</description>
<syntax>CookieExpires <em>expiry-period</em></syntax>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>

<usage>
    <p>When used, this directive sets an expiry time on the cookie
    generated by the usertrack module. The <em>expiry-period</em>
    can be given either as a number of seconds, or in the format
    such as "2 weeks 3 days 7 hours". Valid denominations are:
    years, months, weeks, days, hours, minutes and seconds. If the expiry
    time is in any format other than one number indicating the
    number of seconds, it must be enclosed by double quotes.</p>

    <p>If this directive is not used, cookies last only for the
    current browser session.</p>

    <highlight language="config">
    CookieExpires "3 weeks"
    </highlight>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>CookieName</name>
<description>Name of the tracking cookie</description>
<syntax>CookieName <em>token</em></syntax>
<default>CookieName Apache</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>

<usage>
    <p>This directive allows you to change the name of the cookie
    this module uses for its tracking purposes. By default the
    cookie is named "<code>Apache</code>".</p>

    <p>You must specify a valid cookie name; results are
    unpredictable if you use a name containing unusual characters.
    Valid characters include A-Z, a-z, 0-9, "_", and "-".</p>

    <highlight language="config">
    CookieName clicktrack
    </highlight>
</usage>

</directivesynopsis>

<directivesynopsis>
<name>CookieStyle</name>
<description>Format of the cookie header field</description>
<syntax>CookieStyle
    Netscape|Cookie|Cookie2|RFC2109|RFC2965</syntax>
<default>CookieStyle Netscape</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>

<usage>
    <p>This directive controls the format of the cookie header
    field. The three formats allowed are:</p>

    <ul>
      <li><strong>Netscape</strong>, which is the original but now deprecated
      syntax. This is the default, and the syntax Apache has
      historically used.</li>

      <li><strong>Cookie</strong> or <strong>RFC2109</strong>, which is the syntax that
      superseded the Netscape syntax.</li>

      <li><strong>Cookie2</strong> or <strong>RFC2965</strong>, which is the most
      current cookie syntax.</li>
    </ul>

    <p>Not all clients can understand all of these formats, but you
    should use the newest one that is generally acceptable to your
    users' browsers. At the time of writing, most browsers support all
    three of these formats, with <code>Cookie2</code> being the
    preferred format.</p>

    <highlight language="config">
    CookieStyle Cookie2
    </highlight>
</usage>
</directivesynopsis>



<directivesynopsis>
<name>CookieTracking</name>
<description>Enables tracking cookie</description>
<syntax>CookieTracking on|off</syntax>
<default>CookieTracking off</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>

<usage>
    <p>When <module>mod_usertrack</module> is loaded, and
    <code>CookieTracking on</code> is set, Apache will send a
    user-tracking cookie for all new requests. This directive can
    be used to turn this behavior on or off on a per-server or
    per-directory basis. By default, enabling
    <module>mod_usertrack</module> will <strong>not</strong>
    activate cookies. </p>

    <highlight language="config">
    CookieTracking on
    </highlight>

</usage>
</directivesynopsis>

<directivesynopsis>
<name>CookieSecure</name>
<description>Adds the 'Secure' attribute to the cookie</description>
<syntax>CookieSecure on|off</syntax>
<default>CookieSecure off</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>
<compatibility>2.5.1 and later</compatibility>

<usage>
    <p>When set to 'ON', the 'Secure' cookie attribute is added to this 
    modules tracking cookie. This attribute instructs browsers to only
    transmit the cookie over HTTPS.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>CookieHTTPOnly</name>
<description>Adds the 'HTTPOnly' attribute to the cookie</description>
<syntax>CookieHTTPOnly on|off</syntax>
<default>CookieHTTPOnly off</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>
<compatibility>2.5.1 and later</compatibility>

<usage>
    <p>When set to 'ON', the 'HTTPOnly' cookie attribute is added to this 
    modules tracking cookie. This attribute instructs browsers to block javascript
    from reading the value of the cookie.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>CookieSameSite</name>
<description>Adds the 'SameSite' attribute to the cookie</description>
<syntax>CookieSameSite None|Lax|Strict</syntax>
<default>unset</default>
<contextlist>
<context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<override>FileInfo</override>
<compatibility>2.5.1 and later</compatibility>

<usage>
    <p>When set to 'None', 'Lax', or 'Strict', the 'SameSite' cookie attribute 
    is added to this modules tracking cookie with the corresponding value.  
    This attribute instructs browser on how to treat the cookie when it is 
    requested in a cross-site context.</p>

     <note type="Warning">
        <p>A value of 'None' sets 'SameSite=None', which is the most liberal setting. To 
        omit this attribute, omit the directive entirely.</p>
    </note>
  
</usage>
</directivesynopsis>

</modulesynopsis>
