Skip to main content

Vev basic tracking

Cookieless, anonymous analytics for projects published to a Vev-served hosting — turn it on, read the dashboard, set a conversion goal, and export via CSV or the API.

Written by Nicolay Thafvelin

Vev basic tracking provides cookieless, anonymous analytics for projects published to a Vev-served hosting. It covers traffic, acquisition, devices, geography, engagement, and click behavior without storing an identifier in the visitor's browser.

Turn tracking on

  1. Open Hosting, select the hosting, and go to Settings.

  2. Find Switch on Vev basic tracking and enable Vev basic tracking.

  3. Publish each project again. Collection begins with that publish; earlier traffic is not backfilled.

  4. Open the hosting's Tracking page to view the results.

Only admins and members who can update hosting settings can change tracking.

Read the dashboard

Use the Project filter to switch between the complete hosting and a single published project. The 7d, 30d, and 90d controls change the reporting window.

The dashboard includes:

  • Views and visitors — totals for the selected window, compared with the previous window of the same length.

  • Traffic over time — views and visitors plotted together for direct comparison, plus conversion rate when an engagement goal is configured.

  • Projects and top pages — where traffic is concentrated.

  • Referrers, devices, and countries — how visits arrive and where they come from.

  • Engagement — median time on page and maximum scroll depth.

  • Most clicked — popular elements, including rage-click and dead-click indicators.

  • Ask about your data — plain-language answers based only on the tracking metrics on this hosting. Answers use the account's AI credits.

Visitors are counted without cookies and are day-scoped, so the same visitor returning on another day is counted again. Tracking runs in the browser; visits blocked by an ad blocker or made without JavaScript are not counted.

Set an engagement conversion goal

Select Set conversion goal above the traffic chart. You can define either or both of these thresholds:

  • Time on page — the minimum number of seconds in a completed page visit, from 5 through 3,600 seconds.

  • Scroll depth — the minimum percentage of the page reached, from 1% through 100%.

When both thresholds are enabled, a visit converts only when it meets both. For example, a goal of 60 seconds and 75% scroll depth counts a completed page visit after it lasts at least one minute and reaches at least three quarters of the page.

The dashed conversion line shows the daily percentage of completed page visits that met the goal. It uses a 0–100% percentage scale, separately from the views and visitors scale. Changing the goal recalculates the selected reporting window from the engagement events already collected; it does not require another publish. Select Edit goal to change or remove it.

Tracking actions

Open the ••• menu in the top-right corner of the Tracking page to export data or turn tracking off.

Turn tracking off

Select Turn tracking off and confirm the change. Tracking continues on already-published projects until they are published again. Turning tracking off does not delete historical data.

Export CSV

Select Export CSV from the Tracking actions menu. The helper lets you choose a 7-, 30-, or 90-day window and one or more metrics, then builds a refreshable CSV URL. If the dashboard is filtered to a project, the generated URL includes that project filter; choose All projects first for a hosting-wide URL.

Create a Vev API key under Profile → API Keys and enable only the readTracking (read:tracking) scope. The user who owns the key must also have access to the hosting's account. Keep the key private and send it in the x-vev-key request header.

Example request:

GET https://api.vev.design/v2/hostings/<hosting-key>/tracking?metrics=timeseries,top_pages,page_engagement,goal_conversions&days=90&format=csv
x-vev-key: <api-key>

The response has content type text/csv. Each row includes a metric column plus shared request context and the union of metric-specific columns. Engagement rows include median_seconds_on_page and median_max_scroll_pct; goal rows include samples, conversions, and conversion_rate. A selected metric still produces a row when it has no data or returns an error, which keeps the schema stable for refresh tools.

Power BI

In Power BI Desktop, open Transform data → New source → Blank query, open Advanced Editor, and use this Power Query template:

let
  Source = Csv.Document(
    Web.Contents(
      "https://api.vev.design/v2/hostings/<hosting-key>/tracking",
      [
        Query = [
          metrics = "timeseries,top_pages,page_engagement,goal_conversions",
          days = "90",
          format = "csv"
        ],
        Headers = [#"x-vev-key" = "<api-key>"]
      ]
    ),
    [Delimiter = ",", Encoding = 65001, QuoteStyle = QuoteStyle.Csv]
  ),
  WithHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars = true])
in
  WithHeaders

Replace <hosting-key> and <api-key>, then configure the dataset's normal refresh schedule. When Power BI asks for credentials for api.vev.design, choose Anonymous because the API key is already supplied by the request header.

See Microsoft's Web.Contents reference for the Query and Headers options used by the template.

Tracking API

The same endpoint returns JSON unless format=csv is specified:

GET https://api.vev.design/v2/hostings/<hosting-key>/tracking
x-vev-key: <api-key>

Query parameters:

Parameter

Description

metrics

Comma-separated metrics. Defaults to summary.

days

Integer from 1 through 90. Defaults to 7.

project

Optional project key. Limits every metric to that project.

path

Optional recorded path such as /pricing/. Query strings are not accepted.

limit

Breakdown row limit from 1 through 100. Defaults to 20.

format

json or csv. Defaults to json.

Available metrics:

Metric

Result

summary

Views and visitors, plus the previous equal-length window.

timeseries

Views and visitors per day.

projects

Views and visitors per project.

top_pages

Most-viewed paths.

referrers

Referring domains; $direct means typed or bookmarked traffic.

devices

Desktop, mobile, and tablet traffic.

countries

Visitor countries as ISO country codes.

page_engagement

Median seconds on page and median maximum scroll depth per path.

goal_conversions

Completed visits, conversions, and conversion rate per day for the configured engagement goal.

clicks

Most-clicked elements, including path, label, and link target.

rage_clicks

Elements clicked repeatedly in quick succession.

dead_clicks

Elements clicked without producing an effect.

Troubleshooting

  • The dashboard is empty: confirm tracking is enabled and publish the project again. New data can only be collected after that publish.

  • Power BI returns 401: confirm the key has read:tracking, belongs to a user with access to the hosting account, and is sent as x-vev-key.

  • The request returns 400: verify metric names, use an integer days value from 1 to 90, and make sure a path begins with / and contains no query string.

  • A metric has fewer visits than expected: browser-side blocking and disabled JavaScript prevent collection.

  • The conversion line is missing: set at least one conversion threshold and wait for a completed page visit. A new visit is complete when the visitor leaves or navigates to another page.

Did this answer your question?