├── .gitignore
├── .prettierignore
├── 404.md
├── CNAME
├── Gemfile
├── Gemfile.lock
├── README.md
├── _config.yml
├── _docs
├── 10_general
│ ├── 00_bots.md
│ ├── 01_introduction.md
│ ├── 02_locations.md
│ ├── 03_how-to-use-url-params.md
│ ├── 10_what_we_collect.md
│ ├── 15_metrics.md
│ └── 50_support.md
├── 20_install-script
│ ├── 00_light.md
│ ├── 00_v10.md
│ ├── 00_v8.md
│ ├── 00_v9.md
│ ├── 01_script.md
│ ├── 02_custom.md
│ ├── 04_install.md
│ ├── 05_analytics.md
│ ├── 10_without-javascript.md
│ ├── 17_collect-on-amp.md
│ ├── 19_sri.md
│ ├── 20_csp.md
│ └── 25_proxy.md
├── 20_script-settings
│ ├── 03_dnt.md
│ ├── 03_hash.md
│ ├── 03_overwrite-domain.md
│ ├── 03_overwrite-path.md
│ ├── 04_ignore-metrics.md
│ ├── 04_ignore-pages.md
│ ├── 05_allow-url-parameters.md
│ ├── 30_non-unique-hostnames.md
│ └── 40_strict-utms.md
├── 30_features
│ ├── 00_block-your-visits-on-safari.md
│ ├── 07-goals.md
│ ├── 08_custom-views.md
│ ├── 10_mini-websites.md
│ ├── 11-filters.md
│ ├── 12-export-your-data.md
│ ├── 12-import-google-analytics-data.md
│ ├── 15_email-reports.md
│ ├── 20_bypass.md
│ ├── 22-advanced-robot-blocking.md
│ ├── 25_hide-spam.md
│ ├── 27_certificate-checks.md
│ ├── 30_embed-chart.md
│ ├── 33_trend-lines.md
│ ├── 38_annotations.md
│ ├── 40_extension.md
│ ├── 42-exclude-your-ip.md
│ └── 45_ios-app.md
├── 31_integrations
│ ├── 00_astro.md
│ ├── 00_create-plugin.md
│ ├── 00_django.md
│ ├── 00_docusaurus.md
│ ├── 00_gatsby.md
│ ├── 00_godaddy.md
│ ├── 00_gridsome.md
│ ├── 00_hugo.md
│ ├── 00_jimdo.md
│ ├── 00_mailerlite.md
│ ├── 00_next.md
│ ├── 00_nuxt.md
│ ├── 00_react.md
│ ├── 00_rubyonrails.md
│ ├── 00_swift.md
│ ├── 00_vue.md
│ ├── 00_vuepress.md
│ ├── 00_wordpress-head-footer-code-plugin.md
│ ├── 00_wordpress-refined-practice.md
│ ├── 05_wordpress.md
│ ├── 06_wordpress_wpfullpicture.md
│ ├── 10_webflow.md
│ ├── 15_squarespace.md
│ ├── 20_chartbrew.md
│ ├── 25_wix.md
│ ├── 30_cloudflare.md
│ ├── 35_ghost.md
│ ├── 40_google-tag-manager.md
│ ├── 45_looker-studio.md
│ ├── 50_power_bi.md
│ ├── 55_cloudquery.md
│ ├── 60_dailytics.md
│ └── 65_caniuse.md
├── 33_explained
│ ├── 02_time-on-page.md
│ ├── 05_uniques.md
│ ├── 10_team-roles.md
│ └── 15_domain-privacy.md
├── 36_legal
│ ├── 00_introduction.md
│ ├── 01_privacy.md
│ ├── 03_compliance.md
│ ├── 04_compliance-faq.md
│ ├── 05_data-collection.md
│ └── 06_data-security-and-ownership.md
├── 40_affiliate-program
│ ├── 01_how-it-works.md
│ └── 03_terms-of-service.md
├── 50_api
│ ├── 01_introduction.md
│ ├── 10_authenticate.md
│ ├── 15_stats-api.md
│ ├── 20_export-data-points.md
│ ├── 35_admin.md
│ ├── 40_cors-jsonp.md
│ └── 50_helpers.md
├── 55_events
│ ├── 00_collect-events-on-ios.md
│ ├── 00_inline-events.md
│ ├── 00_send-events-in-ruby.md
│ ├── 01_introduction.md
│ ├── 02_explorer.md
│ ├── 05_automated-events.md
│ ├── 15_metadata.md
│ ├── 20-sa-link-event.md
│ └── 50_server-side.md
└── 60_account
│ ├── 10_change-plan.md
│ ├── 20_passwords.md
│ ├── 25_transfer-websites.md
│ ├── 30_invoices.md
│ ├── 40_cancel.md
│ └── 50_delete.md
├── _includes
└── video.html
├── _layouts
└── default.html
├── _sass
├── base.scss
├── footer.scss
├── header.scss
├── highlighting.scss
├── simpleanalytics.scss
└── variables.scss
├── css
└── app.scss
├── images
├── account-invoices.png
├── app-store-badge.svg
├── chartbrew-add-visitors.png
├── chartbrew-chart-options.png
├── chartbrew-create-connection.png
├── chartbrew-create-data-set.png
├── chartbrew-create-new-dashboard.png
├── chartbrew-dashboard-simple-analytics-themed.png
├── chartbrew-dashboard.png
├── chartbrew-make-request-again.png
├── chartbrew-make-request.png
├── chartbrew-select-table.png
├── chartbrew-select-utm-sources.png
├── chartbrew-test-request.png
├── chartbrew-y-axis.png
├── cloudflare-01.jpg
├── cloudflare-02.jpg
├── cloudflare-03.jpg
├── cloudflare-04.jpg
├── cloudflare-05.jpg
├── cloudflare-06.jpg
├── cloudflare-dns-custom-domain.png
├── dailytics-final-result.gif
├── dailytics-form-01.png
├── dailytics-form-02.png
├── dailytics-form-03.png
├── direct-visit.jpg
├── email-report-setting.png
├── email-report.png
├── extension-chrome-closeup.jpg
├── extension-chrome-options.jpg
├── ghost-add-code.jpg
├── ghost-click-code-injection.jpg
├── ghost-save-code.jpg
├── hugo-logo.svg
├── jimdo-add-element.png
├── jimdo-add-html.png
├── mailerlite-add-html.jpg
├── mailerlite-disable-analytics.jpg
├── mailerlite-save.jpg
├── mini-websites-arrow.jpg
├── mini-websites-simple-analytics.gif
├── password-done.jpg
├── password-fill.jpg
├── password-set.jpg
├── pencil.svg
├── pixel-check-feedback.jpg
├── referrer-visit.jpg
├── script-in-safari-sri-version.png
├── spam-click-on-link.jpg
├── spam-confirm.jpg
├── spam-download-a-copy.jpg
├── spam-more-than-10000.jpg
├── spam-overview.jpg
├── spam-verify.jpg
├── squarespace-click-on-advanced.jpg
├── squarespace-click-on-code-injection.jpg
├── squarespace-click-on-settings.jpg
├── squarespace-paste-embed-code.jpg
├── squarespace-save-embed-code.jpg
├── time-on-page-ga-stop.png
├── time-on-page-ga.png
├── time-on-page-sa.png
├── webflow-footer-code.png
├── webflow-head-code.png
├── wix-select-analytics.jpg
├── wix-select-custom.jpg
├── wordpress-click-activate-plugin.jpg
├── wordpress-click-add-new-plugin.jpg
├── wordpress-click-browse.jpg
├── wordpress-click-install-now.jpg
├── wordpress-click-upload-plugin.jpg
├── wordpress-installed-plugins.jpg
├── wordpress-refined-practice-screenshot-dashboard.png
├── wordpress-refined-practice-screenshot-settings-page.png
├── wordpress-select-file.jpg
├── wp-full-picture-simple-analytics-installation-2.png
├── wp-full-picture-simple-analytics-installation.png
└── wp-full-picture-simple-analytics-settings.png
├── js
└── pjax.min.js
├── package.json
└── pages.json
/.gitignore:
--------------------------------------------------------------------------------
1 | _site
2 | .sass-cache
3 | .jekyll-metadata
4 | .vscode
5 | _docs/35_legal
6 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | /js
2 |
--------------------------------------------------------------------------------
/404.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Oops, not found
3 | layout: default
4 | download: false
5 | sitemap: false
6 | ---
7 |
8 | [Go back](/) to the homepage of our docs.
9 |
10 |
11 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | docs.simpleanalytics.com
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | # Hello! This is where you manage which Jekyll version is used to run.
4 | # When you want to use a different version, change it below, save the
5 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
6 | #
7 | # bundle exec jekyll serve
8 | #
9 | # This will help ensure the proper Jekyll version is running.
10 | # Happy Jekylling!
11 | gem 'github-pages', group: :jekyll_plugins
12 | gem "webrick", "~> 1.7"
13 |
14 | # If you have any plugins, put them here!
15 | group :jekyll_plugins do
16 | gem 'jekyll-redirect-from'
17 | gem "jekyll-feed", "~> 0.6"
18 | end
19 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # Documentation
6 |
7 | Please submit PRs for everything including grammar errors :smile:
8 |
9 | ## Run on your computer
10 |
11 | ```
12 | bundle exec jekyll serve
13 | ```
14 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Welcome to Jekyll!
2 | #
3 | # This config file is meant for settings that affect your whole blog, values
4 | # which you are expected to set up once and rarely edit after that. If you find
5 | # yourself editing this file very often, consider using Jekyll's data files
6 | # feature for the data you need to update frequently.
7 | #
8 | # For technical reasons, this file is *NOT* reloaded automatically when you use
9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10 | host: localhost
11 |
12 | # Site settings
13 | # These are used to personalize your new site. If you look in the HTML files,
14 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
15 | # You can create any custom variable you would like, and they will be accessible
16 | # in the templates via {{ site.myvariable }}.
17 | title: Simple Analytics Docs
18 | email: support@simpleanalytics.com
19 | hostname: docs.simpleanalytics.com
20 | description: >- # this means to ignore newlines until "baseurl:"
21 | On this website you'll find all the ways and possibilities how to use Simple Analytics.
22 | Installing the script, how to use features, and how we handle things, to name a few.
23 | baseurl: "" # the subpath of your site, e.g. /blog
24 | url: https://docs.simpleanalytics.com
25 | twitter_username: simpleanalytic
26 | github_username: simpleanalytics
27 |
28 | # Variables
29 | api_version: 5
30 | url: https://docs.simpleanalytics.com
31 |
32 | # Build settings
33 | # markdown: kramdown
34 | theme: null
35 | plugins:
36 | - jekyll-feed
37 | - jekyll-seo-tag
38 | - jekyll-redirect-from
39 | - jekyll-sitemap
40 |
41 | # Exclude from processing.
42 | # The following items will not be processed, by default. Create a custom list
43 | # to override the default setting.
44 | # exclude:
45 | # - Gemfile
46 | # - Gemfile.lock
47 | # - node_modules
48 | # - vendor/bundle/
49 | # - vendor/cache/
50 | # - vendor/gems/
51 | # - vendor/ruby/
52 |
53 | sass:
54 | style: compressed
55 | sass_dir: _sass
56 |
57 | collections:
58 | docs:
59 | output: true
60 | permalink: /:title
61 |
62 | defaults:
63 | - scope:
64 | path: "" # an empty string here means all files in the project
65 | values:
66 | layout: "default"
67 |
68 | encoding: utf-8
69 |
--------------------------------------------------------------------------------
/_docs/10_general/00_bots.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Bots
3 | hidden: true
4 | category: general
5 | permalink: /bots
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | We have a few bots that work for us :)
10 |
11 | A few use-cases where we use our bots:
12 | - When a customer adds a website we check if the script is installed correctly
13 | - If a website doesn't have traffic anymore, we send a fake page view to detect our (missing) script _(it's blocked by most analytics tools because we add `bot` in the User-Agent string)_
14 | - We also check which technologies are used on their website so we can show the best plugin for their needs
15 | - We generate screenshots of public referral pages
16 |
17 | > You can to disable alerts for your missing script in [your website settings](https://simpleanalytics.com/select-website/settings#alerts).
18 |
19 | The bots are usually identified with this User-Agent string:
20 |
21 | ```
22 | Mozilla/5.0 (compatible; SimpleAnalyticsBot/1.0; +https://docs.simpleanalytics.com/bots)
23 | ```
24 |
25 | Do you think this bot is causing noise? Please [let us know](https://simpleanalytics.com/contact)!
26 |
--------------------------------------------------------------------------------
/_docs/10_general/01_introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Simple Analytics documentation
3 | category: general
4 | menu: Introduction
5 | permalink: /
6 | download: false
7 | last_modified_at: 2022-04-14
8 | ---
9 |
10 | Simple Analytics is a privacy-friendly and simple alternative to Google Analytics. No cookies. No trackers. **No consent required from your visitors**. Just straightforward analytics.
11 |
12 | [Check our live demo](https://dashboard.simpleanalytics.com/simpleanalytics.com) to see what that looks like!
13 |
14 | Built and hosted in the EU 🇪🇺, we believe in an internet that is friendly to website visitors.
15 |
16 | If this resonates, we'd love to have you onboard!
17 |
18 | To get started quickly:
19 |
20 | - [Add Simple Analytics to your website](https://docs.simpleanalytics.com/script)
21 | - [Import your Google Analytics data](https://docs.simpleanalytics.com/import-google-analytics-data)
22 | - [Set up your events](https://docs.simpleanalytics.com/events)
23 | - [Read more about compliance and the datapoints that we collect](https://docs.simpleanalytics.com/introduction-to-legal)
24 |
25 | Looking for a troubleshooting guide? [Here you go](https://www.simpleanalytics.com/blog/debug-simple-analytics-script). If you have any other questions, just let us know [here](https://dashboard.simpleanalytics.com/contact).
26 |
27 |
28 |
--------------------------------------------------------------------------------
/_docs/10_general/50_support.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Support
3 | category: general
4 | permalink: /support
5 | last_modified_at: 2023-09-27
6 | ---
7 |
8 | Should you need to get in touch with our support team, please use [our contact form or email address](https://simpleanalytics.com/contact).
9 |
10 | ## Customer support code
11 |
12 | Occasionally, we might request a _customer support code_ to verify your identity. This unique code is personal and should not be shared with others.
13 |
14 | ### Finding your customer support code
15 |
16 | 1. Navigate to [your account settings](https://simpleanalytics.com/account#support).
17 | 2. Locate your Customer Support Code as shown below:
18 |
19 |
20 |
21 | _Note: We may reset your customer support code without notice. Ensure to provide the most recent code when we ask for it._
22 |
--------------------------------------------------------------------------------
/_docs/20_install-script/00_light.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Light version script
3 | category: install-script
4 | hidden: true
5 | permalink: /light
6 | last_modified_at: 2022-07-26
7 | ---
8 |
9 | Our script is already very light, but some customers love it even lighter. That's why we always create two versions of our script: normal and light.
10 |
11 | Just replace `latest.js` with `light.js` in your embed script. It will look similar to this:
12 |
13 |
14 | ```html
15 |
16 |
17 | ```
18 |
19 | We support both Brotli and Gzip compression depending on the browser capabilities. To get an idea of our file sizes:
20 |
21 | | Script | Compressed size (Gzip) | Compressed size (Brotli) | Uncompressed size |
22 | | --------- | ---------------------- | ------------------------ | ----------------- |
23 | | light.js | 1.9 KB | 2.0 KB | 3.3 KB |
24 | | latest.js | 3.7 KB | 3.8 KB | 6.9 KB |
25 |
26 | Source: [giftofspeed.com](https://www.giftofspeed.com/gzip-test/) for Brotli, [adresults.nl/tools/gzip-compression-test](https://adresults.nl/tools/gzip-compression-test) for Gzip.
27 |
28 | ## Features
29 |
30 | Obviously not all features are available in our light script. Here an comparison of both versions:
31 |
32 | | Feature | `latest.js` | `light.js` |
33 | | :---------------------------------------------- | :---------: | :--------: |
34 | | Page views | x | x |
35 | | Referrer | x | x |
36 | | UTM codes | x | x |
37 | | [Uniques](/uniques) | x | x |
38 | | [Events](/events) | x | x |
39 | | Bot detection | x | x |
40 | | Error reporting | x | x |
41 | | Show warnings | x | x |
42 | | Time on page | x | |
43 | | [Hash navigation](/hash-mode) | x | |
44 | | Scroll depth | x | |
45 | | [SPA](/trigger-custom-page-views) | x | |
46 | | Screen sizes | x | |
47 | | [Ignore pages](/ignore-pages) | x | |
48 | | [Overwrite domain name](/overwrite-domain-name) | x | |
49 | | [Ignore DNT](/dnt) | x | |
50 |
--------------------------------------------------------------------------------
/_docs/20_install-script/00_v10.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Embed script v10
3 | category: install-script
4 | hidden: true
5 | permalink: /script/v10
6 | last_modified_at: 2022-09-05
7 | created_at: 2022-09-05
8 | ---
9 |
10 | This is a tiny update with only 2 changes.
11 |
12 | - We fixed a bug where the [callback didn't trigger in `sa_event`](https://github.com/simpleanalytics/scripts/commit/334bd5bd486718c3326eb42a95fa640dcbf07c1d#diff-ee91055a491d35f130f742d7e34ee9a6042ba4458ec6a7698eb2e8b40c8f9729) when metadata was specified.
13 | - We allow for [`sa_settings`](https://github.com/simpleanalytics/scripts/commit/f83d48e5fc5453cc79c79d877d318b97919f51d9) to communicate settings to the script from JavaScript directly. Created for [our official Google Tag Manager tag](https://tagmanager.google.com/gallery/#/owners/simpleanalytics/templates/google-tag-manager).
14 |
15 | If you are a developer you might want to see [what changed](https://github.com/simpleanalytics/scripts/compare/f83d48e5fc5453cc79c79d877d318b97919f51d9...d593d339e11c86f29d590dfb337b775a4fef37bd) in our open-source repository.
16 |
--------------------------------------------------------------------------------
/_docs/20_install-script/00_v8.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Embed script v8
3 | category: install-script
4 | hidden: true
5 | permalink: /script/v8
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | We updated our public script. It has some cool new features.
10 |
11 | ## Strict UTM
12 |
13 | To track campaigns you use UTM-codes. There are 5 different codes: `utm_source`, `utm_campaign`, `utm_medium`, `utm_content`, and `utm_term`. To make it more readable we allow customers to use the aforementioned codes plus `ref`, `source`, `campaign`, `medium`, `content`, and `term`.
14 |
15 | But for some customers this is not desirable, so we created a way to opt-out. Add `data-strict-utm="true"` to the embed script and we only allow the following codes: `utm_source`, `utm_campaign`, `utm_medium`, `utm_content`, and `utm_term`.
16 |
17 | ## Auto Events
18 |
19 | We support collecting events with our auto events script. It's now available for custom domains as well.
20 |
21 | ## Sessions ID
22 |
23 | We added a session ID to page views. This makes it possible to link events to page views.
24 |
25 | ## Build on top of events
26 |
27 | It's now easier to test and build on top of events for developers. Previously, we would forbid our script on localhost to prevent data being send from the developers' computer. We now allow it and show a warning in the Developer Console of the browser when this happens. We allow events and page views to be send from localhost.
28 |
29 | It's usually a good idea to set `data-hostname="example.com"` when working locally, so we know we should add the events to `example.com`.
30 |
31 | ## Bugs
32 |
33 | We fixed a bug where invalid events where saved in apps that used [prototypes on JavaScript Objects](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes).
34 |
35 | If you are a developer you might want to see [what changed](https://github.com/simpleanalytics/scripts/compare/26009ec29abe26ae585a632d41ea01aff3fed3ec...3874b44ce5f1b0b8a7d50fb512fdcf5285a0138f) in our open-source repository.
36 |
--------------------------------------------------------------------------------
/_docs/20_install-script/00_v9.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Embed script v9
3 | category: install-script
4 | hidden: true
5 | permalink: /script/v9
6 | last_modified_at: 2022-07-26
7 | created_at: 2022-07-26
8 | ---
9 |
10 | Exciting news, our public script just got a massive update. We are now at V9.
11 |
12 | ## Ignore metrics
13 |
14 | Our script does only collect non-personal data. But some customers might want to limit [our metrics](/metrics) even more. That's why we created the [ignore metrics feature](/ignore-metrics).
15 |
16 | ## Add metadata to events & page views
17 |
18 | You can now [add metadata](/metadata) to your data. ~~Although you can't see it in our dashboard or APIs currently, it's possible to send the data already.~~
19 |
20 | ## Overwrite path
21 |
22 | You can now [change the path](/overwrite-path) of your page views and events before they are sent to our servers.
23 |
24 | ## Allow extra URL parameters
25 |
26 | By default, we collect all UTM parameters and the `ref` (which is short for `utm_source`) parameter. We don't store the rest of the query parameters. But some customers have non-personal data in their query parameters—for example, `product-id` or `article-slug`. [We allow collecting those parameters](/allow-params) now as well as long as they will be specified via our script settings.
27 |
28 | ## Detect browsers better
29 |
30 | We improved the way we identify Brave. In recent versions of the Brave browser, you will get the Brave version as well.
31 |
32 | Both [Polypane](https://polypane.app/) and [Responsively](https://responsively.app/) will be registered as robots.
33 |
34 | ## Non-unique hostnames
35 |
36 | Suppose you redirect your visitors to a payment provider, and after they complete the payment, they return to your website. Because of the nature of not tracking visitors in Simple Analytics, we count those "returning" visitors as new visitors. To prevent this from happening, [you can specify the hostname](/non-unique-hostnames) of that payment provider to tell us we should register this visit as non-unique.
37 |
38 | ## Bugs
39 |
40 | - Fixed issue with [sendBeacon](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon) that didn't always sent data back to our servers ([#]())
41 | - Fixed missing source map for SRI version
42 |
43 | If you are a developer you might want to see [what changed](https://github.com/simpleanalytics/scripts/compare/3874b44ce5f1b0b8a7d50fb512fdcf5285a0138f...v9) in our open-source repository.
44 |
--------------------------------------------------------------------------------
/_docs/20_install-script/01_script.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to add our script
3 | category: install-script
4 | permalink: /script
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | Include these two lines on every page at the end of your `
` (or anywhere else):
9 |
10 |
11 | ```html
12 |
13 |
14 | ```
15 |
16 | > To install the script on Wordpress, Ghost, WIX, Squarespace, Webflow, Gatsby, Vue, Django, Ruby, and others, go to [Install on other platforms](/install-on-other-platforms).
17 |
18 | We have a website setup wizard to test if you installed your script correctly. If you still have problems installing it, please let us know! We helped a lot of people with setting up their script and we love to help you as well. Just [contact](https://simpleanalytics.com/contact) us.
19 |
20 | ## Server-side tracking
21 |
22 | We support server-side tracking, [read more about it here](https://docs.simpleanalytics.com/events/server-side#page-views).
23 |
24 | ## Non-JavaScript environments
25 |
26 | While most people browse the internet with JavaScript enabled, there are still some users who disable it, fully aware that many websites may not function as intended. If you want to capture data from these visitors, consider adding our `noscript` tag. Be aware that this may also increase traffic from bots, as some don’t have JavaScript enabled.
27 |
28 |
29 | ```html
30 |
31 | ```
32 |
33 | ## Developers
34 |
35 | With Simple Analytics you don't need to manually trigger page views in SPA. We automatically trigger page views in [_Single Page Apps_ (SPA's)](/trigger-custom-page-views) like React, Vue, and Angular. You can also use [hash navigation](/hash-mode) to trigger page views.
36 |
37 | Some people like a very light script. All our scripts are heavily compressed and we have [an extra light](/light) version.
38 |
39 | If you want to run the script on localhost, please use our dev (`https://scripts.simpleanalyticscdn.com/latest.dev.js`) version. Note the `.dev` part. You might want to [overwrite your hostname](/overwrite-domain-name) from localhost to something like `dev.example.com` (where `example.com` is your domain) to receive it in your dashboard. Make sure to remove the `.dev` part from the script on production.
40 |
41 | When you are done implementing [go to your dashboard](https://simpleanalytics.com/websites).
42 |
43 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
44 |
45 | ### Javascript version
46 |
47 | If you can't embed HTML, but you can embed JavaScript, here is the code you need to install Simple Analytics with just JavaScript.
48 |
49 | ```js
50 | // Simple Analytics - 100% privacy-first analytics
51 | const script = document.createElement("script");
52 | script.setAttribute("src", "https://scripts.simpleanalyticscdn.com/latest.js");
53 | document.head.appendChild(script);
54 | ```
55 |
56 | ## Open source
57 |
58 | Our user facing scripts are [open source on GitHub](https://github.com/simpleanalytics/scripts).
59 |
60 |
61 |
--------------------------------------------------------------------------------
/_docs/20_install-script/02_custom.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Trigger custom page views
3 | category: install-script
4 | permalink: /trigger-custom-page-views
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | Normally you want to trigger a custom page view for _Single Page Apps_ (SPA's) like React, Vue, and Angular. Because pages are not completely reloaded on navigation we need a way to track those navigations as page views.
9 |
10 | For some analytics tools like Google Analytics you need to trigger a page view via their script. For Simple Analytics this is different.
11 |
12 | > With Simple Analytics there is **no** need to implement anything to detect page views in SPA's. It all works out of the box.
13 |
14 |
15 | Technical explanation
16 |
17 |
18 | We make this work by overwriting the native `pushState`-function of the browser.
19 |
20 | ```js
21 | // We check if the browser supports pushState
22 | if (history.pushState && Event && dispatchEvent) {
23 | // We create a listener based on the original browser feature
24 | var stateListener = function (type) {
25 | var orig = history[type];
26 | return function () {
27 | var rv = orig.apply(this, arguments);
28 | var event = new Event(type);
29 | event.arguments = arguments;
30 | dispatchEvent(event);
31 | return rv;
32 | };
33 | };
34 |
35 | // We connect our own created a listener to the pushState feature
36 | history.pushState = stateListener("pushState");
37 |
38 | // Now we can listen for pushState events and keep the original feature of the browser working
39 | window.addEventListener("pushState", function () {
40 | // Here we trigger the page view
41 | });
42 | }
43 | ```
44 |
45 | You can read our source code [on GitHub](https://github.com/simpleanalytics/scripts/blob/4ad5c1b6cb4c42ae2e483dc43a578e25399d53a4/src/default.js#L120-L137).
46 |
47 |
48 |
49 |
50 | ## Use custom collection anyway
51 |
52 | There might be situation where you don't want to auto collect page views. When you add the `data-auto-collect="false"` attribute you can expose a function called `sa_pageview`. When you call this function, the script will send a page view with the path you give as a parameter. If you don't give a path it will use `window.location.pathname` as a default.
53 |
54 | ```html
55 |
62 |
63 |
69 |
75 | ```
76 |
77 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
78 |
--------------------------------------------------------------------------------
/_docs/20_install-script/04_install.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on other platforms
3 | menu: Install on other platforms
4 | category: install-script
5 | permalink: /install-on-other-platforms
6 | last_modified_at: 2022-11-04
7 | ---
8 |
9 | ## Platform guides
10 |
11 | We try to make installing Simple Analytics as simple as possible. We want privacy to be accessible as possible. We don't require the need for a developer if you use any of the following tools.
12 |
13 | Read our guides on how to install Simple Analytics on:
14 |
15 | - [Google Tag Manager](/install-simple-analytics-with-google-tag-manager) (source on [GitHub](https://github.com/simpleanalytics/google-tag-manager#readme))
16 | - [Wordpress](/install-simple-analytics-on-wordpress) (source on [GitHub](https://github.com/simpleanalytics/wordpress-plugin#readme))
17 | - [Ghost](/install-simple-analytics-on-ghost)
18 | - [CloudFlare](/install-simple-analytics-on-cloudflare) (source on [GitHub](https://github.com/simpleanalytics/cloudflare-app#readme))
19 | - [WIX](/install-simple-analytics-on-wix)
20 | - [Squarespace](/install-simple-analytics-on-squarespace)
21 | - [Webflow](/install-simple-analytics-on-webflow)
22 | - [Jimdo Creator](/install-simple-analytics-on-jimdo-creator)
23 | - [MailerLite](/install-simple-analytics-on-mailerlite)
24 | - [GoDaddy](/install-simple-analytics-on-godaddy)
25 | - [Netlify](https://app.netlify.com/extensions/simpleanalytics)
26 |
27 | > Are you missing your favorite platform? [Let us know!](https://simpleanalytics.com/contact) Happy to create a guide or plugin for you.
28 |
29 | ## Framework plugins
30 |
31 | For most frameworks, you can include the script. We magically track page views, so you don't have to change your app code. [Read on how we do that](/trigger-custom-page-views). For some, we got requests to create a plugin for them.
32 |
33 | {% assign currentDate = 'now' | date: '%s' | plus: 0 %}
34 | {% assign threeMonthsLater = '2023-02-07' | date: '%s' | plus: 7884000 %}
35 |
36 | Get our official plugins for these frameworks:
37 |
38 | - [React](/install-simple-analytics-with-react) (guide only)
39 | - [Ruby on Rails](/install-simple-analytics-with-ruby-on-rails) (source on [GitHub](https://github.com/simpleanalytics/rubyonrails-plugin#readme))
40 | - [Gatsby](/install-simple-analytics-with-gatsby) (source on [GitHub](https://github.com/simpleanalytics/gatsby-plugin#readme))
41 | - [Vue](/install-simple-analytics-with-vue) (source on [GitHub](https://github.com/simpleanalytics/vue-plugin#readme))
42 | - [VuePress](/install-simple-analytics-with-vuepress) (source on [GitHub](https://github.com/simpleanalytics/vuepress-plugin#readme))
43 | - [Nuxt.js](/install-simple-analytics-with-nuxt) (guide only)
44 | - [Gridsome](/install-simple-analytics-with-gridsome) (source on [GitHub](https://github.com/simpleanalytics/gridsome-plugin#readme))
45 | - [Django](/install-simple-analytics-with-django) (source on [GitHub](https://github.com/simpleanalytics/django-plugin#readme))
46 | - [Analytics library](/install-simple-analytics-via-analytics-package) (source on [GitHub](https://github.com/DavidWells/analytics/tree/master/packages/analytics-plugin-simple-analytics))
47 | - [Hugo](/install-simple-analytics-with-hugo) (guide only)
48 | - [Next.js](/install-simple-analytics-with-next) (guide only)
49 | - [Docusaurus](/install-simple-analytics-with-docusaurus) (source on [GitHub](https://github.com/simpleanalytics/docusaurus-plugin#readme))
50 | - [Astro](https://github.com/simpleanalytics/astro-plugin) (guide on GitHub)
51 |
52 | > Are you missing your favorite framework? [Let us know!](https://simpleanalytics.com/contact) Happy to create a plugin for you.
53 |
--------------------------------------------------------------------------------
/_docs/20_install-script/05_analytics.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with the Analytics library
3 | category: install-script
4 | hidden: true
5 | permalink: /install-simple-analytics-via-analytics-package
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | You can install Simple Analytics using the open-source Analytics library ([website](https://getanalytics.io), [npm](https://www.npmjs.com/package/analytics)). It's a pluggable library designed as an abstraction layer to customize your app's analytics requirements easily.
10 |
11 | ## Install via npm
12 |
13 | ```bash
14 | npm install analytics @analytics/simple-analytics
15 | ```
16 |
17 | ## Using the Analytics library
18 |
19 | The Analytics library works with any frontend framework, including `react`, `vue`, `angular` or static `html`.
20 |
21 | To use it:
22 |
23 | 1. Import the `analytics` library and `@analytics/simple-analytics`
24 | 2. Initialize the `analytics` library
25 | 3. Page views get tracked automatically
26 | 4. Include the non-javascript fallback in your `html`
27 |
28 | Example code:
29 |
30 | ```js
31 | /* src/analytics.js */
32 | import Analytics from "analytics";
33 | import simpleAnalyticsPlugin from "@analytics/simple-analytics";
34 |
35 | const analytics = Analytics({
36 | app: "awesome-app",
37 | plugins: [
38 | // Load simple analytics! 🎉
39 | simpleAnalyticsPlugin(),
40 | ],
41 | });
42 |
43 | /* All page views are now tracked by simple analytics */
44 | ```
45 |
46 | Make sure to include this file in the entry point of your application. This will ensure the Analytics library and Simple Analytics scripts load correctly.
47 |
48 | When the Analytics library is initialized it will automatically load the simple analytics script onto the page.
49 |
50 | For additional instructions on how to use with other frontend frameworks, check out the [Analytics library docs](https://getanalytics.io/tutorial/getting-started/)
51 |
52 | ## Include non-JS enabled browser fallback
53 |
54 | Remember to include the `noscript` image tag in your HTML for JS-disabled browsers.
55 |
56 | Include this line at the end of your ``
57 |
58 |
59 | ```html
60 |
61 | ```
62 |
63 | ## View the source
64 |
65 | You can view the source code of this plugin on [GitHub](https://github.com/DavidWells/analytics/tree/master/packages/analytics-plugin-simple-analytics)
66 |
67 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
68 |
--------------------------------------------------------------------------------
/_docs/20_install-script/19_sri.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: SRI version
3 | category: install-script
4 | permalink: /sri
5 | sriVersion: 11
6 | sriHash: sha256-hkUzQr3zWmSDnmhw95ZmQSZ949upqD+ML9ejiN0UIIE= sha384-rfv15RJy1bBYZ1Mf4xizO26jorXb2myipCvHXy4rkG0SuEET96S+m0sTzu5vfbSI sha512-lQzjzTbOxHLwkZGDVMf4V0sm8v2Mrqm73IvKcXBftJ/MSZKQC4/jwKFToxT+3IVAVWQzLplSNHH8gM5d7b1BSg==
7 | last_modified_at: 2023-05-03
8 | ---
9 |
10 | If you want to use SRI you can do this by using specific scripts. The default scripts are changing to reflect new features or code optimizations. You want to use SRI if you consider it a risk when our scripts change. You can also host our SRI script on your own server or CDN.
11 |
12 | When you want to use our SRI version of our script you will need to update your script to `https://scripts.simpleanalyticscdn.com/sri/v{{ page.sriVersion }}.js`. The full embed script becomes:
13 |
14 |
15 | ```html
16 |
17 |
18 | ```
19 |
20 | When using a [custom domain](/bypass-ad-blockers) you need to use this script: `https://CUSTOM.DOMAIN/v{{ page.sriVersion }}/app.js`. Replace the `CUSTOM.DOMAIN` with your custom domain. To generate an SRI hash for your custom domain you can use [report-uri.com](https://report-uri.com/home/sri_hash) or [srihash.org](https://www.srihash.org/).
21 |
22 | To verify if our script is an SRI version you can always check for `SRI-version` in the first line:
23 |
24 |
25 |
--------------------------------------------------------------------------------
/_docs/20_install-script/20_csp.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Content Security Policy
3 | category: install-script
4 | permalink: /csp
5 | last_modified_at: 2022-07-14
6 | ---
7 |
8 | Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement to distribution of malware. [Read more on CSP at MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP).
9 |
10 | ## Content-Security-Policy header
11 |
12 | For Simple Analytics you want to add the following Content Security Policy header (we included `'self'` for all as well):
13 |
14 |
15 | ```
16 | Content-Security-Policy: script-src 'self' 'unsafe-inline' https://scripts.simpleanalyticscdn.com; connect-src 'self' https://queue.simpleanalyticscdn.com; img-src 'self' https://queue.simpleanalyticscdn.com https://simpleanalyticsbadges.com;
17 | ```
18 |
19 | ## Content-Security-Policy meta tag
20 |
21 | Alternatively, a ` ` element can be used to configure a policy, for example:
22 |
23 | ```
24 |
25 | ```
26 |
27 | Basically we use `https://scripts.simpleanalyticscdn.com` for our public script, `https://queue.simpleanalyticscdn.com` to send Beacon API data and error requests, and we use `https://queue.simpleanalyticscdn.com` also for sending data through our "pixel". If you show our badge, you need to have `https://simpleanalyticsbadges.com`.
28 |
29 | ## Why `script-src 'unsafe-inline'`?
30 |
31 | If you use the automated events, make sure to have `'unsafe-inline'` in your `script-src`, otherwise you can remove that from the examples above. We use `'unsafe-inline'` to add [`onClick`](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event) event listeners to your download buttons, email links, and outbound links.
32 |
33 | Don't forget to add your own assets to the above Content Security Policy.
34 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/03_dnt.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Do Not Track
3 | category: script-settings
4 | permalink: /dnt
5 | last_modified_at: 2024-12-02
6 | ---
7 |
8 | > This page is about the DNT setting in browsers. We don't track your visitors, [read more on what we collect](/what-we-collect).
9 |
10 | DNT stands for Do Not Track. It means that visitors can enable this setting and basically ask the websites they visit to not track them. This is great, but it's not very well supported. The organization behind our internet (W3C) disbanded its DNT working group in January 2018, citing insufficient support and adoption. Apple discontinued support for DNT the following month.
11 |
12 | The [Do Not Track](https://en.wikipedia.org/wiki/Do_Not_Track) setting requests that a web application disables either its tracking or cross-site user tracking of an individual user. [We don't do that ever](/what-we-collect), but by default we do not collect visits from devices that have Do Not Track enabled. By default the data will not include visitors with the Do Not Track enabled.
13 |
14 | To also record DNT visitors you can add `data-collect-dnt="true"` to the script tag:
15 |
16 |
17 | ```html
18 |
19 | ```
20 |
21 | If you don't add the `data-collect-dnt` attribute we will not record visits from users who have DNT enabled.
22 |
23 | ## Enable collecting DNT visits for noscript.gif pixel
24 |
25 | If you use our [noscript.gif](/without-javascript) to collect page views you can also enable collecting DNT visits. Just append `collect-dnt=true` to the pixel. Read more on [the collect without JavaScript page](/without-javascript).
26 |
27 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
28 |
29 | ## Legacy
30 |
31 | Before this setting was called `data-skip-dnt`. Although both version will work, we advise you to only use `data-collect-dnt`.
32 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/03_hash.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Hash mode
3 | menu: Hash mode #
4 | category: script-settings
5 | permalink: /hash-mode
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | Some websites don't really navigate to other pages but us the hash (`#`) in the URL. Normally Simple Analytics removes everything from the URLs after a `?` or a `#`. We don't want to collect this information because it could contain private information like search keywords.
10 |
11 | To allow the script to detect those hash changes you can add `data-mode="hash"` to the script tag:
12 |
13 |
14 | ```html
15 |
16 | ```
17 |
18 | This way the Simple Analytics script knows it should detect hash changes and records them as page views. We still drop everything after the question mark, but we keep the hash.
19 |
20 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
21 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/03_overwrite-domain.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Overwrite domain name
3 | category: script-settings
4 | permalink: /overwrite-domain-name
5 | last_modified_at: 2025-06-06
6 | ---
7 |
8 | Sometimes you want to link multiple domains into one domain in your dashboard. Or you want to use a different domain than people see in their browser address bar. You can overwrite the default domain name by specifying its hostname.
9 |
10 | > With [custom views](/custom-views) you can keep websites separate **and** combine multiple websites into one view.
11 |
12 | Make sure to include the our `simpleanalyticscdn.com` script (note the **cdn** part). Include these two lines at the end of your ``:
13 |
14 |
15 | ```html
16 |
17 | ```
18 |
19 | You see that we added an attribute (`data-hostname=""`) to the script tag and `hostname` param to the `img` tag. If you add your domain to it (eg `example.com`) it will look like this:
20 |
21 |
22 | ```html
23 |
24 | ```
25 |
26 | ## Add overwriting domain to your dashboard
27 |
28 | Now all the visits you collect with this script are collected under the name `example.com`. Make sure you [add the new used domain name](https://simpleanalytics.com/websites/add) (`example.com`) to your dashboard.
29 |
30 | ## Noscript
31 |
32 | If you want to use our -feature, you can add it like this:
33 |
34 |
35 | ```html
36 |
37 | ```
38 |
39 | We not recommend adding it, because it's mostly collecting data from robots.
40 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/03_overwrite-path.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Overwrite path
3 | category: script-settings
4 | permalink: /overwrite-path
5 | last_modified_at: 2022-07-26
6 | created_at: 2022-07-26
7 | ---
8 |
9 | Let's say you want to change the path of your page views (and events). You have profiles of users on your website (`https://example.com/profiles/@adriaan`), but don't want to see the profile name in your dashboard. But you do want to record that profiles did get visits.
10 |
11 | > You can not overwrite the hash from the URL, only the path.
12 |
13 | This is how you set up a `myPathOverwriter`-function for that usecase:
14 |
15 | ```html
16 |
22 |
26 | ```
27 |
28 | You can specify the path callback function via `data-path-overwriter`, in the example above, you specify the `myPathOverwriter`-function. The function gets an object as argument in which you find the `path` key. If the function errors or it returns a falsy value, we keep the original path.
29 |
30 | If you want to omit those page views completely, you can use our [ignore pages](/ignore-pages) feature.
31 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/04_ignore-metrics.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Ignore metrics
3 | category: script-settings
4 | permalink: /ignore-metrics
5 | created_at: 2022-07-26
6 | last_modified_at: 2022-10-07
7 | ---
8 |
9 | Our script only collects non-personal data. Some customers might want to limit our metrics even more. That's why we created the ignore metrics feature.
10 |
11 | | Metric | Slug | Inferrered metric |
12 | | ------------------- | -------------- | ---------------------- |
13 | | Referrer | `referrer` | |
14 | | UTM codes | `utm` | [`ref` param][0] |
15 | | Country / time zone | `country` | |
16 | | Session IDs | `session` | |
17 | | Time on page | `timeonpage` | Data point ID, Page ID |
18 | | Scrolled | `scrolled` | Data point ID, Page ID |
19 | | User Agent | `useragent` | |
20 | | Screen size | `screensize` | |
21 | | Viewport size | `viewportsize` | |
22 | | Language | `language` | |
23 |
24 | [0]: /how-to-use-url-parameters#using-a-url-parameter
25 |
26 |
40 |
41 | [See page](/metrics) where we explain those metrics.
42 |
43 | ## Script setting `data-ignore-metrics`
44 |
45 | You can enable this feature by adding `data-ignore-metrics=...` to our script embed:
46 |
47 | ```html
48 |
52 | ```
53 |
54 | In this case, it will not collect [a Session ID](/metrics#ids).
55 |
56 | ## Comma separated
57 |
58 | If you have multiple metrics you want to ignore you can separate them with a comma:
59 |
60 | ```html
61 |
65 | ```
66 |
67 | ## Ignore all metrics
68 |
69 | To ignore all metrics that you can ignore, you can use this embed script:
70 |
71 | ```html
72 |
76 | ```
77 |
78 | Need any help? We love to help you set up your script. Don't hesitate to [contact us](https://simpleanalytics.com/contact). Silly questions don't exist.
79 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/04_ignore-pages.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Ignore pages
3 | menu: Ignore pages
4 | category: script-settings
5 | permalink: /ignore-pages
6 | last_modified_at: 2022-11-24
7 | ---
8 |
9 | Normally you install the script on all pages of your website. You add your script in the header or footer so you don't have to copy it to every page. But sometimes you don't want to record all pages on your website. That's why we have a feature where you can ignore pages easily.
10 |
11 | ## `ignore-pages`
12 |
13 | Every page you want to ignore starts with a slash (`/`) and is only the path after the domain name, not the full link. For `https://example.com/vouchers` it would be `/vouchers`:
14 |
15 | ```html
16 |
20 | ```
21 |
22 | ## Comma separated
23 |
24 | Let's say you have these pages that you want to ignore:
25 |
26 | - `https://example.com/contact`
27 | - `https://example.com/accounts/@adriaan`
28 | - `https://example.com/vouchers`
29 |
30 | If you want to block all these pages you can separate them with a comma:
31 |
32 | ```html
33 |
37 | ```
38 |
39 | ## Wildcards
40 |
41 | If you need to match a part of a string you need to add an wildcard asterisk (`*`).
42 |
43 | Let's say you have these pages:
44 |
45 | - `https://example.com/search/keyword` (where `keyword` kan be any keyword)
46 | - `https://example.com/accounts/@profilename` (where `profilename` can be any name)
47 | - `https://example.com/vouchers` (only one page)
48 |
49 | To match `/search/1` and `/search/2` you can use `/search/*`. If you use `/search/` it will only ignore that page and still collects `/search/1` and `/search/2`.
50 |
51 | To block all above pages you can use the following code:
52 |
53 | ```html
54 |
58 | ```
59 |
60 | Need any help? We love to help you set up your script. Don't hesitate to [contact us](https://simpleanalytics.com/contact). Silly questions don't exist.
61 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/05_allow-url-parameters.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Allow URL parameters
3 | category: script-settings
4 | permalink: /allow-params
5 | created_at: 2022-07-26
6 | last_modified_at: 2022-07-26
7 | ---
8 |
9 | By default, we collect all UTM parameters (with and without the `utm_` prefix) and the `ref` (which is short for `utm_source`) parameter:
10 |
11 | - `utm_source` / `source` / `ref`
12 | - `utm_medium` / `medium`
13 | - `utm_campaign` / `campaign`
14 | - `utm_content` / `content`
15 | - `utm_term` / `term`
16 |
17 | > If your use [strict UTMs](/strict-utms), you can only use the query parameters that start with `utm_`.
18 |
19 | We don't store the rest of the query parameters. But some customers have non-personal data in their query parameters—for example, `product-id` or `article-slug`. We allow collecting those parameters as long as they are specified via our script settings.
20 |
21 | If you want to capture `product-id` and `article-slug` from your website's URLs, you can specify the following `data-allow-params`-setting:
22 |
23 | ```html
24 |
28 | ```
29 |
30 | Read more on [how to use URL parameters](/how-to-use-url-parameters) on your website.
31 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/30_non-unique-hostnames.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Non-unique hostnames
3 | category: script-settings
4 | permalink: /non-unique-hostnames
5 | created_at: 2022-07-26
6 | last_modified_at: 2023-02-28
7 | ---
8 |
9 | Suppose you redirect your visitors to a payment provider, and after they complete the payment, they return to your website. Because of the nature of not tracking visitors in Simple Analytics, we count those "returning" visitors as new visitors. To prevent this from happening, you can specify the hostname of that payment provider to tell us we should register this visit as non-unique.
10 |
11 | You can specify a list of hostnames (without `https://`) in the `data-non-unique-hostnames` setting of our embed script:
12 |
13 | ```html
14 |
18 | ```
19 |
20 | In the above example, visitors coming from `checkout.stripe.com` will be counted a non-unique.
21 |
22 | ## Multiple non-unique hostnames
23 |
24 | You can separate hostnames with a comma. For example:
25 |
26 | ```html
27 |
31 | ```
32 |
--------------------------------------------------------------------------------
/_docs/20_script-settings/40_strict-utms.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Strict UTMs
3 | category: script-settings
4 | permalink: /strict-utms
5 | created_at: 2022-07-26
6 | last_modified_at: 2022-07-26
7 | ---
8 |
9 | When collecting UTM codes, we allow to skip the `utm_` part:
10 |
11 | - `utm_source` / `source` / `ref`
12 | - `utm_medium` / `medium`
13 | - `utm_campaign` / `campaign`
14 | - `utm_content` / `content`
15 | - `utm_term` / `term`
16 |
17 | In our dashboard `utm_source`, `source`, `ref` will be stored as `utm_source`. But sometimes both parameters are used. To give you control over which parameter we should store you can enable strict UTMs.
18 |
19 | ```html
20 |
24 | ```
25 |
26 | This will only allow for the following UTMs to be used:
27 |
28 | - `utm_source`
29 | - `utm_medium`
30 | - `utm_campaign`
31 | - `utm_content`
32 | - `utm_term`
33 |
34 | The parameters `source`, `ref`, and more will not be collected.
35 |
36 | Want to collect more URL parameters? [Learn how to allow more parameters](/allow-params).
37 |
--------------------------------------------------------------------------------
/_docs/30_features/00_block-your-visits-on-safari.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Block your visits on Safari
3 | category: features
4 | hidden: true
5 | permalink: /block-your-visits-on-safari
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | To block your own visits on your website on Safari, you can use the about:blank extension. You can [download about:blank](https://apps.apple.com/us/app/about-blank/id1239207203) via the Mac App Store.
10 |
11 | > This is external software, so we can't guarantee your browsing data is safe. Use at your own risk.
12 |
13 | To install this extension and use it for Simple Analytics, you can follow the steps in this tutorial.
14 |
15 | You will need the script URL at some point: `https://scripts.simpleanalyticscdn.com`.
16 |
17 | > Do you have a [custom domain](/bypass-ad-blockers)? Make sure to add that to about:blank. For example: `https://simple.yourdomain.com`.
18 |
19 | {%
20 | include video.html
21 | controls="true"
22 | slug="docs/about-blank-mac-os-app"
23 | formats="mp4,ogg,webm,wmv"
24 | poster="poster.png"
25 | filename="install-about-blank-on-mac-os"
26 | %}
27 |
28 | If you want to block the non-JavaScript version as well you should add `https://queue.simpleanalyticscdn.com` to the block list.
29 |
30 | ## iOS
31 |
32 | On iPhone, you can [download about:blank](https://apps.apple.com/us/app/about-blank/id1239181721) on the App Store. It should sync your block list when you have iCloud enabled. If not, you should add the above URL(s) manually.
33 |
--------------------------------------------------------------------------------
/_docs/30_features/07-goals.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Goals
3 | category: features
4 | permalink: /goals
5 | created_at: 2022-12-22
6 | last_modified_at: 2022-12-22
7 | ---
8 |
9 | Our goals feature is really helpful for organizing and understanding your data. With it, you can set up filters for your data and view the results in these cool goal cards. The cards make it easy to see how you're doing at a glance.
10 |
11 | ## Overview
12 |
13 | In the video below we give you a quick overview of the goals feature.
14 |
15 | {%
16 | include video.html
17 | slug="2022-12-21-goals-overview"
18 | formats="mp4,mov,ogg,webm,wmv"
19 | poster="video.png"
20 | subtitles="subtitles.vtt"
21 | controls="true"
22 | autoplay="false"
23 | %}
24 |
25 | It's a good but simple introduction, but if you want to make the most of your goals, be sure to check out the rest of this article. We've included some helpful tips and information on how to use the feature to its full potential.
26 |
27 | ## Funnel
28 |
29 | In our next video, we'll show you how to set up a new goal with a filter that targets page views from the home page. We'll also demonstrate how to add an additional step to the goal by filtering page views from the pricing page. This will give you a more comprehensive view of how your pricing page is performing.
30 |
31 | {%
32 | include video.html
33 | slug="2022-12-22-goals-home-to-pricing"
34 | formats="mp4,mov,ogg,webm,wmv"
35 | poster="video.png"
36 | controls="true"
37 | autoplay="true"
38 | %}
39 |
40 | Go to [your dashboard](https://simpleanalytics.com/select-website/events) and start playing with goals.
41 |
42 | ## Fields
43 |
44 | | Field | Type | Description |
45 | |---------------------|----------|-------------|
46 | | Date & time | date | The date of the data point |
47 | | Path | string | The path of the data point |
48 | | Is unique | boolean | Is this page view unique |
49 | | UTM source | string | UTM source (specify via `ref=` or `utm_source` in your URL) |
50 | | UTM medium | string | UTM medium (specify via `utm_medium` in your URL) |
51 | | UTM campaign | string | UTM campaign (specify via `utm_campaign` in your URL) |
52 | | UTM content | string | UTM content (specify via `utm_content` in your URL) |
53 | | UTM term | string | UTM term (specify via `utm_term` in your URL) |
54 | | Scrolled percentage | number | How far did a visitor scroll on the page (in steps of 5%) |
55 | | Duration seconds | number | How many seconds did a visitor stay on this page (we stop the counter when a page is hidden) |
56 | | Screen width | number | Screen width in pixels |
57 | | Screen height | number | Screen height in pixels |
58 | | Country code | string | 2 letter country code |
59 | | Browser name | string | Browser name |
60 | | Browser version | string | Browser version (do note this is a string) |
61 | | OS name | string | OS name |
62 | | OS version | string | OS version (do note this is a string) |
63 | | Device type | string | Either desktop, mobile, tablet, or tv |
64 | | Lang region | string | The region part of [navigator.language](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage/language) |
65 | | Lang language | string | The language part of [navigator.language](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage/language) |
66 | | Referrer hostname | string | The hostname of the referring page/website |
67 | | Referrer path | string | The path of the referring page/website |
68 |
69 |
75 |
--------------------------------------------------------------------------------
/_docs/30_features/08_custom-views.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Custom views
3 | category: features
4 | permalink: /custom-views
5 | last_modified_at: 2025-06-24
6 | ---
7 |
8 | Custom views help you to have permanent filters on your dashboard, merge multiple domains into one dashboard, or give others access to a limited subset of the data.
9 |
10 | > You need to have the Team subscription to use custom views.
11 |
12 | 1. Start by [creating a custom view](https://dashboard.simpleanalytics.com/views/create).
13 | 2. Select the websites you want to include in the view. If you are part of multiple teams, you can only include websites from the same team in one custom view.
14 | 
15 | 3. Optionally, you can add filters to custom views. This can be useful if you want to exclude some pages or give someone access to only a subset of the website data.
16 | 
17 | 4. Create a name for the view.
18 | 
19 |
--------------------------------------------------------------------------------
/_docs/30_features/10_mini-websites.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Mini websites
3 | category: features
4 | permalink: /mini-websites
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | Referral links are so boring. Why not make them beautiful? That's why we created mini websites. Screenshots of the websites but then very mini!
9 |
10 |
11 |
12 | You will find them if you click on one of the referrals below the main graph. The screenshots are cached when they are created and will only be regenerated when you click on the little circular arrow. You see this arrow when you hover over the mini website:
13 |
14 |
15 |
16 | It takes a few seconds before the new mini website will be regenerated.
17 |
18 | ## Hide parts of your website in the screenshots
19 |
20 | If you want to hide certain parts from your own screenshots you can hide them. You or your developers can add `data-screenshot="hidden"` to the elements that you don't want to see in your screenshots. The Simple Analytics Screenshots Grabber will add a CSS style to the page where those elements get the style `display: none !important;`. This way those specific elements will be hidden from the screenshots.
21 |
22 | > If you want to edit the screenshots, you can help us by [submitting a pull request on GitHub](https://github.com/simpleanalytics/screenshot-grabber).
23 |
--------------------------------------------------------------------------------
/_docs/30_features/11-filters.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Filters
3 | category: features
4 | permalink: /filters
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | How can we make it easy to find that data about that specific page/referrer/UTM code? Well, we created filters just for that. With a few clicks, you will find the data you are looking for.
9 |
10 | {%
11 | include video.html
12 | slug="filters"
13 | formats="mp4,ogg,webm,wmv"
14 | poster="video.png"
15 | %}
16 |
17 | Go to [your dashboard](https://simpleanalytics.com/select-website) and start playing with filters.
18 |
--------------------------------------------------------------------------------
/_docs/30_features/12-export-your-data.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Export your data
3 | category: features
4 | permalink: /export-data
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | As a privacy-friendly business, we care a lot about who owns the data. We are very clear in our terms of service ([section 10](https://simpleanalytics.com/general-terms-and-conditions#intellectual-property)) that you (our customer) own the analytics data. We don't. To not just have that in words in our terms, we care about making it easy for you to export your data. You can export your data through [our APIs](/api) or use [our user interface](https://simpleanalytics.com/select-website/export) to export the raw data.
9 |
10 | {%
11 | include video.html
12 | red="true"
13 | slug="export-raw-data-gui"
14 | formats="mp4,ogg,webm,wmv"
15 | %}
16 |
17 | > The video above is slightly out-dated, for a more recent version, check the [Generate export URL](/api/helpers#generate-export-url) in the API helpers or [the live version](https://simpleanalytics.com/select-website/export).
18 |
19 | Go to [the export your data](https://simpleanalytics.com/select-website/export) in your dashboard to download your data as a CSV.
20 |
21 | If you want to get aggregated data, you'll have to use [our Stats API](/api/stats) for that.
22 |
--------------------------------------------------------------------------------
/_docs/30_features/15_email-reports.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Email reports
3 | category: features
4 | permalink: /email-reports
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | Want to start your Monday morning by checking how your website is doing? Want to send updates to others? Use our weekly or monthly email reports so you don't have to check the dashboard all the time. Never miss that spike of traffic.
9 |
10 | Just enable it in [your website settings](https://simpleanalytics.com/select-website/settings#email-reports). Look for the section that looks like this:
11 |
12 |
13 |
14 | The email will look more or less like this:
15 |
16 |
17 |
18 | It includes the top 5 referrers and we compare them with the previous period. This gives you a indication of where your website is getting its traffic from, and how those numbers might have changed.
19 |
20 | In the example above it shows that we got significantly more traffic from our referral website _(referral.simpleanalytics.com +963% )_ than last week. Time for us to find out why. Thanks email report :)
21 |
22 | We send this email at 9AM in your local time zone. You can change this time zone per website in your [website settings](https://simpleanalytics.com/select-website/settings#timezone).
23 |
--------------------------------------------------------------------------------
/_docs/30_features/20_bypass.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Bypass ad-blockers
3 | category: features
4 | permalink: /bypass-ad-blockers
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | Simple Analytics never collects any personal identifiable information. Ad-blockers see us just any other analytics company and some of the ad-blockers are blocking our domain as a result. To prevent your stats being blocked as a result we allow you to setup a bypass. This basically hides Simple Analytics' server name from the browser by redirecting a subdomain to our domain.
9 |
10 | We created a video showing how to bypass adblockers in Simple Analytics. [Here you go](https://www.youtube.com/watch?v=C8pVceioNi0)
11 |
12 | ## Setup a custom subdomain
13 |
14 | You only need access to your DNS to set this up. Add a CNAME record to your DNS pointing to `simpleanalyticsexternal.com` and fill in your full domain in [your website settings](https://simpleanalytics.com/select-website/settings#bypass-ad-blockers). We advise to choose a domain like `api.example.com` instead of `track.example.com` _(tracking, analytics, collect, and similar keywords are usually blocked)_.
15 |
16 | You will need to enable the record in [your website settings](https://simpleanalytics.com/select-website/settings#bypass-ad-blockers) on Simple Analytics. We need to know this to request a certificate with Let's Encrypt . This means your analytics will travel safe via HTTPS to our servers.
17 |
18 |
19 |
20 | > If you are using CloudFlare, make sure to disable the orange cloud.
21 |
22 | ## Check if SSL works
23 |
24 | Check if your custom domain page shows at `https://custom.domain.com`. It should show something like this:
25 |
26 |
27 |
28 | If you get an SSL error, please hit refresh in your [website settings](https://simpleanalytics.com/select-website/settings#bypass-ad-blockers):
29 |
30 |
31 |
32 | ## Update your script
33 |
34 | Include these two lines at the end of your `` (or anywhere else):
35 |
36 |
37 | ```html
38 |
39 | ```
40 |
41 | Make sure to replace `custom.domain.com` with your own custom domain.
42 |
43 | ## Multiple websites
44 |
45 | You can use one custom subdomain for all your websites. Make sure to link it to at least one domain via [your website settings](https://simpleanalytics.com/select-website/settings#bypass-ad-blockers). If you add the custom domain to one website we know which SSL certificates need renewal and which ones we can delete. Using one custom domain for multiple websites does not effect performance. It will be running through the same infrastructure.
46 |
--------------------------------------------------------------------------------
/_docs/30_features/22-advanced-robot-blocking.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Advanced robot blocking
3 | menu: Robot blocking
4 | category: features
5 | permalink: /robot-blocking
6 | last_modified_at: 2023-08-24
7 | ---
8 |
9 | By default, we block robots based on their user agent and some traces they leave in the browser by default. For most robots, this works great, but some slip through the cracks. We added *advanced robot blocking* to prevent those robots from polluting your data.
10 |
11 | It works by having an extensive list of known IPs of data centers (from Udger, Google Cloud, Amazon AWS, Microsoft Azure). This list does not contain the IPs of your visitors. Before we store a data point, we check if the IP matches this list of IPs of data centers. If it does, we tag the datapoint as being from a robot. We never store (not even a hashed version of) the IPs of your visitors.
12 |
13 | Advanced robot blocking settings works for all of your websites in your account.
14 |
15 | Here is how it looks in your account settings when it's enabled:
16 |
17 |
18 |
19 | Go to [your account](https://simpleanalytics.com/account#advanced-robot-blocking) to enable *Advanced robot blocking*.
20 |
--------------------------------------------------------------------------------
/_docs/30_features/25_hide-spam.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Hide referral SPAM
3 | category: features
4 | permalink: /hide-referral-spam
5 | redirect_from:
6 | - /delete-spam-from-your-analytics
7 | - /remove-referral-spam
8 | last_modified_at: 2022-04-14
9 | ---
10 |
11 | Simple Analytics has a feature where you can hide referral spam. Not by setting up complex filters, but just with a click on a button.
12 |
13 | Hiding spam in your dashboard works by creating a filter. We have some logic in place where you can see how many page views are found with a certain referral so you know how many page views you are hiding. Do note that this filter will also be used in all other Simple Analytics features. You don't see the filtered referrals anywhere anymore. This is also the case for future page views.
14 |
15 | > You can hide page views based on UTM codes as well. Go to [the cleaning feature](https://simpleanalytics.com/select-website/clean) to try it out.
16 |
17 | Let's say you have referral SPAM from _"buy-my-product-now"_ as shown in this dashboard:
18 |
19 |
20 |
21 | This is annoying and make your stats inaccurate. If you want to remove this SPAM please follow these steps to remove it from your dashboard:
22 |
23 | 1. Click on the _"buy-my-product-now"_ referral and scroll down the page
24 |
25 | 1. Click on this link at the bottom of that page:
26 |
27 |
28 |
29 | 1. On the next page check if the amount of visits seems correct:
30 |
31 |
32 |
33 | 1. Download a copy of your data
34 |
35 |
36 |
37 | 1. Remove the visits by clicking the button.
38 |
39 |
40 |
41 | 1. The hiding of the visits starts and should be finished in a few seconds.
42 |
43 | > You can also remove SPAM based on the page. This is uncommon, but if you want you can ask us for help or try it yourself. Use this URL (`https://simpleanalytics.com/clean?hostname=example.com&type=path&path=/page`) and replace `example.com` with your domain and `/page` with the page you like to remove. It will ask you to confirm because removing.
44 |
--------------------------------------------------------------------------------
/_docs/30_features/27_certificate-checks.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: SSL expiry alerts
3 | category: features
4 | permalink: /ssl-expiry-alerts
5 | last_modified_at: 2022-09-08
6 | ---
7 |
8 | Secure Sockets Layer (SSL) are cryptographic protocols that provide security and data integrity for data transfers over the internet. When you visit a website that starts with HTTPS or has a (green) lock pad next to the URL, it uses an SSL certificate. Most websites have those, and those certificates have an expiry date. Sometimes it might happen that the certificate will expire before it's renewed. Your website will not be available to your visitors.
9 |
10 | To prevent this from happening, Simple Analytics developed a feature where you get alerts via email when an SSL certificate is about to expire. We usually send out two emails, one four days before the expiry date and another one day before the expiry date. That gives you and your team some time to renew the certificate before it's too late.
11 |
12 | You can always check the SSL expiry date for your websites yourself via [our free SSL check tool](https://simpleanalytics.com/check-ssl).
13 |
14 | Here is an example email for such an alert:
15 |
16 |
17 |
18 | You can disable the alerts right from those emails. You can either disable all SSL expiry alerts for all websites or just for that one website you got the alert for.
19 |
--------------------------------------------------------------------------------
/_docs/30_features/33_trend-lines.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Trend lines
3 | category: features
4 | permalink: /trend-lines
5 | redirect_from:
6 | - /trendlines
7 | last_modified_at: 2022-10-21
8 | ---
9 |
10 | Trend lines give you a quick overview of how your numbers are changing in the period shown in the charts.
11 |
12 | ### Curved trend lines with outliers excluded
13 |
14 | The default in Simple Analytics is to show these curved trend lines, excluding outliers. It gives a bit more information than linear instead of curved trend lines. Curved trend lines use a [polynomial regression](https://en.wikipedia.org/wiki/Polynomial_regression) with an order of 2. It does not always play nice with outliers. To exclude them, we use an [interquartile range (IQR) x 1.5](https://en.wikipedia.org/wiki/Interquartile_range).
15 |
16 |
17 |
18 | The dashed line shows which data is excluded. At the start and the end, the data is incomplete. We never include that data for the trend line. In the chart above, you see another dashed line; the month of July. That's an excluded outlier. It will not be included in the trend line (unless you change this [in your account settings](https://simpleanalytics.com/account#trendlines)).
19 |
20 | ### Curved trend lines with outliers included
21 |
22 | Curved trend lines don't always play nice with outliers. By default, we exclude them. If you include them, you see a trend line like this:
23 |
24 |
25 |
26 | ### Linear trend lines with outliers included
27 |
28 | The more basic trend line is linear. Just disable curved if you want to see these types of trend lines.
29 |
30 |
31 |
32 | ### Account settings
33 |
34 | In [your account settings](https://simpleanalytics.com/account#trendlines), you can change the settings of your trend lines.
35 |
36 |
37 |
--------------------------------------------------------------------------------
/_docs/30_features/38_annotations.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Annotations
3 | category: features
4 | permalink: /annotations
5 | last_modified_at: 2022-10-24
6 | ---
7 |
8 | Annotations are a great way to remember yourself or your team, what happened, and when. Annotations can be helpful to mark events like a new campaign, a change in SEO, or a new pricing strategy.
9 |
10 | You can always toggle annotations quickly via the checkbox below the chart. If the checkbox doesn’t show, there are no annotations for that period.
11 |
12 | ### Default annotations
13 |
14 | We have some default annotations. For example, we add an annotation when updating our public script, which could affect your analytics. Here you see an example:
15 |
16 |
17 |
18 | ### Custom annotations
19 |
20 | The real power comes with custom annotations. You can define as many annotations as you like. It's recommended to keep the labels of the annotations short. This will keep the chart more readable. You can use new lines to keep the annotation narrow.
21 |
22 | If you want to communicate even more with the annotations, add a link to it. When you do, the annotations will become links. If you click them, you will navigate to the predefined link.
23 |
24 |
25 |
26 | ### Account settings
27 |
28 | You can hide our default annotations in [your account settings](https://simpleanalytics.com/select-website/settings#annotations) and add your own.
29 |
30 |
31 |
--------------------------------------------------------------------------------
/_docs/30_features/40_extension.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Block your visits extension
3 | category: features
4 | permalink: /extension
5 | last_modified_at: 2024-01-02
6 | ---
7 |
8 | If you are a customer of Simple Analytics and you want to block your own visits this extension is for you. With it enabled your stats will not include your visits.
9 |
10 | > Download the extension for [Google Chrome](https://chrome.google.com/webstore/detail/simple-analytics/ehkndchainpkdfpnancgobgfnfjnmmeh) or [Firefox](https://addons.mozilla.org/en-US/firefox/addon/simpleanalytics/). If you want to block your visits on your iPhone, use [our app](/ios-app). For Safari on desktop [visit this tutorial](/block-your-visits-on-safari).
11 |
12 | We do this via an extension so we don't need to record IP addresses. It basically blocks requests on websites where you give permission for.
13 |
14 | {%
15 | include video.html
16 | slug="2024-01-02-block-my-visits-extension"
17 | formats="mp4,ogg,webm,wmv,mov"
18 | poster="video.png"
19 | %}
20 |
21 | When you click on the icon you are asked to allow the extension to load the data from the current website. This is needed to block the visits. You need to do this once per website. We don't get access to other websites.
22 |
23 | When a visits is blocked it shows as a counter on the icon. The counter does reset when you close your tab. For more stats of blocked visits you can go to the options page.
24 |
25 | On the options page you will find all websites being blocked and you can change what the extension should block.
26 |
27 | Enjoy and if you have any feedback, go to our website and let us know!
28 |
29 | > For now the extension is only available in Chrome and Firefox. Opera and Edge are coming.
30 |
--------------------------------------------------------------------------------
/_docs/30_features/42-exclude-your-ip.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Exclude your IPs
3 | category: features
4 | permalink: /exclude-ips
5 | last_modified_at: 2025-01-09
6 | ---
7 |
8 | This feature allows you to exclude specific IP addresses from being tracked or block your own visits locally on your computer by modifying its hosts file. Excluded IPs or blocked domains ensure visits from internal users or other known sources don’t impact your analytics data. This is helpful for maintaining cleaner, more accurate insights.
9 |
10 | ## Block IP's in the dashboard
11 |
12 | The exclusion applies only to visits from the moment you save the IP addresses. Previous visits from these IPs will remain in your analytics data. To ensure privacy, we never store the IP addresses of visitors. The only IPs stored are the ones you manually input into this feature. Currently, only IPv4 addresses are supported.
13 |
14 | Steps to exclude IP addresses:
15 |
16 | 1. Go to the [“Excluded IP Addresses” section](https://dashboard.simpleanalytics.com/account#blocked-ips) in your account settings.
17 | 2. Enter the IPv4 addresses you want to exclude, separated by commas. Example: `80.100.12.45, 145.38.50.41`
18 | 3. Use the “Use your current IP address” option to quickly add your current IP to the list.
19 | 4. Click the Save excluded IPs button to apply the changes.
20 |
21 | This exclusion is applied globally across all websites linked to your account.
22 |
23 | ## Block a domain locally on a computer
24 |
25 | > This part of the tutorial is for advanced computer users only.
26 |
27 | You can prevent Simple Analytics from collecting your visits by modifying your computer’s hosts file. This method works for both Mac and Windows. If you want to block a custom domain, replace `scripts.simpleanalyticscdn.com` with your own custom domain.
28 |
29 | ### Block visits on Mac
30 |
31 | 1. Launch the Terminal app. You can find it by searching for “Terminal” in Spotlight.
32 | 2. Run the following command to open the hosts file in a text editor:
33 |
34 | sudo nano /etc/hosts
35 |
36 | Enter your password when prompted.
37 |
38 | 3. Scroll to the bottom of the file and add the following line:
39 |
40 | 0.0.0.0 scripts.simpleanalyticscdn.com
41 |
42 | 4. Press Control + O to save the changes.
43 | 5. Press Enter to confirm the filename.
44 | 6. Press Control + X to exit the editor.
45 | 7. Run the following command to apply the changes:
46 |
47 | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
48 |
49 | Your computer will now block requests to Simple Analytics from your browser.
50 |
51 | ### Block visits on Windows
52 | 1. Search for “Notepad” in the Start menu.
53 | 2. Right-click and select Run as administrator.
54 | 3. In Notepad, open the file located at:
55 |
56 | C:\Windows\System32\drivers\etc\hosts
57 |
58 | If you don’t see the file, change the file type dropdown to All Files.
59 |
60 | 4. Add the following line at the end of the file:
61 |
62 | 0.0.0.0 scripts.simpleanalyticscdn.com
63 |
64 | 5. Save the file by clicking File > Save or pressing Control + S.
65 | 6. Open Command Prompt as administrator and run:
66 |
67 | ipconfig /flushdns
68 |
69 | Your computer will now block requests to Simple Analytics from your browser.
70 |
71 | By following these steps, you can ensure your own visits are excluded from analytics tracking.
72 |
--------------------------------------------------------------------------------
/_docs/30_features/45_ios-app.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: iOS app
3 | category: features
4 | permalink: /ios-app
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | We love to make analytics fun for our customers. That's why we created an iOS app that includes nice looking widgets.
9 |
10 |
11 |
12 |
13 |
14 | Go to [your account settings](https://simpleanalytics.com/account) (scroll to the bottom) to find ways to login into the iOS app.
15 |
16 | The iOS app is built by [Onur Genes](https://onurgenes.com/?utm_source=simpleanalytics.com) and the content blocking by [Frederik Dudzik](https://dudzik.co/?utm_source=simpleanalytics.com).
17 |
18 | ### Desktop version
19 |
20 | We also have a desktop version available which looks like this:
21 |
22 |
23 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_astro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with Astro
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-astro
6 | last_modified_at: 2023-11-23
7 | ---
8 |
9 | ...
10 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_django.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with Django
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-django
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | Install the plugin:
10 |
11 | ```bash
12 | pip install simpleanalytics
13 | ```
14 |
15 | ## Using it
16 |
17 | Add the package to the `INSTALLED_APPS`:
18 |
19 | ```python
20 | INSTALLED_APPS = [
21 | ...,
22 | simpleanalytics,
23 | ]
24 | ```
25 |
26 | Next use the `templatetag` in your template:
27 |
28 | ```html
29 |
30 | \{\% load static simpleanalytics_tags %}
31 |
32 |
33 |
34 | \{\% block page_title %}\{{ site.name }}\{\% endblock %}
35 |
39 | ... \{\% simpleanalytics_sync %} ...
40 |
41 |
42 | \{\% simpleanalytics_noscript_block %}
43 |
44 |
45 | ```
46 |
47 | This will translate to roughly this:
48 |
49 | ```
50 |
51 |
52 |
53 |
54 | example.com
55 |
56 | ...
57 |
58 | ...
59 |
60 |
61 |
62 |
63 |
64 | ```
65 |
66 | ## Template tags
67 |
68 | This app has four template tags:
69 |
70 | - `simpleanalytics_sync`
71 | - `simpleanalytics_async`
72 | - `simpleanalytics_noscript_block`
73 | - `simpleanalytics_noscript_img`
74 |
75 | `simpleanalytics_sync` converts to a plain `
49 | ```
50 |
51 | Make sure to replace `yoursite.godaddysites.com` with your own website name. Omit `https://` and `www.` in the hostname variable. The path is unique to every page you have. `/` is for the homepage, `/contact` could be your "Contact us" page. The part `var hostname = "...";` stays the same for every page.
52 |
53 | 7. Save and publish
54 | - After inserting the script, click on `Done` to exit the HTML editor.
55 | - Click on `Publish` in the upper right-hand corner to make the changes live.
56 |
57 | 8. Redo for all pages
58 | - Do this for every page you want to track. Make sure to update the `path` in the script for every page.
59 |
60 | Your GoDaddy website should now have the Simple Analytics script running, which will collect data based on the parameters you've set in the script.
61 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_gridsome.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with Gridsome
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-gridsome
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | Install our Gridsome package:
10 |
11 | ```bash
12 | npm install gridsome-plugin-simple-analytics
13 | ```
14 |
15 | ### Usage
16 |
17 | ```js
18 | module.exports = {
19 | plugins: [
20 | {
21 | use: "gridsome-plugin-simple-analytics",
22 | },
23 | ],
24 | };
25 | ```
26 |
27 | ### Bypass Ad Blockers
28 |
29 | You can also optionally specify a custom domain to bypass ad blockers. Read more about this in [our documentation](https://docs.simpleanalytics.com/bypass-ad-blockers).
30 |
31 | ```js
32 | module.exports = {
33 | plugins: [
34 | {
35 | use: "gridsome-plugin-simple-analytics",
36 | options: {
37 | domain: "api.example.com",
38 | },
39 | },
40 | ],
41 | };
42 | ```
43 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_hugo.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with Hugo
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-hugo
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 |
10 |
11 | You can embed our script in Hugo using their feature called ["Base Template"](https://gohugo.io/templates/base/). On this page we will explain how to use this feature and help you installing the Simple Analytics script with Hugo.
12 |
13 | Follow these steps to add Simple Analytics to your website:
14 |
15 | 1. Open your project
16 | 1. Find your base template (usually in `layouts/_default/baseof.html`)
17 | - If it does not exist, create it.
18 | 1. Copy [the embed script](/script) just before the `` tag
19 | 1. Save and build the project
20 |
21 | > If you have a footer block in your base template you can also choose to paste the embed script there.
22 |
23 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
24 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_jimdo.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on Jimdo Creator
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-on-jimdo-creator
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | You can embed our script in Jimdo Creator using their blocks. On this page we will explain how to use this feature and help you installing the Simple Analytics script on Jimdo Creator.
10 |
11 | > To install Simple Analytics on Jimdo you need Jimdo Creator. Jimdo Dolphin does not support custom elements.
12 |
13 | Follow these steps to add Simple Analytics to your website:
14 |
15 | 1. Log in to your [Jimdo account](https://help.jimdo.com/hc/en-us/articles/115005536243) and [choose the desired website](https://help.jimdo.com/hc/en-us/articles/360018268112)
16 | 1. Click **Edit** to enter your Jimdo Creator website's edit mode
17 | 1. Hover over the content area with your mouse until the button **Add Element** appears
18 | 1. Click on **More Elements and Add-ons** and select an **HTML** element:
19 |
20 | 
21 |
22 | 1. Paste the embed code from [how to add our script](/script) into the text input field:
23 |
24 | 
25 |
26 | 1. Hit **Save** and the Simple Analytics script is installed!
27 |
28 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
29 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_mailerlite.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on MailerLite
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-on-mailerlite
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | You can embed our script in MailerLite using their feature called "Page code injection". On this page we will explain how to use this feature and help you installing the Simple Analytics script on MailerLite.
10 |
11 | Follow these steps to add Simple Analytics to your website:
12 |
13 | 1. Go to your website settings by navigating from **Sites** > **Websites** > (click the name of your website) > Scroll to **Website settings** > **Edit**
14 |
15 | 1. We recommend to disable the other analytics tools (for privacy reasons) if you don't use those. It does not disable Simple Analytics. Check the box:
16 |
17 | 
18 |
19 | 1. Paste the embed code from [how to add our script](/script) into the **Page code injection** text input field:
20 |
21 | 
22 |
23 | 1. Click on **Save and continue** and you are done
24 |
25 | 
26 |
27 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
28 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_next.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with Next.js
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-next
6 | last_modified_at: 2024-01-15
7 | ---
8 |
9 | Next.js has a lovely [Script component](https://nextjs.org/docs/pages/building-your-application/optimizing/scripts).
10 |
11 | In your app, you can add this Script component. You can use the App Router, the Pages Router, or the pre Next.js 13 way.
12 |
13 | ## App router
14 |
15 | ```jsx
16 | // app/layout.js
17 | import Script from 'next/script'
18 |
19 | export default function RootLayout({ children }) {
20 | return (
21 |
22 | {children}
23 |
24 |
25 | )
26 | }
27 | ```
28 |
29 | ## Pages Router
30 |
31 | ```jsx
32 | // pages/_app.js
33 | import Script from 'next/script'
34 |
35 | export default function MyApp({ Component, pageProps }) {
36 | return (
37 | <>
38 |
39 |
40 | >
41 | )
42 | }
43 | ```
44 |
45 | ## Before Next.js 13
46 |
47 | ```jsx
48 | // _app.tsx
49 | import type { AppProps } from "next/app";
50 | import React from "react";
51 | import Script from "next/script";
52 |
53 | function MyApp({ Component, pageProps }: AppProps) {
54 | return (
55 |
56 |
57 |
58 |
59 | {/* eslint-disable @next/next/no-img-element */}
60 |
65 |
66 |
67 | );
68 | }
69 |
70 | export default MyApp;
71 | ```
72 |
73 | It will use the `afterInteractive` strategy to load the script. From the docs:
74 |
75 | > For scripts that can fetch and execute after the page is interactive, such as tag managers and analytics. These scripts are injected on the client-side and will run after hydration.
76 |
77 | ## Noscript
78 |
79 | You can use the ``-tag, but it's not really needed. Most visitors without JavaScript are bots anyway.
80 |
81 | ## Send events with JavaSript
82 |
83 | ```ts
84 | export const saEvent = (eventName) => {
85 | if (window && window.sa_event) return window.sa_event(eventName);
86 | };
87 | ```
88 |
89 | ## Send events with TypeScript
90 |
91 | ```ts
92 | declare function sa_event(eventName: string);
93 |
94 | export const saEvent = (eventName: string) => {
95 | if (window && window.sa_event) return window.sa_event(eventName);
96 | };
97 | ```
98 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_nuxt.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with Nuxt 3
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-nuxt
6 | last_modified_at: 2023-03-03
7 | ---
8 |
9 | We have a package that works with both Nuxt 2 and Nuxt 3.
10 |
11 | ## Nuxt 3
12 |
13 | Run this command to install Simple Analytics for Vue:
14 |
15 | ```bash
16 | npm install simple-analytics-vue --save-dev
17 | ```
18 |
19 | Create a file called `plugins/simpleanalytics.client.js`:
20 |
21 | ```js
22 | import SimpleAnalytics from "simple-analytics-vue";
23 |
24 | export default defineNuxtPlugin((nuxtApp) => {
25 | nuxtApp.vueApp.use(SimpleAnalytics);
26 | });
27 | ```
28 |
29 | That's it! Continue only if you want to go advanced.
30 |
31 | If you want to skip your own visits on development:
32 |
33 | ```js
34 | import SimpleAnalytics from "simple-analytics-vue";
35 |
36 | export default defineNuxtPlugin((nuxtApp) => {
37 | nuxtApp.vueApp.use(SimpleAnalytics, {
38 | skip: process.env.NODE_ENV !== "production",
39 | });
40 | });
41 | ```
42 |
43 | If you have a [custom domain for bypassing ad-blockers](/bypass-ad-blockers) set up, use this:
44 |
45 | ```js
46 | import SimpleAnalytics from "simple-analytics-vue";
47 |
48 | export default defineNuxtPlugin((nuxtApp) => {
49 | nuxtApp.vueApp.use(SimpleAnalytics, {
50 | skip: process.env.NODE_ENV !== "production",
51 | domain: "api.example.com"
52 | });
53 | });
54 | ```
55 |
56 | ## Nuxt 2
57 |
58 | Run this command to install Simple Analytics for Vue:
59 |
60 | ```bash
61 | npm install simple-analytics-vue@2.x --save-dev
62 | ```
63 |
64 | Create a file in your plugin folder with the name `simple-analytics.js`:
65 |
66 | ```js
67 | // ~/plugins/simple-analytics.js
68 |
69 | import SimpleAnalytics from "simple-analytics-vue";
70 | import Vue from "vue";
71 |
72 | Vue.use(SimpleAnalytics, { skip: process.env.NODE_ENV !== "production" });
73 | ```
74 |
75 | Then on your `nuxt.config.js`, make sure to include the plugin with `ssr: false` as we only want to run it on the client:
76 |
77 | ```js
78 | // nuxt.config.js
79 |
80 | export default {
81 | plugins: [{ src: "~/plugins/simple-analytics.js", ssr: false }],
82 | };
83 | ```
84 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_react.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with React
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-react
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | Most projects have the structure of `npx create-react-app my-app`. Let's follow that structure.
10 |
11 | You don't need any dependency to install Simple Analytics.
12 |
13 | 1. Go to your HTML file: usually in `public/index.html`
14 | 2. Paste the embed code from [how to add our script](/script) at the end of body of that file.
15 | 3. Save this file and you're done!
16 |
17 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
18 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_rubyonrails.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with Ruby on Rails
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-ruby-on-rails
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | This gem adds the [JavaScript Tracking Script](https://docs.simpleanalytics.com/script) to the `` & `` tag of your Ruby on Rails applications.
10 |
11 | ## Installation
12 |
13 | Add this line to your application's Gemfile:
14 |
15 | ```ruby
16 | gem 'simple_analytics_rails'
17 | ```
18 |
19 | And then execute:
20 |
21 | ```bash
22 | bundle install
23 | ```
24 |
25 | Or install it yourself as:
26 |
27 | ```bash
28 | gem install simple_analytics_rails
29 | ```
30 |
31 | ## Usage
32 |
33 | After the gem is installed, it will automatically append the Simple Analytics JavaScript snippet before the `` tag on your HTML pages.
34 |
35 | However, you can also configure it via an initializer:
36 |
37 | ```ruby
38 | # config/initializers/simple_analytics.rb
39 | SimpleAnalyticsRails.configure do |configuration|
40 | # ==> Overwrite domain name
41 | # https://docs.simpleanalytics.com/overwrite-domain-name
42 | #
43 | # Default is ""
44 | configuration.hostname = "example.com"
45 | # ==> Hash mode
46 | # https://docs.simpleanalytics.com/hash-mode
47 | #
48 | # Default is ""
49 | configuration.mode = "hash"
50 | # ==> Do not track
51 | # https://docs.simpleanalytics.com/dnt
52 | #
53 | # Default is false
54 | configuration.collect_dnt = false
55 | # ==> Ignore pages
56 | # https://docs.simpleanalytics.com/ignore-pages
57 | #
58 | # Default is ""
59 | configuration.ignore_pages = "/search/*,/account/*,/vouchers"
60 | # ==> Override variable used for JavaScript Events
61 | # https://docs.simpleanalytics.com/events#the-variable-sa_event-is-already-used
62 | #
63 | # Default is "sa_event"
64 | configuration.sa_global = "sa_event"
65 | # ==> Trigger custom page views
66 | # https://docs.simpleanalytics.com/trigger-custom-page-views#use-custom-collection-anyway
67 | #
68 | # Default is true
69 | configuration.auto_collect = true
70 | # ==> Onload Callback
71 | # https://docs.simpleanalytics.com/trigger-custom-page-views#use-custom-collection-anyway
72 | #
73 | # Default is ""
74 | configuration.onload_callback = "onloadCallback()"
75 | # ==> Custom Domain
76 | # https://docs.simpleanalytics.com/bypass-ad-blockers
77 | #
78 | # Default is ""
79 | configuration.custom_domain = "custom.domain.com"
80 | # ==> Inject JavaScript To Head
81 | # You can disable the automatic JavaScript injection if you'd like.
82 | #
83 | # Default is true
84 | configuration.enabled = Rails.env.production?
85 | end
86 | ```
87 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_vue.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with Vue.js
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-vue
6 | last_modified_at: 2022-04-14
7 | description: "Installation document to get website traffic by Simple Analytics for Vue.js"
8 | ---
9 |
10 | Run this command to install Simple Analytics for Vue:
11 |
12 | ```bash
13 | npm install simple-analytics-vue
14 | ```
15 |
16 | ## Import Vue in your app
17 |
18 | Import the plugin and add it to `Vue.use`. You can add a `skip` option which will define when page views should be skipped. This can be useful if you want to skip page views from yourself when developing your app.
19 |
20 | ```js
21 | import SimpleAnalytics from "simple-analytics-vue";
22 | import Vue from "vue";
23 |
24 | Vue.use(SimpleAnalytics, { skip: process.env.NODE_ENV !== "production" });
25 | ```
26 |
27 | You can also pass a function or promise to `skip`, which will be validated before injecting the Simple Analytics embed code:
28 |
29 | ```js
30 | import auth from "lib/auth";
31 | Vue.use(SimpleAnalytics, { skip: auth.isAdminPromise });
32 | ```
33 |
34 | You can also optionally specify a custom domain to bypass ad blockers. Read more about this in [our documentation](https://docs.simpleanalytics.com/bypass-ad-blockers).
35 |
36 | ```js
37 | Vue.use(SimpleAnalytics, { domain: "api.example.com" });
38 | ```
39 |
40 | ### Events
41 |
42 | To send an event, use the globally available `saEvent` method.
43 |
44 | ```js
45 | // ~/src/components/Comment.vue
46 | {
47 | methods: {
48 | likeComment (comment) {
49 | // code to like comment
50 | this.saEvent(`comment_like_${comment.id}`)
51 | }
52 | }
53 | ```
54 |
55 | Note: Simple Analytics does not run on localhost. You can still fire events, but they will be captured and logged in the console for debugging purposes.
56 |
57 | ## Nuxt.js
58 |
59 | Create a file in your plugin folder with the name `simple-analytics.js`:
60 |
61 | ```js
62 | // ~/plugins/simple-analytics.js
63 |
64 | import SimpleAnalytics from "simple-analytics-vue";
65 | import Vue from "vue";
66 |
67 | Vue.use(SimpleAnalytics, { skip: process.env.NODE_ENV !== "production" });
68 | ```
69 |
70 | Then on your `nuxt.config.js`, make sure to include the plugin with `ssr: false` as we only want to run it on the client:
71 |
72 | ```js
73 | // nuxt.config.js
74 |
75 | export default {
76 | plugins: [{ src: "~/plugins/simple-analytics.js", ssr: false }],
77 | };
78 | ```
79 |
80 | If you need any additional configuration options (as mentioned above), you need to apply them to your plugin.
81 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_vuepress.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics with VuePress
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-with-vuepress
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | Run this command to install Simple Analytics for [VuePress](https://vuepress.vuejs.org/):
10 |
11 | ```bash
12 | npm install vuepress-plugin-simple-analytics --save-dev
13 | ```
14 |
15 | ## Add the plugin
16 |
17 | Add the plugin to your plugins in `.vuepress/config.js`.
18 |
19 | ```js
20 | module.exports = {
21 | plugins: ["vuepress-plugin-simple-analytics"],
22 | };
23 | ```
24 |
25 | ## More features
26 |
27 | We have more features like a [custom domain](https://docs.simpleanalytics.com/bypass-ad-blockers) to bypass ad-blockers, [events](https://docs.simpleanalytics.com/events), and [allow the collect from DNT users](https://docs.simpleanalytics.com/dnt). Events are enabled by default.
28 |
29 | ```js
30 | module.exports = {
31 | plugins: [
32 | [
33 | "vuepress-plugin-simple-analytics",
34 | {
35 | customDomain: "data.example.com", // You custom domain
36 | eventsGlobal: "sa", // The global events object for sa("click_button")
37 | skipDnt: true, // When set to true you track the DNT users
38 | },
39 | ],
40 | ],
41 | };
42 | ```
43 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_wordpress-head-footer-code-plugin.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics in WordPress via Head & Footer Code Plugin
3 | hidden: true
4 | category: integrations
5 | permalink: /install-simple-analytics-in-wordpress-with-head-footer-code-plugin
6 | last_modified_at: 2023-09-27
7 | ---
8 |
9 | Sometimes you want to use more script features then our official WordPress plugin offers.
10 |
11 | You can easily embed Simple Analytics script into your WordPress website using the "Head & Footer Code" plugin. Follow the steps below to get started:
12 |
13 | ## Installing the Head & Footer Code Plugin
14 |
15 | 1. In your WordPress dashboard, navigate to the "Plugins" section.
16 | 2. Click on "Add New."
17 | 3. Search for "Head & Footer Code" in the plugin search bar.
18 | 4. Click "Install Now" next to the "Head & Footer Code" plugin.
19 | 5. After installation, activate the plugin by clicking "Activate."
20 |
21 | ## Adding the Simple Analytics Embed Script
22 |
23 | 1. In the WordPress dashboard, navigate to "Settings" and then "Head & Footer Code."
24 | 2. In the “Site-wide Head Code” section, paste the Simple Analytics embed script.
25 | - Example script that uses the [ignore pages](/ignore-pages) feature:
26 | ```html
27 |
32 | ```
33 | 3. Click "Save Settings" to apply the changes.
34 |
35 | ## Verify Installation
36 |
37 | To ensure the script has been properly added:
38 |
39 | 1. Visit your WordPress site and view the page source code (Right-click on the page and select "View Page Source").
40 | 2. Search for the Simple Analytics script in the head section to confirm that it has been added successfully.
41 |
42 | Congratulations! Now Simple Analytics will start collecting data from your WordPress website.
43 |
44 | ## Troubleshooting
45 |
46 | If the Simple Analytics script does not appear in the source code or if data is not being collected, ensure the plugin is activated and the script is correctly pasted in the “Site-wide Head Code” section. Also, check for any script blockers or browser extensions that may prevent the script from loading. [Use our debug guide](https://www.simpleanalytics.com/blog/debug-simple-analytics-script) to debug issue with your script installation.
47 |
48 | If you encounter any issues or need further assistance, feel free to reach out to us via [our support channels](https://simpleanalytics.com/contact).
49 |
--------------------------------------------------------------------------------
/_docs/31_integrations/00_wordpress-refined-practice.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: WordPress Plugin by Refined Practice
3 | category: integrations
4 | hidden: true
5 | permalink: /wordpress-plugin-by-refined-practice
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | [Refined Practice](https://www.refinedpractice.com/) has created a WordPress plugin with more features than [the official Simple Analytics plugin](/install-simple-analytics-on-wordpress). It shows you a chart widget when you have your stats set to public, has support for events, ...
10 |
11 | > The [source code is public](https://github.com/Refined-Practice/rp-simple-analytics) but the plugin is not official so use it at your own risk.
12 |
13 | > See the plugin in action by [creating a temporary Wordpress website on tastewp.com in one click](https://tastewp.com/new?pre-installed-plugin-slug=rp-simple-analytics&redirect=plugins.php&ni=true).
14 |
15 | This is how the dashboard looks:
16 |
17 | 
18 |
19 | This is how the settings page looks:
20 |
21 | 
22 |
23 | ## Install the Refined Practice plugin via WordPress dashboard
24 |
25 | 1. Go to your WordPress admin (likely on /wp-admin or [wordpress.com/log-in](https://wordpress.com/log-in))
26 | 1. Go to plugins in your WordPress admin and click on **Add new**:
27 |
28 | 
29 |
30 | 1. Click on Search Plugins and type `rp-simple-analytics`
31 | 1. Click on **Install Now**
32 | 1. After this click on **Activate** and our plugin is installed
33 |
--------------------------------------------------------------------------------
/_docs/31_integrations/05_wordpress.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on WordPress
3 | menu: WordPress
4 | category: integrations
5 | permalink: /install-simple-analytics-on-wordpress
6 | last_modified_at: 2024-10-25
7 | ---
8 |
9 | You can embed our script in WordPress using a plugin. On this page we will explain how to download this plugin and help you installing the Simple Analytics plugin on WordPress.
10 |
11 | We created a video showing how to install Simple Analytics on a WordPress website. [Here you go](https://www.youtube.com/watch?v=x_w0uiWlNwM)
12 |
13 | The WordPress plugin is ready to roll right from install—no setup needed. But for the adventurers out there:
14 |
15 |
16 | Explore and customize every setting to make it yours!
17 |
18 | | General | Ignore Rules |
19 | |:-------:|:------------:|
20 | |  |  |
21 |
22 | | Advanced | Events |
23 | |:--------:|:------:|
24 | |  |  |
25 |
26 |
27 |
28 | ## Install official plugin via WordPress dashboard
29 |
30 | 1. Go to your WordPress admin (likely on /wp-admin or [wordpress.com/log-in](https://wordpress.com/log-in))
31 | 1. Go to plugins in your WordPress admin and click on **Add new**:
32 |
33 | 
34 |
35 | 1. Click on Search Plugins and type `simpleanalytics` _(do not use a space)_
36 | 1. Click on **Install Now**
37 | 1. After this click on **Activate** and our plugin is installed
38 |
39 |
40 | Manual installation
41 |
42 |
43 | Follow these steps to add Simple Analytics to your WordPress website:
44 |
45 | 1. First download our plugin via WordPress: [wordpress.org/plugins/simpleanalytics](https://wordpress.org/plugins/simpleanalytics/)
46 | 1. Go to your WordPress admin (likely on /wp-admin or [wordpress.com/log-in](https://wordpress.com/log-in))
47 | 1. Next click on **Plugins** > **Add New** in the sidebar menu:
48 |
49 | 
50 |
51 | 1. Click on the **Upload Plugin** button:
52 |
53 | 
54 |
55 | 1. Click on **Browse** to select a file _(this button can have different text depending on your browser)_:
56 |
57 | 
58 |
59 | 1. Browse and select the file that you downloaded in the first step:
60 |
61 | 
62 |
63 | 1. Click on the button **Install Now**:
64 |
65 | 
66 |
67 | 1. Click on **Activate Plugin**:
68 |
69 | 
70 |
71 | 1. If the Simple Analytics plugin is successfully installed it shows a screen like this:
72 |
73 | 
74 |
75 |
76 |
77 |
78 | ## Others
79 |
80 | > See our plugin in action by [creating a temporary Wordpress website on tastewp.com in one click](https://tastewp.com/new?pre-installed-plugin-slug=simpleanalytics&redirect=plugins.php&ni=true). Do note that by default we don't collect from logged in admins, log out to see the requests to Simple Analytics.
81 |
82 |
83 | Non-official plugins
84 |
85 | There are two non-official plugins made by others:
86 | - [WordPress plugin by Refined Practice](/wordpress-plugin-by-refined-practice)
87 | - [WP Full Picture plugin](/wordpress-full-picture-plugin)
88 |
89 |
90 |
91 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
92 |
--------------------------------------------------------------------------------
/_docs/31_integrations/06_wordpress_wpfullpicture.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: WP Full Picture plugin
3 | category: integrations
4 | hidden: true
5 | permalink: /wordpress-full-picture-plugin
6 | last_modified_at: 2023-05-29
7 | ---
8 |
9 | [WP Full Picture](https://wordpress.org/plugins/full-picture-analytics-cookie-notice/) is a WordPress plugin with more features than [the official Simple Analytics plugin](/install-simple-analytics-on-wordpress).
10 |
11 | WP Full Picture lets you:
12 |
13 | * Load Simple Analytics only in specific countries. Simply enable geolocation module and choose countries that you want to use SA in
14 | * Do not track page views until pages are actually viewed (e.g. when they are opened in tabs). This works out-of-the-box with no extra setup.
15 | * Turn off tracking for specific user roles and users who are not logged in ([more information](https://wpfullpicture.com/support/documentation/how-to-exclude-users-from-tracking/))
16 | * See traffic from some Android applications ([requires extra setup](https://wpfullpicture.com/support/documentation/how-to-get-better-traffic-sources-information/))
17 | * Use custom domain for bypassing ad-blockers (after setting it up as [described here](https://docs.simpleanalytics.com/bypass-ad-blockers))
18 | * Join traffic data from multiple websites under one domain without the need to [modify the script](https://docs.simpleanalytics.com/overwrite-domain-name)
19 | * Run on localhost without having to modify the script
20 | * Track single-page websites (clicks on navigation links that scroll to different parts of the page will be counted as different page views)
21 |
22 | > See the plugin in action on a temporary Wordpress website on tastewp.com. Simply [click this link to generate a new test site](https://tastewp.com/new?pre-installed-plugin-slug=full-picture-analytics-cookie-notice&redirect=plugins.php&ni=true).
23 |
24 | This is how the settings page looks:
25 |
26 |
27 |
28 | ## How to install Simple Analytics with the WP Full Picture plugin
29 |
30 | 1. Go to your WordPress admin
31 | 1. Go to **Plugins** in your WordPress admin and click on **Add new**:
32 | 1. Click on **Search Plugins** and type `wp full picture`
33 | 1. Click on **Install Now**
34 |
35 | 
36 |
37 | 1. After this click on **Activate**
38 | 1. On WP Full Picture page click on **Choose modules**
39 | 1. Choose **Simple Analytics** and (optionally) **Geolocation** modules and save the changes
40 |
41 | 
42 |
43 | 1. This will install Simple Analytics on your website. If you want to change other settings mentioned above click on "Configure" in the Simple Analytics block.
44 |
--------------------------------------------------------------------------------
/_docs/31_integrations/10_webflow.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on Webflow
3 | menu: Webflow
4 | category: integrations
5 | permalink: /install-simple-analytics-on-webflow
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | You can embed our script in Webflow using their feature called "Custom code". On this page we will explain how to use this feature and help you installing the Simple Analytics script on Webflow.
10 |
11 | > You need a paid Webflow account or an active site plan for your project to add custom code.
12 |
13 | Follow these steps to add Simple Analytics to your website:
14 |
15 | 1. Go to your Project settings
16 | 1. Next click on **Custom code** in the tabs menu:
17 |
18 | 
19 |
20 | 1. Paste the embed code from [how to add our script](/script) into the **Footer Code** text input field:
21 |
22 | 
23 |
24 | 1. Click on **Save Changes** and you are done
25 |
26 | > Custom scripts will only appear on the published site.
27 |
28 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
29 |
--------------------------------------------------------------------------------
/_docs/31_integrations/15_squarespace.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on Squarespace
3 | menu: Squarespace
4 | category: integrations
5 | permalink: /install-simple-analytics-on-squarespace
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | You can embed our script in Squarespace using their feature called "Code Injection". On this page we will explain how to use this feature and help you installing the Simple Analytics script on Squarespace.
10 |
11 | > Code Injection is only available for Squarespace sites with a Business or Commerce plan
12 |
13 | Follow these steps to add Simple Analytics to your website:
14 |
15 | 1. Go to [your account on Squarespace](https://account.squarespace.com/).
16 | 1. Click on the website you want to edit.
17 | 1. Click on **Settings** in the sidebar menu:
18 |
19 | 
20 |
21 | 1. Next click on **Advanced** in the same sidebar menu:
22 |
23 | 
24 |
25 | 1. Next click on **Code Injection** in the same sidebar menu:
26 |
27 | 
28 |
29 | 1. Paste the embed code from [how to add our script](/script) into the **footer** text input field:
30 |
31 | 
32 |
33 | 1. Click on **save** and you are done:
34 |
35 | 
36 |
37 | Read more on using Code Injection in the [Squarespace docs](https://support.squarespace.com/hc/en-us/articles/205815908-Using-Code-Injection).
38 |
39 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
40 |
--------------------------------------------------------------------------------
/_docs/31_integrations/25_wix.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on WIX
3 | menu: WIX
4 | category: integrations
5 | permalink: /install-simple-analytics-on-wix
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | You can embed our script in WIX by adding a **New Tool**. On this page we will explain how to use this feature and help you installing the Simple Analytics script on WIX.
10 |
11 | Don't want to read a manual? We also created a video sharing how to install Simple Analytics on Wix. [Here you go](https://www.youtube.com/watch?v=95EZHMFMfKU)
12 |
13 | > It's only possible for WIX sites with a connected domain a.k.a. paid plan
14 |
15 | Follow these steps to add Simple Analytics to your website:
16 |
17 | 1. Go to [Settings in your site's dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Manage%20Settings&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https://www.wix.com/dashboard/{{metaSiteId}}/manage-website).
18 | 1. Click the **Tracking & Analytics** menu item under **Settings**.
19 |
20 | 
21 |
22 | 1. Click **+ New Tool** and select **Custom** from the dropdown.
23 |
24 | 
25 |
26 | 1. Enter your custom code you can copy from [how to add our script](/script).
27 | 1. Select the relevant domain. _Note: This option will appear only if you have multiple domains._
28 | 1. Enter a name for your custom code: **Simple Analytics Script**.
29 | 1. Add Code to Pages: **Choose All Pages** and **Load code once**.
30 | 1. Place Code in: **Body - start**.
31 | 1. Click **Apply**.
32 |
33 | Read more on the [WIX docs](https://support.wix.com/en/article/embedding-custom-code-to-your-site).
34 |
35 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
36 |
--------------------------------------------------------------------------------
/_docs/31_integrations/30_cloudflare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on Cloudflare
3 | menu: Cloudflare
4 | category: integrations
5 | permalink: /install-simple-analytics-on-cloudflare
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | You can embed our script in Cloudflare using [Cloudflare Apps](https://www.cloudflare.com/apps/simpleanalytics). On this page we will explain how to use this feature and help you installing the Simple Analytics app on Cloudflare.
10 |
11 | > This CloudFlare app does not install [the custom domain](/bypass-ad-blockers) for you. You need to add it yourself if you want to use it.
12 |
13 | Follow these steps to add Simple Analytics to your website:
14 |
15 | 1. Go to the Simple Analytics app on Cloudflare
16 | 1. Make sure you are logged in
17 | 1. Click on **Preview on your site**:
18 |
19 | 
20 |
21 | 1. You can customize some settings like [recording DNT users](/dnt), a [custom domain](/bypass-ad-blockers), [track events](/events), or enabling [hash navigation](/hash-mode). Once you're done click the button **Finish installing onto your site**:
22 |
23 | 
24 |
25 | 1. Next click on the domain where you want to add Simple Analytics on:
26 |
27 | 
28 |
29 | 1. Next click on **Install on all pages**:
30 |
31 | 
32 |
33 | 1. Next click on **Continue** (we don't use your email):
34 |
35 | 
36 |
37 | 1. On the next page you will see the Simple Analytics app installed:
38 |
39 | 
40 |
41 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
42 |
--------------------------------------------------------------------------------
/_docs/31_integrations/35_ghost.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics on Ghost
3 | menu: Ghost
4 | category: integrations
5 | permalink: /install-simple-analytics-on-ghost
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | You can embed our script in Ghost using their feature called "Code Injection". On this page we will explain how to use this feature and help you installing the Simple Analytics script on Ghost.
10 |
11 | > Ghost uses caching for its websites. Sometimes it can take a few minutes before the script is actually added.
12 |
13 | Follow these steps to add Simple Analytics to your website:
14 |
15 | 1. Go to your Ghost Admin settings
16 | 1. Next click on **Code Injection** in the sidebar menu:
17 |
18 | 
19 |
20 | 1. Paste the embed code from [how to add our script](/script) into the **Site Footer** text input field:
21 |
22 | 
23 |
24 | 1. Click on **Save** and you are done:
25 |
26 | 
27 |
28 | Read more on implementing Simple Analytics in the [Ghost docs](https://ghost.org/integrations/simple-analytics/).
29 |
30 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
31 |
--------------------------------------------------------------------------------
/_docs/31_integrations/40_google-tag-manager.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Install Simple Analytics via Google Tag Manager
3 | menu: Google Tag Manager
4 | category: integrations
5 | permalink: /install-simple-analytics-with-google-tag-manager
6 | last_modified_at: 2022-06-22
7 | ---
8 |
9 | You can embed our script via Google Tag Manager. We have an official Community Tag. Here is how to install this tag.
10 |
11 | Start at [the Google Tag Manager homepage](https://tagmanager.google.com) and follow the instructions:
12 |
13 | {%
14 | include video.html
15 | controls="true"
16 | slug="google-tag-manager-integration"
17 | formats="mov,mp4,ogg,webm,wmv"
18 | poster="poster.png"
19 | %}
20 |
21 | If you prefer text instructions, follow this guide:
22 |
23 | 1. Click "Add a new Tag"
24 | 1. Click "Choose a tag type to begin setup..."
25 | 1. Click the blue bar "Discover more tag types in the Community Template Gallery"
26 | 1. Search for "Simple Analytics"
27 | 1. Click "Add to workspace"
28 | 1. Click "Add" in the popup
29 | 1. Change some settings if needed
30 | - [Custom domain](/bypass-ad-blockers) ([see extra instructions below](#custom-domain))
31 | - [Collect DoNotTrack](/dnt)
32 | - [Events](/events)
33 | 1. Click "Choose a trigger to make this tag fire..."
34 | 1. Select "Initialization - All Pages"
35 | 1. Click "Save" to save the tag
36 |
37 | Now you added the Simple Analytics Tag with a trigger. Next, you can preview or submit the changes and your page views will be collected in Simple Analytics. Make sure to have a website set up in Simple Analytics to collect the data.
38 |
39 | ## Custom domain
40 |
41 | To set up our tag with a custom domain, you will need to add your custom domain to your permissions. In this video we explain how to do this:
42 |
43 | {%
44 | include video.html
45 | controls="true"
46 | slug="google-tag-manager-custom-domain"
47 | formats="mov,mp4,ogg,webm,wmv"
48 | poster="poster.png"
49 | %}
50 |
51 | If you encounter issues, don't hesitate to contact us via [our support channels](https://simpleanalytics.com/contact).
52 |
--------------------------------------------------------------------------------
/_docs/31_integrations/45_looker-studio.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Google Looker Studio connector
3 | menu: Google Looker Studio
4 | category: integrations
5 | permalink: /google-looker-studio
6 | redirect_from:
7 | - /google-data-studio
8 | last_modified_at: 2023-01-07
9 | ---
10 |
11 | > Google Data studio has been renamed to Google Looker Studio.
12 |
13 | Some customers use [Google Looker Studio](https://datastudio.google.com/) for building reports. Because we care about privacy, we don't store any personal data. That's why we are comfortable enough to let customers choose to connect with Looker Studio while Google can't abuse our customers' data or their visitors.
14 |
15 |
16 |
17 | This connector lets customers query data from the [API](/api) of [Simple Analytics](https://simpleanalytics.com/). It does need access to your Simple Analytics data. We need the Google scope "connect to an external service" for that.
18 |
19 | 1. Go to [https://datastudio.google.com/datasources/create?connectorId=AKf...eEg](https://datastudio.google.com/datasources/create?connectorId=AKfycbxtZ_DIGiEd-fEVo5j2rjiAUVMUvCUz26oiYSnGYzSzMnNiXTdZoE0L9lOWrKYOXTteEg)
20 | 1. Follow the steps in the video:
21 |
22 | {%
23 | include video.html
24 | controls="true"
25 | red="true"
26 | slug="connect-google-data-studio"
27 | formats="mp4,ogg,webm,wmv"
28 | %}
29 |
30 | When using this connector you are subjected to our [general terms and conditions](https://simpleanalytics.com/general-terms-and-conditions) and [privacy policy](https://simpleanalytics.com/privacy).
31 |
32 | The source code for the connector is hosted on [GitHub](https://github.com/simpleanalytics/google-data-studio/).
33 |
34 | ## Compare Simple Analytics data with Google Looker Studio
35 |
36 | Some customers reported that the data in Google Looker Studio wasn't equal with the data they saw in the Simple Analytics dashboard. Follow this guide on how to get the exact numbers in Google Looker Studio as in the Simple Analytics dashboard.
37 |
38 | To keep data consistent it's recommended to use the UTC timezone in all reports.
39 |
40 | Let's take one day from our dashboard, in our case 27th of April. It shows 1019 visitors:
41 |
42 |
43 |
44 | To set up your Google Looker Studio it would require these changes:
45 |
46 | 1. Set your Simple Analytics dashboard to UTC (at the bottom of the date picker).
47 | 2. Set data source time zone to UTC in Google Looker Studio.
48 | 3. Select "count" for aggregation on the "Unique" metric.
49 | 4. Select the same dates as your did in the Simple Analytics dashboard.
50 | 5. Create a filter on "Unique" is "True".
51 |
52 | It should show the same amount of visitors as in your Simple Analytics dashboard:
53 |
54 |
55 |
--------------------------------------------------------------------------------
/_docs/31_integrations/50_power_bi.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Microsoft Power BI
3 | menu: Power BI
4 | category: integrations
5 | permalink: /microsoft-power-bi
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | Some customers use [Microsoft Power BI](https://powerbi.microsoft.com/) for building reports. Because we care about privacy, we don't store any personal data. No personal data from your visitors will end up on the servers of Microsoft.
10 |
11 | This connector lets customers query data from the [API](/api/export-data-points) of [Simple Analytics](https://simpleanalytics.com/).
12 |
13 | 1. Before you start, you will need the export URL [from your Simple Analytics dashboard](https://simpleanalytics.com/select-website/export). Select the fields you want in the export and select "CSV":
14 |
15 | 
16 |
17 | 1. Copy the URL with a right mouse, click on the "Export" button and select "Copy link" (or something like that). Save this link for a later step.
18 |
19 | 1. Add a data connector in Power BI by selecting the web connector:
20 |
21 | 
22 |
23 | 1. After you hit "Connect" select the "Advanced" option
24 |
25 | 
26 |
27 | 1. In the URL parts, you can add the URL you copy the link you copied from the "Export" button.
28 |
29 | 1. You can decide to break the URL up into parts by adding, for example, the dates programmatically
30 |
31 | 1. Finally, you have to fill in two headers (get from [your account page](https://simpleanalytics.com/account#api)):
32 |
33 | - `User-Id`: `sa_user_id_00000000-0000-0000-0000-000000000000`
34 | - `Api-Key`: `sa_api_key_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
35 |
36 | 1. Hit "Ok" and on the next screen, click "Transform Data":
37 |
38 | 
39 |
40 | 1. You will have the Simple Analytics data in Microsoft Power BI. The possibilities are endless. That's why we stop the guide here for now.
41 |
42 | We are planning to extend this guide to include an entire automatic updating data store in Power BI.
43 |
44 | Let us know if you plan to implement that. Happy to help!
45 |
--------------------------------------------------------------------------------
/_docs/31_integrations/65_caniuse.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Use website data in Can I Use
3 | menu: Can I use...
4 | hidden: true
5 | category: integrations
6 | permalink: /use-website-data-in-caniuse
7 | last_modified_at: 2022-12-23
8 | ---
9 |
10 | If you ware a developer you know the website caniuse.com. Can I use provides up-to-date browser support tables for support of front-end web technologies on desktop and mobile web browsers. It's super useful when you develop features for your visitors.
11 |
12 | > We don't support the export format required by Can I Use anymore.
13 |
14 | Can I use shows percentages of support of features you can use in the browser. Let's say you develop a new feature and you want to know how many of your visitors support Flexbox. You would [search for Flexbox](https://caniuse.com/?search=Flexbox) and find out the percentage of visitors around the world who support Flexbox. But, this does not say much about **your** visitors.
15 |
16 | That's where the Simple Analytics integrations comes in. Want to try it?
17 |
18 | First you need to export your website data:
19 |
20 | 1. Replace `example.com` with your website name in this URL: `https://simpleanalytics.com/example.com.json?version=1`
21 | 2. Go to that URL
22 | 3. Save the output as a .json file, `caniuse.json` for example
23 | 4. Go to [caniuse.com/ciu/import](https://caniuse.com/ciu/import)
24 | 5. You will see this screen:
25 | 
26 | 1. Click "Simple Analytics"
27 | 1. Select the json file:
28 | 
29 | 1. Click "Import"
30 | 2. You will see a list of browser that are imported:
31 | 
32 | 1. When searching for features, you will see your own visitors support:
33 | 
34 |
--------------------------------------------------------------------------------
/_docs/33_explained/05_uniques.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Unique visits explained
3 | menu: Unique visits
4 | category: explained
5 | permalink: /explained/unique-visits
6 | redirect_from:
7 | - /uniques
8 | last_modified_at: 2022-04-14
9 | ---
10 |
11 | At Simple Analytics, we approach things differently. Our priority is to protect the privacy of your visitors while staying compliant with strict (and necessary) privacy laws. This means some of our statistics, like unique visits, work differently.
12 |
13 | We record page views because it’s easy to do without compromising privacy. Tracking unique visits, however, can be more invasive. Traditional analytics tools use cookies to identify unique visits, storing them on a visitor’s computer. This allows tracking over long periods, which is highly intrusive.
14 |
15 | Some privacy-focused tools improve this slightly by using hashes of a visitor’s IP address combined with a date. While better for privacy, it’s still not ideal. At Simple Analytics, we take it a step further.
16 |
17 | ## No cookies or fingerprinting
18 |
19 | > We **do not** use cookies (or any kind of storage), fingerprinting, or PII data.
20 |
21 | Under a European court ruling, pre-ticked cookie consent forms are no longer allowed under GDPR. In the UK, PECR (the privacy directive) already made this clear. Both laws also explicitly forbid visitor fingerprinting.
22 |
23 | Many analytics providers rely on fingerprinting techniques, like using IP addresses, to track users. Although this may appear privacy-friendly, it’s considered fingerprinting and requires consent.
24 |
25 | ## No consent needed
26 |
27 | > With Simple Analytics you don't need consent. It's one of our core values.
28 |
29 | We don’t think you should ever have to ask for consent. Our service is designed for companies that care about the big picture, not tracking individual customers. That’s why we developed our own unique way of tracking unique visits.
30 |
31 | ## How it works
32 |
33 | When a visitor moves from one website to another, their browser sends a [referrer](https://en.wikipedia.org/wiki/HTTP_referer). For example, if someone visits `randomwebsite.com` and then navigates to `yourwebsite.com`, the browser sends `randomwebsite.com` as the referrer to `yourwebsite.com`. This information helps identify where traffic is coming from, and we use it to determine if a visit is unique. When the referrer doesn't match your website, we count the first pageview as a new visitor.
34 |
35 | 
36 |
37 | A direct visit occurs when a user lands on your website by typing the URL into their browser or when the previous page does not send a referrer. In that case, we also count the first pageview as a visitor.
38 |
39 | 
40 |
41 | ## Some pages have pageviews but (almost) no visitors
42 |
43 | This happens when users navigate within your website. Once the first visitor is recorded, any additional pageviews during the session are counted as pageviews, not visitors. As a result, only pages with no referrer or a referrer from another website can be counted as visitors.
44 |
45 | ## SPAs
46 |
47 | If you have a single-page application we automatically see all visits after the first visit as a non unique visit. For the first visit we use above functionality to detect if a visit is unique.
48 |
49 | > If you have any questions about legal aspects or anything else, please [shoot us a message](https://simpleanalytics.com/contact).
50 |
51 | [Follow Simple Analytics](https://twitter.com/SimpleAnalytic) or [the founder](https://twitter.com/adriaandotcom) on Twitter to see how we approach our challenges.
52 |
--------------------------------------------------------------------------------
/_docs/33_explained/10_team-roles.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Team roles
3 | category: explained
4 | permalink: /explained/team-roles
5 | last_modified_at: 2024-07-04
6 | ---
7 |
8 | When you have the Teams plan, you can invite users to your Simple Analytics account. Every user has their own role. You can add those users to all your websites (and custom views), or a selection of them.
9 |
10 | ## Owner
11 |
12 | An owner is the first admin of a team, and every team has one owner. The owner has full control over all settings, users, and data. They have the same permissions as an admin. When they leave the team, they need to assign their owner role to another team member.
13 |
14 | ## Admin
15 |
16 | Admins can manage team members, adjust settings, and oversee daily operations. They have comprehensive access to all features and functionalities, ensuring smooth management of the team’s activities and resources.
17 |
18 | ## Analyst
19 |
20 | Analysts play a crucial role in working with the dashboards, goals, and events. They can add, change, and remove goals, update [custom views](/custom-views) (but not delete them), and modify some website settings related to dashboard viewing. They can add email reports (and only remove the ones they added). Analysts have the capability to import Google Analytics data, or export raw data if it is included in the plan, allowing for detailed analysis and reporting. However, they do not have permission to reset website data, ensuring data integrity.
21 |
22 | ## Developer
23 |
24 | Developers focus on the technical aspects of the analytics dashboard. They can do everything that an analyist can and more. They can add websites to the team, and modify website settings such as visibility (public/private), custom domain, and alerts for no traffic. Additionally, developers have the authority to reset website data, which can be useful during significant updates or troubleshooting.
25 |
26 | ## Finance Manager
27 |
28 | Finance Managers handle all financial aspects of the team. They can update billing information, manage subscriptions, and cancel them if necessary. This role is essential for maintaining the financial health of the team, ensuring that all financial transactions and subscriptions are up-to-date and properly managed. If you don't want the finance manager to see the analytics data, make sure to select "No websites" when you invite them, otherwise they will get read-only permissions to your selected websites.
29 |
30 | ## Viewer
31 |
32 | Viewers have restricted access with read-only permissions. They can view dashboards, goals, and events, but cannot edit anything. Viewers can only change their own account settings, allowing them to customize their user experience to some extent without affecting team data or configurations.
33 |
34 | ## General permissions
35 |
36 | All accounts have the ability to delete their own account, giving users control over their participation in the team.
37 |
--------------------------------------------------------------------------------
/_docs/33_explained/15_domain-privacy.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Domain privacy
3 | category: explained
4 | permalink: /explained/domain-privacy
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | We believe adding a website should be simple and stress-free:
9 |
10 | ## Painless process
11 |
12 | - Great onboarding flow:
13 | - Suggests plugins that match your site.
14 | - Shows each step in a clean, visual way.
15 | - Easy to share with your tech team.
16 | - No extra steps required:
17 | - You don’t need to create a website in the dashboard before adding the embed script.
18 | - Domain verification is unnecessary.
19 | - Forget about creating website IDs—just copy and paste the script!
20 |
21 | It’s as easy as it gets.
22 |
23 | ## Privacy
24 |
25 | Our embed script automatically detects the website name from the URL ([you can overwrite it](/overwrite-domain-name) if needed), so there’s no manual input required. If a customer decides to leave Simple Analytics, we take steps to ensure data security. We store a hash of any deleted website and check new additions against this list. If there’s a match, we’ll require domain verification.
26 |
27 | ## Transfer websites
28 | [Learn how to transfer websites](/transfer-websites) between Simple Analytics customers.
29 |
--------------------------------------------------------------------------------
/_docs/36_legal/00_introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Introduction to Legal
3 | menu: Introduction
4 | category: legal
5 | permalink: /introduction-to-legal
6 | last_modified_at: 2023-01-23
7 | ---
8 |
9 | ## Privacy
10 |
11 | At Simple Analytics, we believe in a free and user-friendly Internet. This is why we built a privacy-friendly analytics tool that provides valuable insights without collecting personal data from your visitors. This privacy-first mindset makes our software compliant with the strictest privacy regulations, including the GDPR.
12 |
13 | What do we do to protect your privacy and that of your visitors?
14 |
15 | 1. **We do not collect personal data. Ever.** This data probably won’t be of much interest to thieves.
16 | 2. **You are in control of your data, and you can download or delete it at any time.** We don’t own any of it.
17 | 3. **The drives storing your data are fully encrypted.** If anybody did manage to steal them, they’d be useless.
18 | 4. **We will never sell your data.** Because, once again, it’s yours!
19 |
20 | You can find more about our privacy measures [here](/privacy)
21 |
22 | ## Compliance
23 |
24 | **Simple Analytics is 100% GDPR compliant with data protection law from installation**. Because it only processes anonymous data, it can satisfy the requirements of the strictest privacy regulation, including the GDPR, the ePrivacy Directive, the UK GDPR, and the PECR.
25 |
26 | Simple Analytics **does not require pop-ups** such as consent banners or privacy notices, allowing for a seamless user experience on your website.
27 |
28 | Simple Analytics **does not need to transfer personal data** outside the EU to provide its service but can do so in order to provide non-EU customers with the data they need.
29 |
30 | Finally, **you do not need to sign a Data Processing Agreement** to use Simple Analytics since we don’t collect any personal data!
31 |
32 | You can find out more about our compliance [here](/compliance).
33 |
34 | ## Data collection
35 |
36 | **We do not collect any personal data**. We do not use cookies and never collect information that could be used to fingerprint a user. You do not need to tweak any settings to make our software privacy-friendly: **Simple Analytics is privacy-friendly by design**.
37 |
38 | Our minimal data collection still allows us to provide very valuable insights, including unique visitors, time on page, and the source of your traffic.
39 |
40 | You can find more information about the data we collect [here](/data-collection).
41 |
42 | ## Data Security & Ownership
43 |
44 | Your data are **fully encrypted** on our dedicated servers. We only rely on **European, GDPR-compliant providers** to ensure that your data are handled as safely as possible.
45 |
46 | We retain your data as long as your Simple Analytics account is active (and in correspondance to your subscription plan) and never share the data with third parties. **You control your data** and can export it at any time.
47 |
48 | You can find out more about our security and ownership policies [here](/data-security-and-ownership).
49 |
--------------------------------------------------------------------------------
/_docs/36_legal/01_privacy.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Privacy
3 | menu: Privacy
4 | category: legal
5 | permalink: /privacy
6 | last_modified_at: 2024-08-08
7 | ---
8 |
9 | At Simple Analytics, our mission is to make web analytics intuitive, ethical, and privacy-friendly. We empower organizations of all sizes with straightforward and actionable insights into their website traffic while easing compliance burdens and helping build trust with customers and visitors.
10 |
11 | Privacy is not an afterthought; it is **the cornerstone of what we do**. Here are the steps we take to ensure data is treated ethically and in compliance with privacy legislation.
12 |
13 | ## Our No-tracking Philosophy
14 |
15 | **Data minimization** is the core philosophy of Simple Analytics. **We do not collect personal data** from the end user of your app and website- not a single bit.
16 |
17 | We only collect non-personal data such as UTM codes, referrer, time zone (as a privacy-preserving proxy for country), and anonymized user agent values. These data points cannot be combined to track individual users or infringe on user privacy. We only use this data to provide aggregate metrics and nothing else. We drop IP addresses, do not store cookies, and do not collect or generate device identifiers.
18 |
19 | Bottom line: we do not track people, period.
20 |
21 | Read more on **what we collect** [here](/data-collection)
22 |
23 | ## No Consent Requirement
24 |
25 | By not collecting personal data, we allow customers to use Simple Analytics **without needing consent** from end users or website visitors. This builds trust with users, provides a frictionless experience without annoying pop-ups, and avoids the significant data loss caused by cookie rejection and ad blockers. Some clients even use Simple Analytics alongside traditional cookie-based solutions to mitigate data loss from opt-outs.
26 |
27 | ## No Data Transfers
28 |
29 | We don’t transfer your visitors’ data outside of the EU. Our customers can move their Simple Analytics data anywhere in the world without the compliance burdens associated with data transfers.
30 |
31 | Ever since we started our business in 2018, we have only relied on European service providers. This is a choice. The data we collect is not personal and does not fall under the GDPR. It can be transferred anywhere with no legal issues and can be lawfully sent to our customers located outside the EU, including non-Privacy Shield-certified US customers.
32 |
33 | Are you coming from Google Analytics? Please read our blog post on [the differences between Google Analytics and Simple Analytics](https://www.simpleanalytics.com/blog/why-simple-analytics-is-a-great-alternative-to-google-analytics). You can import your Google Analytics data into Simple Analytics.
34 |
35 |
--------------------------------------------------------------------------------
/_docs/40_affiliate-program/01_how-it-works.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How our affiliate program works
3 | menu: How it works
4 | category: affiliate program
5 | permalink: /affiliate
6 | last_modified_at: 2022-04-14
7 | redirect_from:
8 | - /referral-program/terms-of-service
9 | ---
10 |
11 | We depend on our customers and your word-of-mouth. To give something back in return, we give you 50% of the first year's revenue. The new customer gets one month of extra trial. You can create a affiliate link on [your affiliate page](https://simpleanalytics.com/account/referrals) that you can share with others.
12 |
13 | ## How it works for the affiliate partner
14 |
15 | You can request a payout when you have a balance of at least €50, $50, or £50. If you have a Simple Analytics subscription, we will use your balance to pay this subscription first. When scheduled, your payout will be transferred to your bank (via IBAN) or PayPal account after the new customer has paid their invoice. We prepare payouts every first Monday of the month.
16 |
17 |
18 |
19 | To sum it up
20 |
21 | - New customer gets one month (one month extra free trial)
22 | - You get 50% of revenue for the first year (of the new customer)
23 | - Your balance will increase with every invoice the customer pays
24 | - After paying your subscription, we will pay out the balance (from 50+) on request
25 |
26 | A few examples
27 |
28 | - New customer signs up for the business plan (for $588 a year).\
29 | After they did pay their first invoice, **you get $294** ($588 / 2).
30 | - New customer signs up for the starter plan (for $19 a month).\
31 | After they did pay their first invoice, **you get $9.50**. Then after they pay their subsequent 11 invoices, **you get $9.50**.
32 | - New customer signs up for the starter plan (for $19 a month).\
33 | They cancel their plan within one month + 7 days. **You get nothing.**
34 | - New customer signs up for the starter plan (for $19 a month).\
35 | They fail to pay us. **You get nothing.**
36 |
37 | > Go to [your affiliate page](https://simpleanalytics.com/account/referrals) to create your affiliate link.
38 |
39 | ## How it works for new customers
40 |
41 | When you, as a potential customer, click the affiliate link, you will see a banner like this:
42 |
43 |
44 |
45 | When you click the **"Accept affiliate deal"** button, we will set a cookie with the affiliate code so we can apply the discount at checkout.
46 |
47 | As a new customer, you will get **one month extra for free**, so that the trial period will be 45 days (instead of 14 days). You can always cancel during this period (or after), but we do not provide refunds.
48 |
49 | **Note:** We are privacy-focused, so the promoter will not receive any indication of who you are (i.e., you will be anonymous).
50 |
51 | > Read our [affiliate program terms of service](/affiliate/terms) to get familiar with our rules.
52 |
--------------------------------------------------------------------------------
/_docs/40_affiliate-program/03_terms-of-service.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Terms of service of our referral program
3 | menu: Terms of service
4 | category: affiliate program
5 | permalink: /affiliate/terms
6 | last_modified_at: 2022-04-14
7 | redirect_from:
8 | - /referral-program/terms-of-service
9 | ---
10 |
11 | We have a few rules that apply to our affiliate program. We love our customers sharing our product and we believe it should only done by our customers. They know the product so a recommendation from them has way more value than from anybody else.
12 |
13 | > Read our [General Terms and Conditions here](https://simpleanalytics.com/general-terms-and-conditions).
14 |
15 | ## Rules for promoters
16 |
17 | Promoters are the customers of Simple Analytics who refer our product to others.
18 |
19 | 1. Only customers of Simple Analytics are allowed to our affiliate program
20 | 1. You are allowed to place the affiliate link on your blog, websites, and social media
21 | 1. You are not allowed to place the affiliate link on discount websites
22 | 1. You are not allowed to place the affiliate link in ads or other paid locations
23 | 1. You are not allowed to share the link of somebody else
24 | 1. We strive to pay your reward within one month of the payment we received from the referred customer
25 | 1. Simple Analytics can always cancel or change this program any time
26 |
27 | ## Rules for new customers
28 |
29 | New customers are the people that came to Simple Analytics via a affiliate link.
30 |
31 | 1. You can only use a affiliate link once
32 | 1. You can not combine multiple affiliate links
33 | 1. You can not use your own affiliate link **(important!)**
34 | 1. You can have a maximum of one month of extra trial
35 | 1. You are not allowed to share this link with others, generate your own
36 | 1. Simple Analytics can always cancel or change this program any time
37 |
--------------------------------------------------------------------------------
/_docs/50_api/10_authenticate.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: API Authenticate
3 | menu: Authenticate
4 | category: api
5 | permalink: /api/authenticate
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | For some API features you'll need to authenticate. You can do this with an `Api-Key`-header where the key starts with `sa_api_key_...`.
10 |
11 | In your [account settings](https://simpleanalytics.com/account) you can create this key.
12 |
13 | To test if your API key works correctly you can replace the example values of this cURL example with your own:
14 |
15 | ```bash
16 | curl "https://simpleanalytics.com/example.com.json?version={{ site.api_version }}&fields=histogram" \
17 | -H 'Content-Type: application/json' \
18 | -H 'Api-Key: sa_api_key_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
19 | ```
20 |
21 | For some API calls you'll need a user ID:
22 |
23 | ```bash
24 | curl "https://simpleanalytics.com/api/websites" \
25 | -H 'Content-Type: application/json' \
26 | -H 'Api-Key: sa_api_key_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
27 | -H 'User-Id: sa_user_id_00000000-0000-0000-0000-000000000000'
28 | ```
29 |
30 | Your user ID is shown in [your account settings](https://simpleanalytics.com/account).
31 |
32 | If you have any problems, drop us a line via [our contact page](https://simpleanalytics.com/contact).
33 |
--------------------------------------------------------------------------------
/_docs/50_api/35_admin.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Admin API
3 | category: api
4 | permalink: /api/admin
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | Use this if you want to administer your account. With this API you can do a few things, for example, list all websites and add websites to your dashboard.
9 |
10 | ## List websites
11 |
12 | > `GET` [https://simpleanalytics.com/api/websites](https://simpleanalytics.com/api/websites)
13 |
14 | The only Admin API endpoint that is available for all plans.
15 |
16 | ```bash
17 | curl "https://simpleanalytics.com/api/websites" \
18 | -H 'Content-Type: application/json' \
19 | -H 'Api-Key: sa_api_key_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
20 | -H 'User-Id: sa_user_id_00000000-0000-0000-0000-000000000000'
21 | ```
22 |
23 | Your user ID and API key are shown in [your account settings](https://simpleanalytics.com/account). The team ID does not have any effect on this endpoint. It always returns all websites for a user.
24 |
25 | ## Add a website
26 |
27 | > `POST` [https://simpleanalytics.com/api/websites/add](https://simpleanalytics.com/api/websites/add)
28 |
29 |
30 | For this endpoint you need a Business or Enterprise plan. You will be upgraded automatically when using this endpoint.
31 |
32 |
33 | You can specify a time zone via `timezone` and set the website to public or private via the `public` boolean. [See wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of valid time zones. If you don't specify a time zone we will set it to UTC.
34 |
35 | ```bash
36 | curl -X "POST" "http://localhost:3000/api/websites/add" \
37 | -H 'Content-Type: application/json' \
38 | -H 'Api-Key: sa_api_key_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
39 | -H 'User-Id: sa_user_id_00000000-0000-0000-0000-000000000000' \
40 | -d $'{
41 | "public": false,
42 | "hostname": "example.com",
43 | "timezone": "Europe/Amsterdam"
44 | }'
45 | ```
46 |
47 | ### Labels
48 |
49 | If you want to keep track of your websites in a different way. A label could help. This is how that looks at the websites overview page:
50 |
51 |
52 |
53 | Add `"label": "customer note"` to your request body to set a label. Only strings are allowed.
54 |
55 | ## Custom endpoints
56 |
57 | For bigger customers we make custom endpoints. If you are in the need of a custom endpoint, [let us know](https://simpleanalytics.com/contact).
58 |
--------------------------------------------------------------------------------
/_docs/50_api/40_cors-jsonp.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: CORS and JSONP
3 | category: api
4 | hidden: true
5 | permalink: /api/cors-jsonp
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | We have support for JSONP and CORS. Here are two examples with jQuery:
10 |
11 | ```js
12 | $.ajax({
13 | url: "https://simpleanalytics.com/simpleanalytics.com.json?callback=?",
14 | dataType: "jsonp",
15 | success: function (data) {
16 | console.log(data);
17 | },
18 | });
19 |
20 | $.ajax({
21 | url: "https://simpleanalytics.com/simpleanalytics.com.json",
22 | success: function (data) {
23 | console.log(data);
24 | },
25 | });
26 | ```
27 |
28 | We append the `Access-Control-Allow-Origin`-header with the `*`-value , so any modern browser should accept the request without any effort.
29 |
--------------------------------------------------------------------------------
/_docs/50_api/50_helpers.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: API helpers
3 | menu: Helpers
4 | category: api
5 | permalink: /api/helpers
6 | last_modified_at: 2022-04-14
7 | ---
8 |
9 | We added a few helpers to make it easier to work with our API.
10 |
11 | ## Time zones
12 |
13 | In all requests you can specify your time zone. In the Stats API we default to your website setting, in the Export APIs we default to UTC. Speficy your time zone to always get the same results.
14 |
15 | A list of valid time zones can be found at the Wikipedia page ["List of tz database time zones"](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). For example, `Europe/Amsterdam` is a valid time zone. You should specify the time zone like this in your requests: `timezone=UTC`.
16 |
17 | ## Date placeholders
18 |
19 | When working with time series data you need to specify a time period. You specify those in our APIs with `start`, and `end`, and `timezone` query parameters. Usually you would use a dates in the format of `YYYY-MM-DD`: `&start={{ "now" | date: '%s' | minus: 2592000 | date: '%Y-%m-%d' }}&end={{ "now" | date: '%Y-%m-%d' }}&timezone=UTC`.
20 |
21 | To specify the date as today, use `today`. You can also use `yesterday` or `today-1d` to specify yesterday. To get the data from the last 30 days, use `&start=today-30d&end=yesterday` in your API requests. To get data for only today, use `&start=today&end=today`.
22 |
23 | ```
24 | https://simpleanalytics.com/simpleanalytics.com.json?version={{ site.api_version }}&fields=histogram&start=yesterday&end=today&timezone=UTC
25 | ```
26 |
27 | ## Generate export URL
28 |
29 | We created a simple interface where you can generate the export URL for events (and page views).
30 |
31 | {%
32 | include video.html
33 | slug="get-event-api-url"
34 | formats="mp4,ogg,webm,wmv,mov"
35 | poster="video.png"
36 | %}
37 |
38 | If you need any help(er), [just shoot us a message](https://simpleanalytics.com/contact).
39 |
--------------------------------------------------------------------------------
/_docs/55_events/00_collect-events-on-ios.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Collect events on iOS with Swift
3 | category: events
4 | permalink: /events/ios
5 | hidden: true
6 | last_modified_at: 2022-05-17
7 | ---
8 |
9 | This is a draft of how to track events with iOS. If you know how to improve it, please let us know.
10 |
11 | > This is deprecated and only left for historical purposes.
12 |
13 | ```swift
14 | import Foundation
15 |
16 | @objc
17 | class Analytics: NSObject {
18 |
19 | private struct EventData: Encodable {
20 | let v: Int = 1
21 | let ua: String = "ios"
22 | let platform: String = "ios"
23 | let hostname: String = "your.hostname.com"
24 | let date: Date = Date()
25 | let events: [String]
26 | }
27 |
28 | private static let encoder: JSONEncoder = {
29 | let encoder = JSONEncoder()
30 | encoder.keyEncodingStrategy = .convertToSnakeCase
31 | encoder.dateEncodingStrategy = .formatted(dateFormatter)
32 | return encoder
33 | }()
34 |
35 | private static let dateFormatter: DateFormatter = {
36 | let formatter = DateFormatter()
37 | formatter.dateFormat = "yyyy-MM-dd"
38 | return formatter
39 | }()
40 |
41 | @objc
42 | static func log(eventName: String) {
43 | Analytics.log(eventNames: [eventName])
44 | }
45 |
46 | @objc
47 | static func log(eventNames: [String]) {
48 | let eventData = EventData(events: eventNames)
49 |
50 | guard let jsonData = try? encoder.encode(eventData) else {
51 | print("Error while logging event: unable to convert event to JSON")
52 | return
53 | }
54 |
55 | let url = URL(string: "https://api.simpleanalytics.io/events")!
56 | var request = URLRequest(url: url)
57 | request.httpMethod = "POST"
58 | request.httpBody = jsonData
59 | request.addValue("application/json", forHTTPHeaderField: "Content-Type")
60 | request.addValue("application/json", forHTTPHeaderField: "Accept")
61 |
62 | let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
63 | if let error = error {
64 | print("Error while logging event: \(error)")
65 | }
66 | }
67 | task.resume()
68 | }
69 |
70 | }
71 | ```
72 |
73 | Make sure to include a user agent in the headers of the request. This is not included in the example above.
74 |
75 | Thanks to Rutger Bresjer from [Woost Technologies](https://woost.tech/) for providing above code example.
76 |
--------------------------------------------------------------------------------
/_docs/55_events/00_inline-events.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Inline events helper
3 | category: inline-events
4 | permalink: /events/inline
5 | hidden: true
6 | last_modified_at: 2025-04-22
7 | ---
8 |
9 | This small script watches your page for any element with a `data-simple-event`-attribute and automatically sends events to Simple Analytics when the user interacts. You don’t need to write any extra JavaScript calls—just add the right attributes to your HTML.
10 |
11 |
12 | Warning, this script is in beta and can change any time.
13 |
14 |
15 | ### Installation
16 |
17 | Include the tracker snippet somewhere on your page, just before the closing `` tag.
18 |
19 | ```html
20 |
21 |
22 | ```
23 |
24 | ### Tracking button clicks
25 |
26 | To track a click, add `data-simple-event="event_name"` to any clickable element. The script prevents the default action, sends your event, then continues with the click (including opening links).
27 |
28 | ```html
29 | See pricing
30 | ```
31 |
32 | Tracking form submissions
33 |
34 | Simply put `data-simple-event="form_name"` on your form tag. When the user submits, the script send an event with the name of the form and the text of the submit button, then submits the form.
35 |
36 | ```html
37 |
42 | ```
43 |
44 | ### Adding custom metadata
45 |
46 | Any attribute starting with `data-simple-event-` will be included as event metadata. Dashes convert to underscores.
47 |
48 | ```html
49 |
54 | Choose Enterprise
55 |
56 | ```
57 |
58 | ### Manual event tracking
59 |
60 | You can also fire events from code using `sa_event("event_name", { key: value })`. This works before or after the auto‑binding. For this you don't need this extra script.
61 |
62 | ```js
63 | // custom event on newsletter popup
64 | sa_event("newsletter_signup", { source: "modal" })
65 | ```
66 |
67 | ### 404 detection
68 |
69 | On DOMContentLoaded the script checks for "404" in your page HTML. If it finds it and the server HEAD request confirms status 404, it will send a page_404 event with the URL and status code.
70 |
--------------------------------------------------------------------------------
/_docs/55_events/00_send-events-in-ruby.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Collect events with Ruby
3 | category: events
4 | permalink: /events/ruby
5 | hidden: true
6 | last_modified_at: 2022-05-17
7 | ---
8 |
9 | This is a draft of how to collect events with [Ruby](https://www.ruby-lang.org/en/). If you know how to improve it, please let us know.
10 |
11 | > This is deprecated and only left for historical purposes.
12 |
13 | Save below code as `simple_analytics_event.rb`:
14 |
15 | ```ruby
16 | # simple_analytics_event.rb
17 |
18 | require 'net/http'
19 | require 'json'
20 | require 'date'
21 |
22 | class SimpleAnalyticsEvent
23 | def self.trigger(event_name)
24 | new.trigger(event_name)
25 | end
26 |
27 | # EventData makes sure the data is corrent when sending to
28 | # API endpoint
29 | class EventData
30 | attr_reader: version,: ua,: platform,: hostname,: date,: events
31 |
32 | def initialize(events, user_agent = nil, platform = nil)
33 | @version = 1
34 | @ua = user_agent
35 | @platform = platform
36 |
37 | # use your own hostname here
38 | @hostname = "your.own.hostname.here"
39 |
40 | @date = Date.today
41 | @events = events
42 | end
43 |
44 | def to_h {
45 | version: version,
46 | ua: ua,
47 | platform: platform,
48 | hostname: hostname,
49 | date: date.strftime("%Y-%m-%d"),
50 | events: events
51 | }
52 | end
53 | end
54 | attr_reader: api_endpoint
55 |
56 | def initialize
57 | @api_endpoint = "https://api.simpleanalytics.io/events"
58 | end
59 |
60 | def request_headers {
61 | 'Content-Type' => 'application/json',
62 | 'Accept' => 'application/json'
63 | }
64 | end
65 |
66 | def post(data)
67 | uri = URI(api_endpoint)
68 | http = Net::HTTP.new(uri.host, uri.port)
69 | http.use_ssl = true
70 | request = Net::HTTP::Post.new(uri.path, request_headers)
71 | request.body = data.to_json
72 |
73 | begin
74 | response = http.request(request)
75 | puts "debug: #{response.body}"
76 | true
77 | rescue StandardError => e
78 | # net / http has notoriously hard exception handling,
79 | # read more: https: //stackoverflow.com/a/11802674
80 | puts e.inspect
81 | false
82 | end
83 | end
84 |
85 | def trigger(event, params = {})
86 | data = EventData.new([event])
87 | post(data.to_h)
88 | end
89 | end
90 | ```
91 |
92 | To test run this in your console:
93 |
94 | ```ruby
95 | % irb
96 | irb(main):001:0' require './simple_analytics_event'
97 | => true
98 | irb(main):002:0> SimpleAnalyticsEvent.trigger('example_event')
99 | debug: {"success":true,"duration_ms":1,"message":"Thank you","location":"Amsterdam"}
100 | => true
101 | ```
102 |
103 | Make sure to include a user agent in the code because the request will fail otherwise.
104 |
105 | Thanks to [Tuomas Jomppanen](https://www.tuomas.io/) for providing this example.
106 |
--------------------------------------------------------------------------------
/_docs/55_events/02_explorer.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Events Explorer
3 | category: events
4 | permalink: /events-explorer
5 | created_at: 2023-01-20
6 | last_modified_at: 2023-01-20
7 | ---
8 |
9 | The Events Explorer is a great way to get a quick overview of all events in Simple Analytics. It allows you to export data very quickly and only get the data you need. You can add columns and if a column has different values, it will group by those values. See [add columns](#add-columns).
10 |
11 |
12 | Overview of the Events Explorer in Simple Analytics
13 |
14 | ## Search
15 |
16 | You can search (or filter) all events by typing your search query. The fun part, it also includes the other column values when you search.
17 |
18 |
19 | How to search in the Events Explorer of Simple Analytics
20 |
21 | ## Add columns
22 |
23 | You can add as many columns as you want. Do note that if a column has a lot of different values it will result in many rows. That's why we disabled the date and some integer fields.
24 |
25 |
26 | How to add a column with the Events Explorer in Simple Analytics
27 |
28 | In our case we search for the `buy` event and added the `plan` metadata field. Now it shows us both values (starter, and business).
29 |
30 |
31 | Use metadata in the Events Explorer of Goals at Simple Analytics
32 |
33 | ## Export
34 |
35 | You can easily export the data that you currently see to formats you probably love. Microsoft Excel, CSV, and Apple Numbers.
36 |
37 |
38 | How to export to Excel with the Events Explorer in Simple Analytics
39 |
--------------------------------------------------------------------------------
/_docs/55_events/05_automated-events.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Automated events
3 | category: events
4 | permalink: /automated-events
5 | redirect_from:
6 | - /capture-outbound-links
7 | last_modified_at: 2022-04-14
8 | ---
9 |
10 | [Normal events](/events) need to be added into your code. To make it easier we created a separate automated events script. This script has to be installed once, and it will track outbound links, email addresses clicks, and amount of downloads for common files (pdf, csv, docx, xlsx). Events will appear on [your events page](https://simpleanalytics.com/select-website/events).
11 |
12 | We created a simple video showing how to collect automated events in Simple Analytics. [Here you go](https://www.youtube.com/watch?v=CCvdgTReqms)
13 |
14 | ## Outbound
15 |
16 | Outbound links are basically just links that go to a different website. For example you have a website with a few products listed on them. People pay you for listing those products on your website. Now you want to find a way to track the amount of visitors that go to that website. For this you'll need outbound events!
17 |
18 | ## Emails
19 |
20 | Do you have links to email addresses on your website? Then it could make sense to see how many clicks you get on your `mailto` links.
21 |
22 | ## Downloads
23 |
24 | Do you have links to pdf's or other files? Collect the amount of downloads. You can specify the extensions of the files your want to collect downloads for.
25 |
26 | ## Script
27 |
28 | > This script is additional to the normal embed script. Make sure to also include [that script](/script).
29 |
30 | If you are a developer or you know your way around HTML it's easy to embed this script on your website. If you need help with that, we are happy to help. Just [contact us](https://simpleanalytics.com/contact).
31 |
32 |
33 | ```html
34 |
35 |
36 | ```
37 |
38 | Or if you want to change some settings (these are the defaults):
39 |
40 |
41 | ```html
42 |
43 |
50 | ```
51 |
52 | It takes care of sending it as an event to Simple Analytics. Events can only be letters, numbers, and underscores. We convert the event names directly in this script.
53 |
54 | ## Demo of the script
55 |
56 | To see a live demo of the script implementation, go to [autoevents.simpleanalytics.com](https://autoevents.simpleanalytics.com/). It shows an example of the automated events script with a few links you can click.
57 |
58 | We love to improve our automated events. Please let us know if you need any help! We don't mind getting our hands dirty.
59 |
60 | ## Open-source
61 |
62 | The automated events script is open-source. Feel free to take a look at it [on GitHub](https://github.com/simpleanalytics/scripts/blob/main/src/auto-events.js).
63 |
--------------------------------------------------------------------------------
/_docs/55_events/20-sa-link-event.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Collect events for link clicks
3 | category: events
4 | permalink: /events/custom-link-clicks
5 | menu: Custom link clicks
6 | last_modified_at: 2022-07-18
7 | ---
8 |
9 | The [automated events script](/automated-events) does collect events for outbound links. It does not require any coding, just adding a script. You probably want to use [that script](/automated-events).
10 |
11 | If you want to collect events for other links or control a bit more on how it works, you can use the code below. Let's say you have a HTML page with this content:
12 |
13 | ```html
14 | This is a link .
15 | ```
16 |
17 | Then you can use this code to add a `data-sa-link-event`-helper that will collect an event for link clicks:
18 |
19 | ```html
20 |
55 | ```
56 |
57 | After your installed the helper, somewhere on the page, you can change your HTML like this:
58 |
59 | ```html
60 | This is a link .
61 | ```
62 |
63 | It will then collect an events called "link_name_text" every time a visitor clicks on that link.
64 |
--------------------------------------------------------------------------------
/_docs/55_events/50_server-side.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Server-side
3 | category: events
4 | permalink: /events/server-side
5 | last_modified_at: 2023-11-15
6 | ---
7 |
8 | Server-side and mobile app data submissions are supported, allowing for the transmission of standard data points along with [metadata](/metadata). Access and analyze this data through the [Events Explorer](/events-explorer) or create [goals](/goals) for frequent event monitoring.
9 |
10 | We created a video explaining how server side tracking works with Simple Analytics. [Here you go](https://www.youtube.com/watch?v=0W8typnKPSs)
11 |
12 | ## Data submission
13 |
14 | Developers can submit data to `https://queue.simpleanalyticscdn.com/events` using JSON format.
15 |
16 | ### User agent guidelines
17 |
18 | To prevent misidentification as a robot, avoid using default user agents from request libraries. These often contain terms like `bot`, `crawl`, `python-requests/...`, `curl/...`, `node-fetch/...`, or `axios/...`. Instead, use the real user agent of the user, or use a custom user agent format, such as `ServerSide/1.0 (+https://www.yourwebsite.com/)`.
19 |
20 | ### Event data structure
21 |
22 | For event tracking, structure your payload as follows:
23 |
24 | ```json
25 | {
26 | "type": "event",
27 | "hostname": "example.com",
28 | "event": "event-name",
29 | "ua": "User Agent"
30 | }
31 | ```
32 |
33 | ### Page view data structure
34 |
35 | Page view data uses the same endpoint, structured like this:
36 |
37 | ```json
38 | {
39 | "type": "pageview",
40 | "hostname": "example.com",
41 | "event": "pageview",
42 | "path": "/page-name",
43 | "ua": "User Agent"
44 | }
45 | ```
46 |
47 | ## Testing with cURL
48 |
49 | To send test data, use the following cURL command:
50 |
51 | Data should appear on your dashboard within minutes. You can always [export the raw latest data](/export-data) from our dashboard, or use the [Events Explorer](/events-explorer) to find your events.
52 |
53 | ### Testing events
54 |
55 | ```bash
56 | curl -X POST -H "Content-Type: application/json" -d '{
57 | "type": "event",
58 | "hostname": "mobile-app.example.com",
59 | "event": "consent",
60 | "metadata": {
61 | "button": "yes"
62 | },
63 | "ua": "Your User Agent"
64 | }' https://queue.simpleanalyticscdn.com/events
65 | ```
66 |
67 | ### Testing page views
68 |
69 | ```bash
70 | curl -X POST -H "Content-Type: application/json" -d '{
71 | "type": "pageview",
72 | "hostname": "mobile-app.example.com",
73 | "event": "pageview",
74 | "path": "/my-page-name",
75 | "ua": "Your User Agent"
76 | }' https://queue.simpleanalyticscdn.com/events
77 | ```
78 |
79 | ## Additional data fields
80 |
81 | Expand your data submission with additional fields:
82 |
83 | ```json
84 | {
85 | "type": "event",
86 | "hostname": "example.com",
87 | "event": "event-name",
88 | "path": "/",
89 | "unique": true,
90 | "https": true,
91 | "ua": "User Agent",
92 | "referrer": "https://www.anotherexample.com/page-1",
93 |
94 | "viewport_width": 1440,
95 | "viewport_height": 310,
96 | "screen_width": 1440,
97 | "screen_height": 900,
98 |
99 | "language": "en-US",
100 | "timezone": "Europe/Amsterdam",
101 |
102 | "source": "source",
103 | "campaign": "campaign",
104 | "medium": "medium",
105 | "content": "content",
106 |
107 | "metadata": {
108 | "button": "yes"
109 | }
110 | }
111 | ```
112 |
--------------------------------------------------------------------------------
/_docs/60_account/10_change-plan.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Change my plan
3 | category: account
4 | permalink: /change-plan
5 | last_modified_at: 2022-04-14
6 | sitemap: false
7 | ---
8 |
9 | To change a plan you can contact us at {{ site.email }} . We will do this manually for you.
10 |
--------------------------------------------------------------------------------
/_docs/60_account/20_passwords.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Passwords
3 | category: account
4 | permalink: /passwords
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | You can always login with just your email. Some users like to login with a password. This can be faster than with email only.
9 |
10 | > We know you can share your passwords with colleagues, but it's not allowed with the Starter plan. Only with the Business plan.
11 |
12 | Here are the steps you need to take to reset or set your password:
13 |
14 | 1. Make sure to be logged in (you can always use [email login](https://simpleanalytics.com/login)).
15 |
16 | 1. Go to [your account settings](https://simpleanalytics.com/account).
17 |
18 | 1. In account settings you see a link (when you didn't setup a password yet) to setup a password. Click this link:
19 |
20 | 
21 |
22 | 1. Fill in a password (a) and click on the "Update password" button (b).
23 |
24 | Make sure the **password is long**, we don't enforce this, but length is the most important security of a password.
25 |
26 | 
27 |
28 | 1. Once saved you see the confirmation message saying "Password is successfully updated"
29 |
30 | 
31 |
--------------------------------------------------------------------------------
/_docs/60_account/25_transfer-websites.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Transfer websites
3 | category: account
4 | permalink: /transfer-websites
5 | last_modified_at: 2025-06-24
6 | ---
7 |
8 | To transfer a website to another Simple Analytics customer, follow these steps:
9 |
10 | 1. Navigate to [dashboard.simpleanalytics.com/websites/transfer](https://dashboard.simpleanalytics.com/websites/transfer).
11 | 
12 | 2. Enter the email address of the recipient (a Simple Analytics customer) to whom you want to transfer the websites.
13 | 3. Select Websites:
14 | Choose the websites you wish to transfer.
15 |
16 | The recipient will receive an email asking them to accept or decline the transfer. Once they accept, you will receive a confirmation email.
17 |
18 | ### Custom views
19 |
20 | If you have set up [custom views](/custom-views), you might need to include additional websites. You can only transfer websites and their views if all related views and websites are included in the transfer. If not, you will receive a warning with instructions on which websites or views are missing from your selection.
21 |
22 | ### Domain privacy
23 |
24 | [Learn more about domain privacy](/explained/domain-privacy) and why you don't need a website identifier to collect visitors on your domain.
25 |
--------------------------------------------------------------------------------
/_docs/60_account/30_invoices.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Download invoices
3 | category: account
4 | permalink: /download-invoices
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | We offer you two ways to get your invoices:
9 |
10 | 1. One is to download them from your [account settings](https://simpleanalytics.com/account) and click on one of the previous invoices.
11 | 1. Two is to add your email (or that of your accountant) and receive them by mail. If you choose the last option you will only get future invoices.
12 |
13 |
14 |
--------------------------------------------------------------------------------
/_docs/60_account/40_cancel.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to cancel my account
3 | category: account
4 | permalink: /cancel-account
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | It's very easy to cancel your account. Go to your [account settings](https://simpleanalytics.com/account) and click the button "Cancel your subscription".
9 |
10 | It will cancel your subscription at the date you can see on the top of the page.
11 |
--------------------------------------------------------------------------------
/_docs/60_account/50_delete.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to delete my account
3 | category: account
4 | permalink: /delete-account
5 | last_modified_at: 2022-04-14
6 | ---
7 |
8 | It's very easy to delete your account. Go to your [account settings](https://simpleanalytics.com/account) and click the button "Delete your account".
9 |
10 | ## What we will delete
11 |
12 | - Your data (user, website visits) is deleted from our databases
13 | - Your subscription is cancelled in Stripe
14 | - Your credit card and email are deleted in Stripe
15 |
16 | ## What we will keep
17 |
18 | - Your payment history in Stripe (this is needed for taxes)
19 | - If your data is part of our log files (in case of an error) it will be kept for 90 days
20 | - We keep database backups for 90 days in case something went wrong
21 | - We keep a [hash of your domain names](/explained/domain-privacy) to prevent others from linking your domains to their account
22 |
23 | > If you have any questions feel free to contact us at {{ site.email }} .
24 |
--------------------------------------------------------------------------------
/_includes/video.html:
--------------------------------------------------------------------------------
1 |
15 |
30 | {% if !include.formats or include.formats contains 'mp4' %}
31 |
35 | {% endif %}
36 | {% if !include.formats or include.formats contains 'webm' %}
37 |
41 | {% endif %}
42 | {% if !include.formats or include.formats contains 'ogg' %}
43 |
47 | {% endif %}
48 | {% if !include.formats or include.formats contains 'wmv' %}
49 |
53 | {% endif %}
54 | {% if !include.formats or include.formats contains 'mov' %}
55 |
59 | {% endif %}
60 |
61 | Your browser doesn't support HTML5 video. {% if include.noLink %} Here is
62 | a link instead: https://assets.simpleanalytics.com/videos/{{ include.slug }}/{{ include.filename | default: 'video' }}.mp4 {% else %} Here is a
63 | link to the video
66 | instead. {% endif %}
67 |
68 | {% if include.subtitles %}
69 |
76 | {% endif %}
77 |
78 |
79 |
--------------------------------------------------------------------------------
/_sass/footer.scss:
--------------------------------------------------------------------------------
1 | footer.general {
2 | background-color: #eef9ff;
3 | display: flex;
4 | justify-content: space-between;
5 | padding: 2rem 3rem 2rem;
6 | align-items: center;
7 | text-align: left;
8 | flex-direction: row;
9 |
10 | @media (max-width: $breakpoint-footer) {
11 | flex-direction: column-reverse;
12 | padding: 2rem 2rem 1rem;
13 | align-items: start;
14 | }
15 |
16 | .brand {
17 | display: flex;
18 | align-items: center;
19 |
20 | font-size: 23px;
21 | font-weight: 500;
22 |
23 | @media (max-width: $breakpoint-medium) {
24 | font-size: 16px;
25 | }
26 |
27 | svg {
28 | height: 30px;
29 | width: 30px;
30 | fill: $primary-color;
31 | margin-right: 0.5rem;
32 | }
33 | }
34 |
35 | .intro h3 {
36 | margin-top: 0;
37 | font-size: unset;
38 | margin-bottom: 1rem;
39 |
40 | @media (max-width: $breakpoint-footer) {
41 | margin-top: 2rem;
42 | }
43 | }
44 |
45 | @media (hover: hover) {
46 | &:hover .intro h3 {
47 | opacity: 1;
48 | }
49 | .intro h3 {
50 | opacity: 0.6;
51 | transition: opacity 250ms linear;
52 | }
53 | }
54 |
55 | a {
56 | color: $text-color;
57 | text-decoration: none;
58 | }
59 |
60 | > .intro {
61 | flex: 2;
62 | margin-right: 2rem;
63 |
64 | @media (max-width: $breakpoint-medium) {
65 | margin-right: 0;
66 | }
67 | }
68 |
69 | > .link-container {
70 | flex: 5;
71 | display: flex;
72 | justify-content: space-around;
73 | flex-wrap: wrap;
74 |
75 | > div {
76 | padding: 0.5rem;
77 |
78 | @media (max-width: $breakpoint-small) {
79 | padding: 0;
80 | }
81 | }
82 |
83 | .flex-tablet-devider {
84 | display: none;
85 | }
86 |
87 | @media (max-width: $breakpoint-footer) {
88 | align-items: start;
89 | flex-direction: column;
90 | }
91 |
92 | @media (max-width: $breakpoint-small) {
93 | div + div {
94 | padding-top: 1.5rem;
95 | }
96 | }
97 | }
98 |
99 | @media (min-width: $breakpoint-small) and (max-width: 1080px) {
100 | .intro {
101 | max-width: 360px;
102 | }
103 |
104 | > .link-container {
105 | flex: 2;
106 | justify-content: unset;
107 | margin-left: 3rem;
108 |
109 | > div:nth-child(2),
110 | > div:nth-child(5) {
111 | margin-left: 2rem;
112 | }
113 | .flex-tablet-devider {
114 | flex-basis: 100%;
115 | display: block;
116 | }
117 | }
118 | }
119 |
120 | @media (min-width: $breakpoint-small) and (max-width: $breakpoint-footer) {
121 | > .link-container {
122 | margin-left: 0;
123 | flex-wrap: wrap;
124 | flex-direction: row;
125 | }
126 |
127 | div + div {
128 | padding-top: 0;
129 | }
130 | }
131 |
132 | ul {
133 | list-style-type: none;
134 | padding: 0;
135 | margin: 0;
136 | display: inline-block;
137 | }
138 |
139 | li {
140 | font-size: 14px;
141 | }
142 |
143 | li + li {
144 | margin-top: 0.5rem;
145 | }
146 |
147 | h2 {
148 | margin-top: 0;
149 | font-size: 18px;
150 | color: #7d9598;
151 | }
152 |
153 | h3 {
154 | margin-top: 0;
155 | font-size: 16px;
156 | font-weight: 500;
157 | color: #8aa3a6;
158 | margin-bottom: 0.5rem;
159 | }
160 |
161 | p {
162 | font-size: 13px;
163 | color: #7d9598;
164 | transition: color 250ms linear;
165 |
166 | &:hover {
167 | color: black;
168 | }
169 | }
170 | }
171 |
--------------------------------------------------------------------------------
/_sass/variables.scss:
--------------------------------------------------------------------------------
1 | $background-color: #eef9ff;
2 | $border-color: #ccdce6;
3 | $breakpoint-medium: 768px;
4 | $breakpoint-small: 425px;
5 | $breakpoint-footer: 920px;
6 | $button-active-color: #e6475a;
7 | $button-color: #ff4f64;
8 | $graph-color: rgba(191, 237, 245, 0.5);
9 | $loading-color-light: rgba(191, 237, 245, 0.5);
10 | $loading-color-dark: rgb(191, 237, 245);
11 | $alert-color: rgb(221, 17, 68);
12 | $success-color: rgb(15, 142, 15);
13 | $icon-color: #9aa7b4;
14 | $link-active-color: #00b1ce;
15 | $link-color: #098195;
16 | $primary-color: #ff4f64;
17 | $secondary-color: #098195;
18 | $text-color: #415659;
19 | $text-muted: #777;
20 |
--------------------------------------------------------------------------------
/css/app.scss:
--------------------------------------------------------------------------------
1 | ---
2 | # Front matter comment to ensure Jekyll properly reads file.
3 | ---
4 |
5 | @import "variables";
6 | @import "simpleanalytics";
7 | @import "highlighting";
8 | @import "base";
9 | @import "header";
10 | @import "footer";
11 |
12 | .nowrap pre {
13 | white-space: normal;
14 | }
15 | @media only screen and (min-width: 600px) {
16 | pre.highlight {
17 | white-space: pre-wrap;
18 | word-break: break-word;
19 | }
20 | }
21 | details {
22 | margin: 1rem 0;
23 | }
24 | blockquote.red {
25 | border-left-color: #e51800;
26 | background-color: #fff0ee;
27 | }
28 | blockquote.note {
29 | border-left-color: #b1b1b1;
30 | background-color: #f2f2f2;
31 |
32 | p {
33 | font-size: 14px;
34 | }
35 | }
36 |
37 | .video-container {
38 | line-height: 0;
39 | font-size: 0;
40 | width: 100%;
41 | position: relative;
42 | }
43 |
44 | .video-container.paused::before {
45 | position: absolute;
46 | top: 0;
47 | right: 0;
48 | bottom: 0;
49 | left: 0;
50 | content: " ";
51 | background-color: rgba(191, 237, 245, 0.5);
52 | background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='-4 -4 32 32'%3e%3cpath fill='%2300c5e5' stroke='%23ffffff' d='M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-3 17v-10l9 5.146-9 4.854z'/%3e%3c/svg%3e");
53 | background-position: center center;
54 | background-repeat: no-repeat;
55 | background-size: 100px 100px;
56 | pointer-events: none;
57 | border-radius: 10px;
58 | }
59 |
60 | @media (max-width: $breakpoint-medium) {
61 | .video-container.paused::before {
62 | background-size: 60px 60px;
63 | }
64 | }
65 |
66 | .video-container.scaled {
67 | height: 0px;
68 | }
69 |
70 | .video-container > video {
71 | width: 100%;
72 | }
73 |
74 | .video-container.scaled > video {
75 | height: 100%;
76 | position: absolute;
77 | top: 0;
78 | left: 0;
79 | }
80 |
81 | li {
82 | margin: 0.3rem 0;
83 | }
84 |
85 | li p + ul {
86 | margin-bottom: 1rem;
87 | margin-top: 0;
88 | }
89 |
90 | li ul li {
91 | margin: 0.3rem 0;
92 | }
93 |
94 | .task-list {
95 | list-style-type: none;
96 | padding-left: 0.5rem;
97 |
98 | .task-list-item-checkbox {
99 | margin-right: 0.5rem;
100 | }
101 | }
102 |
103 | sup[role="doc-noteref"]::before {
104 | display: inline;
105 | }
106 |
107 | sup[role="doc-noteref"] a {
108 | text-decoration: none;
109 | }
110 |
111 | @media print {
112 | nav, .nav, .print-button, footer.general {
113 | display: none;
114 | }
115 | main {
116 | width: 100%;
117 | }
118 | }
119 |
--------------------------------------------------------------------------------
/images/account-invoices.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/account-invoices.png
--------------------------------------------------------------------------------
/images/chartbrew-add-visitors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-add-visitors.png
--------------------------------------------------------------------------------
/images/chartbrew-chart-options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-chart-options.png
--------------------------------------------------------------------------------
/images/chartbrew-create-connection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-create-connection.png
--------------------------------------------------------------------------------
/images/chartbrew-create-data-set.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-create-data-set.png
--------------------------------------------------------------------------------
/images/chartbrew-create-new-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-create-new-dashboard.png
--------------------------------------------------------------------------------
/images/chartbrew-dashboard-simple-analytics-themed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-dashboard-simple-analytics-themed.png
--------------------------------------------------------------------------------
/images/chartbrew-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-dashboard.png
--------------------------------------------------------------------------------
/images/chartbrew-make-request-again.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-make-request-again.png
--------------------------------------------------------------------------------
/images/chartbrew-make-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-make-request.png
--------------------------------------------------------------------------------
/images/chartbrew-select-table.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-select-table.png
--------------------------------------------------------------------------------
/images/chartbrew-select-utm-sources.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-select-utm-sources.png
--------------------------------------------------------------------------------
/images/chartbrew-test-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-test-request.png
--------------------------------------------------------------------------------
/images/chartbrew-y-axis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/chartbrew-y-axis.png
--------------------------------------------------------------------------------
/images/cloudflare-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/cloudflare-01.jpg
--------------------------------------------------------------------------------
/images/cloudflare-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/cloudflare-02.jpg
--------------------------------------------------------------------------------
/images/cloudflare-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/cloudflare-03.jpg
--------------------------------------------------------------------------------
/images/cloudflare-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/cloudflare-04.jpg
--------------------------------------------------------------------------------
/images/cloudflare-05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/cloudflare-05.jpg
--------------------------------------------------------------------------------
/images/cloudflare-06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/cloudflare-06.jpg
--------------------------------------------------------------------------------
/images/cloudflare-dns-custom-domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/cloudflare-dns-custom-domain.png
--------------------------------------------------------------------------------
/images/dailytics-final-result.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/dailytics-final-result.gif
--------------------------------------------------------------------------------
/images/dailytics-form-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/dailytics-form-01.png
--------------------------------------------------------------------------------
/images/dailytics-form-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/dailytics-form-02.png
--------------------------------------------------------------------------------
/images/dailytics-form-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/dailytics-form-03.png
--------------------------------------------------------------------------------
/images/direct-visit.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/direct-visit.jpg
--------------------------------------------------------------------------------
/images/email-report-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/email-report-setting.png
--------------------------------------------------------------------------------
/images/email-report.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/email-report.png
--------------------------------------------------------------------------------
/images/extension-chrome-closeup.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/extension-chrome-closeup.jpg
--------------------------------------------------------------------------------
/images/extension-chrome-options.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/extension-chrome-options.jpg
--------------------------------------------------------------------------------
/images/ghost-add-code.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/ghost-add-code.jpg
--------------------------------------------------------------------------------
/images/ghost-click-code-injection.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/ghost-click-code-injection.jpg
--------------------------------------------------------------------------------
/images/ghost-save-code.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/ghost-save-code.jpg
--------------------------------------------------------------------------------
/images/hugo-logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/images/jimdo-add-element.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/jimdo-add-element.png
--------------------------------------------------------------------------------
/images/jimdo-add-html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/jimdo-add-html.png
--------------------------------------------------------------------------------
/images/mailerlite-add-html.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/mailerlite-add-html.jpg
--------------------------------------------------------------------------------
/images/mailerlite-disable-analytics.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/mailerlite-disable-analytics.jpg
--------------------------------------------------------------------------------
/images/mailerlite-save.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/mailerlite-save.jpg
--------------------------------------------------------------------------------
/images/mini-websites-arrow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/mini-websites-arrow.jpg
--------------------------------------------------------------------------------
/images/mini-websites-simple-analytics.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/mini-websites-simple-analytics.gif
--------------------------------------------------------------------------------
/images/password-done.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/password-done.jpg
--------------------------------------------------------------------------------
/images/password-fill.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/password-fill.jpg
--------------------------------------------------------------------------------
/images/password-set.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/password-set.jpg
--------------------------------------------------------------------------------
/images/pencil.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/images/pixel-check-feedback.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/pixel-check-feedback.jpg
--------------------------------------------------------------------------------
/images/referrer-visit.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/referrer-visit.jpg
--------------------------------------------------------------------------------
/images/script-in-safari-sri-version.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/script-in-safari-sri-version.png
--------------------------------------------------------------------------------
/images/spam-click-on-link.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/spam-click-on-link.jpg
--------------------------------------------------------------------------------
/images/spam-confirm.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/spam-confirm.jpg
--------------------------------------------------------------------------------
/images/spam-download-a-copy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/spam-download-a-copy.jpg
--------------------------------------------------------------------------------
/images/spam-more-than-10000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/spam-more-than-10000.jpg
--------------------------------------------------------------------------------
/images/spam-overview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/spam-overview.jpg
--------------------------------------------------------------------------------
/images/spam-verify.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/spam-verify.jpg
--------------------------------------------------------------------------------
/images/squarespace-click-on-advanced.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/squarespace-click-on-advanced.jpg
--------------------------------------------------------------------------------
/images/squarespace-click-on-code-injection.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/squarespace-click-on-code-injection.jpg
--------------------------------------------------------------------------------
/images/squarespace-click-on-settings.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/squarespace-click-on-settings.jpg
--------------------------------------------------------------------------------
/images/squarespace-paste-embed-code.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/squarespace-paste-embed-code.jpg
--------------------------------------------------------------------------------
/images/squarespace-save-embed-code.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/squarespace-save-embed-code.jpg
--------------------------------------------------------------------------------
/images/time-on-page-ga-stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/time-on-page-ga-stop.png
--------------------------------------------------------------------------------
/images/time-on-page-ga.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/time-on-page-ga.png
--------------------------------------------------------------------------------
/images/time-on-page-sa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/time-on-page-sa.png
--------------------------------------------------------------------------------
/images/webflow-footer-code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/webflow-footer-code.png
--------------------------------------------------------------------------------
/images/webflow-head-code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/webflow-head-code.png
--------------------------------------------------------------------------------
/images/wix-select-analytics.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wix-select-analytics.jpg
--------------------------------------------------------------------------------
/images/wix-select-custom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wix-select-custom.jpg
--------------------------------------------------------------------------------
/images/wordpress-click-activate-plugin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-click-activate-plugin.jpg
--------------------------------------------------------------------------------
/images/wordpress-click-add-new-plugin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-click-add-new-plugin.jpg
--------------------------------------------------------------------------------
/images/wordpress-click-browse.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-click-browse.jpg
--------------------------------------------------------------------------------
/images/wordpress-click-install-now.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-click-install-now.jpg
--------------------------------------------------------------------------------
/images/wordpress-click-upload-plugin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-click-upload-plugin.jpg
--------------------------------------------------------------------------------
/images/wordpress-installed-plugins.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-installed-plugins.jpg
--------------------------------------------------------------------------------
/images/wordpress-refined-practice-screenshot-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-refined-practice-screenshot-dashboard.png
--------------------------------------------------------------------------------
/images/wordpress-refined-practice-screenshot-settings-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-refined-practice-screenshot-settings-page.png
--------------------------------------------------------------------------------
/images/wordpress-select-file.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wordpress-select-file.jpg
--------------------------------------------------------------------------------
/images/wp-full-picture-simple-analytics-installation-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wp-full-picture-simple-analytics-installation-2.png
--------------------------------------------------------------------------------
/images/wp-full-picture-simple-analytics-installation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wp-full-picture-simple-analytics-installation.png
--------------------------------------------------------------------------------
/images/wp-full-picture-simple-analytics-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/simpleanalytics/docs/0b06627eb79e8ab08711d9eda7b335d107d94c19/images/wp-full-picture-simple-analytics-settings.png
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "dev": "npm run start",
4 | "start": "bundle exec jekyll serve"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/pages.json:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | permalink: /pages.json
4 | ---
5 | {
6 | "url": "{{ site.url }}",
7 | "docs": [
8 | {% assign counter = 0 -%}
9 | {%- assign docs = site.docs | sort: 'path' -%}
10 | {%- for post in docs -%}
11 | {%- if post.draft or counter >= 1000 -%}
12 | {%- assign match = false -%}
13 | {%- else -%}
14 | {%- assign match = true -%}
15 | {%- assign counter = counter | plus:1 -%}
16 | {%- endif -%}
17 | {%- if match -%}
18 | {%- if counter > 1 %},
19 | {% endif -%}
20 | {%- assign segments = post.path | split: '/' -%}
21 | {%- assign filename_with_extension = segments | last -%}
22 | {%- assign filename_parts = filename_with_extension | split: '_' -%}
23 | {%- assign order = filename_parts[0] -%}
24 | {%- assign name_with_extension = filename_parts[1] -%}
25 | {%- assign name = name_with_extension | split: '.' | first -%}
26 | {%- if post.hidden or order == '00' -%}
27 | {%- assign hidden = true -%}
28 | {%- else -%}
29 | {%- assign hidden = false -%}
30 | {%- endif -%}{
31 | "{{ site.url }}{{ post.url }}": {"body": {{ post.content | markdownify | strip_html | jsonify | replace: ' ', ' ' | replace: ' ', ' ' | replace: ' ', ' ' | replace: ' ', ' ' | replace: ' ', ' ' | replace: ' \n', '\n' | replace: '\n ', '\n' | replace: '\n\n', '\n' | replace: '\n\n', '\n' | remove: '\"' | trim }},"hidden":"{{ hidden }}", "order":"{{ order }}","category":"{{ post.category }}"}
32 | }
33 | {%- endif -%}
34 | {%- endfor %}
35 | ]
36 | }
37 |
--------------------------------------------------------------------------------