34
<br><br><H1 style="font: 26px arial,helvetica,sanserif">Using the Extra Sections features</H1>
34
<br><br><H1 style="font: 26px arial,helvetica,sans-serif">Adding extra reports using the ExtraSection feature</H1>
37
The AWStats Extra Sections features are powerfull setup options to allow you to add your own
37
The AWStats ExtraSection features are powerfull setup options to allow you to add your own
38
38
report not provided by default with AWStats. You can use it to build special reports, like
39
39
number of sales for a particular product, marketing reports, counting for a particular
40
40
user or agent, etc...<br>
44
<u><b>The following explanation is same than the one found in AWStats config file:</b></u><br>
45
<br>#-----------------------------------------------------------------------------
47
<br>#-----------------------------------------------------------------------------
48
<br># You can define your own charts, you choose here what are rows and columns
49
<br># keys. This feature is particularly usefull for marketing purpose, tracking
50
<br># products orders for example.
51
<br># For this, edit all parameters of Extra section. Each set of parameter is a
52
<br># different chart. For several charts, duplicate section changing the number.
53
<br># Note: Each Extra section reduces AWStats speed by 8%.
55
<br># WARNING: A wrong setup of Extra section might result in too large arrays
56
<br># that will consume all your memory, making AWStats unusable after several
57
<br># updates, so be sure to setup it correctly.
58
<br># In most cases, you don't need this feature.
60
<br># ExtraSectionNameX is title of your personalized chart.
61
<br># ExtraSectionConditionalX are conditions you can use to count or not the hit,
62
<br># Use one of the field condition (URL, QUERY_STRING, REFERER, UA, HOST),
63
<br># and a regex to match after a coma. Use "|" for "OR". If you use several
64
<br># conditions, they will be combined as "AND".
65
<br># ExtraSectionFirstColumnTitleX is the first column title of the chart.
66
<br># ExtraSectionFirstColumnValuesX is a Regex string to tell AWStats in which
67
<br># field to extract value from (URL, QUERY_STRING, REFERER, UA, HOST) and how
68
<br># to extract the value (using regex syntax). Each different value found will
69
<br># appear in first column of report on a different row. Be sure that list of
70
<br># different values is "limited" to avoid "not enough memory" problems !
71
<br># ExtraSectionFirstColumnFormatX is the string used to write value.
72
<br># ExtraSectionStatTypesX are things you want to count. You can use standard
73
<br># code letters (P for pages,H for hits,B for bandwidth,L for last access).
74
<br># ExtraSectionAddAverageRowX add a row at bottom of chart with average values.
75
<br># ExtraSectionAddSumRowX add a row at bottom of chart with sum values.
76
<br># MaxNbOfExtraX is maximum number of rows shown in chart.
77
<br># MinHitExtraX is minimum number of hits required to be shown in chart.
80
Warning: the ExtraSectionConditionalX MUST use regex values since AWStats 6.0.<br>
81
ExtraSectionFirstColumnValuesX also need REGEX value for all AWStats versions.<br>
82
See examples for syntax use.<br>
86
<u><b>You will find here examples of ExtraSection setup you can follow to build your own reports.
87
Try to follow them to build your own reporting tools:</b></u><br>
89
<li><a href="#productorders">Tracking Product orders</a><br>
90
<li><a href="#bugzilla">Tracking Bugzilla most frequently viewed bugs</a><br>
91
<li><a href="#awredir">Tracking Exit clicks</a><br>
92
<li><a href="#level2dir">List of top level 2 path under a directory /mydir</a><br>
98
<br><a name="productorders"><H2 style="font: 22px arial,helvetica,sanserif color: #606060"><u>Tracking Product orders</u></H2></a>
44
<u><b>Explanation on how to add/edit an Extra report in your config file</b></u><br>
45
Take a look inside the AWStats config file to find the following part:<br>
47
#-----------------------------------------------------------------------------<br>
49
#-----------------------------------------------------------------------------<br>
52
Read all explanation in config file after this point, they will explain you
53
how to add an Extra report by adding an ExtraSection configuration in your config file,<br>
54
or just click <a href="#extraconfig">here</a> to jump to a copy of this explanation.<br>
55
Note that following examples is often a precious tutorial, so see next paragraph for this...<br>
58
<u><b>Some examples of ExtraSection setup you can follow to build your own personalized reports:</b></u><br>
60
<li><a href="#productorders">Example 1: Tracking Product orders</a><br>
61
<li><a href="#bugzilla">Example 2: Tracking Bugzilla most frequently viewed bugs</a><br>
62
<li><a href="#awredir">Example 3: Tracking Exit clicks</a><br>
63
<li><a href="#aborted">Example 4: Tracking aborted download</a><br>
64
<li><a href="#domainaliases">Example 5: Tracking most requested domain aliases</a><br>
65
<li><a href="#level2dir">Example 6: List of top level 2 path under a directory /mydir</a><br>
70
<br><a name="productorders"><H2 style="font: 18px arial,helvetica,sans-serif color: #606060"><u>Example 1: Tracking Product orders</u></H2></a>
99
71
Image your web site is an e-store that sells 80 different products. Each of them has an id.
100
72
Imagine each time, someone make an order for product 49, the order.cgi script or order2.cgi script
101
73
is called with, in URL query parameter, the id of the product, meanings that you get in your log
140
<br><a name="awredir"><H2 style="font: 22px arial,helvetica,sanserif color: #606060"><u>Tracking Exit clicks</u></H2></a>
114
<br><a name="awredir"><H2 style="font: 18px arial,helvetica,sans-serif color: #606060"><u>Example 3: Tracking Exit clicks</u></H2></a>
141
115
AWStats shows you naturally the exit pages. However, you don't know where you visitor go
142
116
after exiting your site since clicking on a link that point to an external link will log
143
117
the viewed page on the external server and not on yours.
144
118
If you want to track this, you can, using the ExtraSection and the <b>awredir.pl</b> tool
145
119
(provided with AWStats).<br>
146
This tools must be used as a CGI wrapper. When called on 'A HREF' link, it returns to
147
browser a redirector to tell it to show the required page.
120
This tools must be used as a CGI wrapper. When called on 'A HREF' link, it returns to
121
browser a redirector to tell it to show the required page.
148
122
So, to use this script, you must replace HTML href tags that points to external web sites
149
onto your HTML pages from<br>
150
<i><a href="http://externalsite/pagelinked">Link</a><br></i>
123
onto your HTML pages from<br>
124
<i><a href="http://externalsite/pagelinked">Link</a><br></i>
152
126
<i><a href="http://yoursite/cgi-bin/awredir.pl?url=http://externalsite/pagelinked">Link</a><br></i>
154
For your web visitor, there is no difference. However this allow you to track
155
clicks done on links onto your web pages that point to external web sites,
128
For your web visitor, there is no difference. However this allow you to track
129
clicks done on links onto your web pages that point to external web sites,
156
130
because an entry will be seen in your own server log like this record:<br>
158
80.1.2.3 - - [01/Jan/2001:16:00:00 -0300] "GET /cgi-bin/awredir.pl?url=http://externalsite/pagelinked HTTP/1.1" 302 70476 "http://yoursite/pagewithlink.html" "FireBird/0.7"<br>
132
80.1.2.3 - - [01/Jan/2001:16:00:00 -0300] "GET /cgi-bin/awredir.pl?url=http://externalsite/pagelinked HTTP/1.1" 302 70476 "http://yoursite/pagewithlink.html" "FireBird/0.7"<br>
161
135
Then, you can add in AWStats a chart to track all call to <i>awredir.pl</i> with
163
137
all external pages viewed by your visitor after exiting your site.<br>
164
138
This is for this how you must setup your ExtraSection:<br>
166
<br>ExtraSectionName1="Redirected Hit"
167
<br>ExtraSectionCondition1="URL,\/cgi\-bin\/awredir\.pl"
168
<br>ExtraSectionFirstColumnTitle1="Url"
169
<br>ExtraSectionFirstColumnValues1="QUERY_STRING,url=([^&]+)"
140
<br>ExtraSectionName1="Redirected Hit"
141
<br>ExtraSectionCodeFilter1="302"
142
<br>ExtraSectionCondition1="URL,\/cgi\-bin\/awredir\.pl"
143
<br>ExtraSectionFirstColumnTitle1="Url"
144
<br>ExtraSectionFirstColumnValues1="QUERY_STRING,url=([^&]+)"
145
<br>ExtraSectionStatTypes1=HL
146
<br>MaxNbOfExtra1=500
148
<br>ExtraSectionAddSumRow1=1
153
<br><a name="aborted"><H2 style="font: 18px arial,helvetica,sans-serif color: #606060"><u>Example 4: Tracking aborted download</u></H2></a>
154
Aborted downloads are reported in a log file by a 206 error, so this is how you need to setup your ExtraSection to add a chart for a such tracking:<br>
156
<br>ExtraSectionName1="List of aborted download"
157
<br>ExtraSectionCodeFilter1="206"
158
<br>ExtraSectionCondition1=""
159
<br>ExtraSectionFirstColumnTitle1="URL"
160
<br>ExtraSectionFirstColumnValues1="URL,(.*)"
161
<br>ExtraSectionStatTypes1=PHK
162
<br>MaxNbOfExtra1=100
168
<br><a name="domainaliases"><H2 style="font: 18px arial,helvetica,sans-serif color: #606060"><u>Example 5: Tracking most requested domain aliases</u></H2></a>
169
You have one website, but this web site has several domains named (for example the same site domain.com can be
170
reached with urls domain.com,www.domain.com,www.otherdomainname.com,www.againadomainname.org,...).
171
You want to know which domain alias is the most used.<br>
173
The first thing to do is to be sure the domain alias is recorded inside your log file.
174
If you use Apache, you must use a personalized Apache log file that contains the <i>%V</i> tag.
175
For example you can add in your Apache httpd.conf file a new Apache log format (This is
176
the Apache directive, not AWStats, to define an Apache log format that contains
177
the virtual domain):<br>
178
<i>LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %V" combinedv</i><br>
179
Then check that your Apache CustomLog directives are defined like this:<br>
180
<i>CustomLog pathtoyourlog/yourlog.log combinedv</i><br>
182
After restarting Apache, your log format should look like this<br>
183
66.130.77.181 - - [09/Aug/2004:03:01:05 +0200] "GET /index.php HTTP/1.1" 200 1473 "-" "Firefox 1.0" www.otherdomainname.com<br>
186
When your web server log file contains the domain alias, you can now setup AWStats
187
to use it. For this use a personalised AWStats log format and use the <i>%extra1</i> tag at
188
the same place that the domain alias is. For example, for your combinedv Apache log format,
190
<i>LogFormat="%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot %extra1"</i><br>
192
Every tag defined by name <i>extraZ</i> (Z is a number, you can use as many tags as you need)
193
can be used in any ExtraSection to extract the parameter. You can use the name <i>extraZ</i> as
194
a criteria in the <i>ExtraSectionFirstColumnValuesX</i> parameter (X is number of the extra report, you can
195
add as many report as you need) to tell AWStats to use value in log file at the place of
196
the tag, as the key for your report. For example:<br>
198
<br>ExtraSectionName1="Domains aliases"
199
<br>ExtraSectionCodeFilter1="200 304"
200
<br>ExtraSectionCondition1=""
201
<br>ExtraSectionFirstColumnTitle1="Domain alias"
202
<br>ExtraSectionFirstColumnValues1="extra1,([^&]+)"
203
<br>ExtraSectionFirstColumnFormat1="%s"
170
204
<br>ExtraSectionStatTypes1=HL
171
<br>MaxNbOfExtra1=500
205
<br>ExtraSectionAddAverageRow1=0
206
<br>ExtraSectionAddSumRow1=1
172
208
<br>MinHitExtra1=1
173
<br>ExtraSectionAddSumRow1=1
178
<br><a name="level2dir"><H2 style="font: 22px arial,helvetica,sanserif color: #606060"><u>List of top level 2 path under a directory /mydir</u></H2></a>
212
<style type="text/css">
215
.aws_border { background-color: #CCCCDD; padding: 1px 1px 1px 1px; margin-top: 0; margin-bottom: 0; }
216
.aws_title { font: 13px verdana, arial, helvetica, sans-serif; font-weight: bold; background-color: #CCCCDD; text-align: center; margin-top: 0; margin-bottom: 0; padding: 1px 1px 1px 1px; color: #000000; }
217
.aws_blank { font: 13px verdana, arial, helvetica, sans-serif; background-color: #CCCCDD; text-align: center; margin-bottom: 0; padding: 1px 1px 1px 1px; }
219
background-color: #FFFFFF;
220
border-top-width: 1px;
221
border-left-width: 0px;
222
border-right-width: 0px;
223
border-bottom-width: 0px;
225
.aws_formfield { font: 13px verdana, arial, helvetica; }
227
font-family: arial,verdana,helvetica, sans-serif;
229
border: 1px solid #ccd7e0;
230
background-image : url(/awstatsicons/other/button.gif);
232
th { border-color: #ECECEC; border-left-width: 0px; border-right-width: 1px; border-top-width: 0px; border-bottom-width: 1px; padding: 1px 2px 1px 1px; font: 11px verdana, arial, helvetica, sans-serif; text-align:center; color: #000000; }
233
th.aws { border-color: #ECECEC; border-left-width: 0px; border-right-width: 1px; border-top-width: 0px; border-bottom-width: 1px; padding: 1px 2px 1px 1px; font-size: 13px; font-weight: bold; }
234
td.aws { border-color: #ECECEC; border-left-width: 0px; border-right-width: 1px; border-top-width: 0px; border-bottom-width: 1px; font: 11px verdana, arial, helvetica, sans-serif; text-align:left; color: #000000; padding: 0px;}
235
td.awsm { border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; font: 11px verdana, arial, helvetica, sans-serif; text-align:left; color: #000000; padding: 0px; }
238
<a name="extra6"> </a><br /><table class="aws_border" border="0" cellpadding="2" cellspacing="0" width="100%">
239
<tr><td class="aws_title" width="70%">Domains aliases</td><td class="aws_blank"> </td></tr>
241
<table class="aws_data" border="1" bordercolor="#ECECEC" cellpadding="2" cellspacing="0" width="100%">
242
<tr bgcolor="#ECECEC"><th>Domain alias</th><th align="center" bgcolor="#66F0FF" width="80">Hits</th><th width="120" align="center">Last visit</th></tr>
243
<tr><td class="aws">www.domain.com</td><td align="center">1757131</td><td align="center">08 August 2004 - 13:01</td></tr>
244
<tr><td class="aws">www.otherdomainname.com</td><td align="center">98518</td><td align="center">08 August 2004 - 12:54</td></tr>
245
<tr><td class="aws">domain.com</td><td align="center">19107</td><td align="center">08 August 2004 - 12:42</td></tr>
246
<tr><td class="aws">www.againadomainname.org</td><td align="center">7609</td><td align="center">08 August 2004 - 11:56</td></tr>
247
<tr><td class="aws"><b>Total</b></td><td align="center">1883986</td><td> </td></tr>
248
</table></td></tr></table><br />
253
<br><a name="level2dir"><H2 style="font: 18px arial,helvetica,sans-serif color: #606060"><u>Example 6: List of top level 2 path under a directory /mydir</u></H2></a>
179
254
So this is how you need to setup your ExtraSection to add a chart for a such tracking:<br>
181
<br>ExtraSectionName1="List of top level 2 path under /mydir"
182
<br>ExtraSectionCondition1="URL,^\/mydir\/.*"
183
<br>ExtraSectionFirstColumnTitle1="Directory name"
184
<br>ExtraSectionFirstColumnValues1="URL,^\/mydir\/([\w]+)\/"
185
<br>ExtraSectionStatTypes1=PHK
256
<br>ExtraSectionName1="List of top level 2 path under /mydir"
257
<br>ExtraSectionCodeFilter1="200 304"
258
<br>ExtraSectionCondition1="URL,^\/mydir\/.*"
259
<br>ExtraSectionFirstColumnTitle1="Directory name"
260
<br>ExtraSectionFirstColumnValues1="URL,^\/mydir\/([\w]+)\/"
261
<br>ExtraSectionStatTypes1=PHK
187
263
<br>MinHitExtra1=1
193
269
There is a lot of other possible use for Extra Sections ...<br>
277
<a name="extraconfig"></a>
279
<u><b>The following explanation is same than the one found in AWStats config file:</b></u><br>
280
<br>#-----------------------------------------------------------------------------
282
<br>#-----------------------------------------------------------------------------
283
<br># You can define your own charts, you choose here what are rows and columns
284
<br># keys. This feature is particularly usefull for marketing purpose, tracking
285
<br># products orders for example.
286
<br># For this, edit all parameters of Extra section. Each set of parameter is a
287
<br># different chart. For several charts, duplicate section changing the number.
288
<br># Note: Each Extra section reduces AWStats speed by 8%.
290
<br># WARNING: A wrong setup of Extra section might result in too large arrays
291
<br># that will consume all your memory, making AWStats unusable after several
292
<br># updates, so be sure to setup it correctly.
293
<br># In most cases, you don't need this feature.
295
<br># ExtraSectionNameX is title of your personalized chart.
296
<br># ExtraSectionCodeFilterX is list of codes the record code field must match.
297
<br># Put an empty string for no test on code.
298
<br># ExtraSectionConditionX are conditions you can use to count or not the hit,
299
<br># Use one of the field condition (URL,QUERY_STRING,REFERER,UA,HOST)
300
<br># and a regex to match, after a coma. Use "|" for "OR".
301
<br># ExtraSectionFirstColumnTitleX is the first column title of the chart.
302
<br># ExtraSectionFirstColumnValuesX is a Regex string to tell AWStats in which
303
<br># field to extract value from (URL,QUERY_STRING,REFERER,UA,HOST)
304
<br># and how to extract the value (using regex syntax). Each different value
305
<br># found will appear in first column of report on a different row. Be sure
306
<br># that list of different possible values will not grow indefinitely.
307
<br># ExtraSectionFirstColumnFormatX is the string used to write value.
308
<br># ExtraSectionStatTypesX are things you want to count. You can use standard
309
<br># code letters (P for pages,H for hits,B for bandwidth,L for last access).
310
<br># ExtraSectionAddAverageRowX add a row at bottom of chart with average values.
311
<br># ExtraSectionAddSumRowX add a row at bottom of chart with sum values.
312
<br># MaxNbOfExtraX is maximum number of rows shown in chart.
313
<br># MinHitExtraX is minimum number of hits required to be shown in chart.
316
Warning: the ExtraSectionConditionX MUST use regex values since AWStats 6.0.<br>
317
ExtraSectionFirstColumnValuesX also need REGEX value for all AWStats versions.<br>
318
See examples for syntax use.<br>
200
327
<script language=javascript>
201
var date='$Date: 2003/12/06 16:02:48 $';
328
var date='$Date: 2004/12/18 22:04:21 $';
202
329
document.writeln("Last revision: "+date);