Skip to content
Alexander Dean edited this page Oct 23, 2013 · 6 revisions

HOME > [SNOWPLOW TECHNICAL DOCUMENTATION](Snowplow technical documentation) > Trackers

This guide covers:

  1. What is the No-JS tracker?
  2. Anatomy of a No-JS tracking tag
  3. The tag-generating wizard
  4. Using the No-JS tracker with the Clojure collector
## 1. What is the No-JS tracker?

The No-JS tracker is a wizard that generates an HTML-only tracking tag (no Javascript) to track opens / views of HTML content that does not support Javascript. Examples of use cases include HTML emails or views of Github wiki pages.

In a normal Javascript tag, the name-value pairs of data that are sent through to the Snowplow collector via the querystring are calculated on the fly by the Javascript. (Examples of data points that are calculated on the fly include user_id, or browser_features.)

In an environment where Javascript is not permitted, these values need to be set in advance, and hardcoded into the tracking tag. As a result, if you want to record a different page_title, for example, for several different HTML-only web pages using the tracking code, you will need to generate a different tracking tag for each of those different web pages, with the right page_title set for each.

To make it easy to quickly generate No-JS tracking tags, we have created a wizard. This is hosted on [snowplowanalytics.com] wizard. The source code is available on the core [Github repo] no-js-repo.

## 2. Anatomy of a No-JS tracking tag

An example tag is shown below:

<!--Snowplow start plowing-->
<img src="http://collector.snplow.com/i?&e=pv&page=Root%20README&url=http%3A%2F%2Fgithub.com%2Fsnowplow%2Fsnowplow&aid=snowplow&p=web&tv=no-js-0.1.0" />
<!--Snowplow stop plowing-->

Some things to note about the tag:

  1. It is a straightforward <img ...> tag, that results in the GET request to the Snowplow tracking pixel
  2. The endpoint is set to a Clojure collector that we are running at collector.snplow.com.
  3. Five data points are passed on the query string: the event type (pageview), the page name (Root README), the URL (http://github.com/snowplow/snowplow), the application id (snowplow), the platform (web) and the tracker version (no-js-0.1.0)
## 3. The tag-generating wizard

The wizard generates the a tracking tag given:

  • A collector endpoint (or Cloudfront subdomain)
  • The page scheme (HTTP or HTTPS)
  • The page name
  • The page URL (if provided)
  • The application ID

It takes care of URL encoding of values (e.g. for page title).

## 4. Using the No-JS tracker with the Clojure collector

When using the No-JS tracker with the Clojure collector, the Clojure collector sets a user_id and drops this on a browser cookie.

Care must therefore be exercised when using the No-JS tracker on domains that you do not own. It is your responsibility to abide by the terms and conditions of any domain owner for domains where you post content including uploading No-JS tracking tags. Some domain owners forbid 3rd parties from dropping cookies on their domains. It is your responsibility to ensure you do not violate the terms and conditions of any domain owners that you work with.

HOME > [TECHNICAL DOCUMENTATION](Snowplow technical documentation)

1. Trackers
Overview
Javascript Tracker
No-JS Tracker
Lua Tracker
Arduino Tracker

A. Snowplow Tracker Protocol

2. Collectors
Overview
Cloudfront collector
Clojure collector (Elastic Beanstalk)
Scala Stream collector
SnowCannon (node.js)

B. Collector logging formats

3. Enrich
Overview
EmrEtlRunner
[Scala Kinesis Enrich] (Scala-Kinesis-Enrich)

C. Canonical Snowplow event model

4. Storage
Overview
[Storage in S3](S3 storage)
Storage in Redshift
Storage in PostgreSQL
Storage in Infobright (deprecated)
The StorageLoader

D. Snowplow storage formats (to write)

5. Analytics
Analytics documentation

Common
Artifact repositories

Clone this wiki locally