Guides & support » Privacy » Cookies created for visitors by Piwik PRO

Cookies created for visitors by Piwik PRO

When visitors come to your website with Piwik PRO installed, Piwik PRO will set cookies in their browser. Which cookies are created depends on the privacy settings and features you use. Although it’s possible to collect data cookie-free, the minimum set of a visitor cookie (_pk_id.*) and a session cookie (_pk_ses.*) will give you optimal data accuracy.

In this article, we’ll describe all the cookies that Piwik PRO may set for visitors.

Cookies created in a visitor’s browser

Here’s a list of all the cookies that may be set in a visitor’s browser. You’ll find their detailed descriptions just below this table.

Cookie Non-anonymous visitor Anonymous visitor Default cookie lifetime Module Cookie type
Basic cookies
_pk_id.<appID>.<domainHash> Always

Always (if the 30-minute cookie option is turned on)

Never (if the cookie-free option is turned on)

13 months for non-anonymous visitors

30 minutes for anonymous visitors if the 30-minute cookie option is turned on

Tracker (JS tracking client) First-party
_pk_ses.<appID>.<domainHash> Always

Always (if the 30-minute cookie option is turned on)

Never (if the cookie-free option is turned on)

30 minutes Tracker (JS tracking client) First-party
ppms_privacy_<appID> Always Always 12 months Consent Manager (legacy) or any other consent management tool First-party
Additional cookies
ppms_privacy_bar_<appID> Optional Optional Until the session ends Consent Manager (legacy) First-party
stg_traffic_source_priority Optional Optional 30 minutes Tag Manager First-party
stg_last_interaction Optional Optional 365 days Tag Manager First-party
stg_returning_visitor Optional Optional 365 days Tag Manager First-party
stg_fired__<conditionID> Optional Optional Until the session ends Tag Manager First-party
stg_utm_campaign Optional Optional Until the session ends Tag Manager First-party
stg_pk_campaign Optional Optional Until the session ends Tag Manager First-party
stg_externalReferrer Optional Optional Until the session ends Tag Manager First-party
_stg_optout Optional Optional 365 days Tag Manager First-party
_pk_cvar.<appID>.<domainHash> (deprecated) Optional Optional 30 minutes Tracker (JS tracking client) First-party

Note: Cookies are not created in mobile apps (Android or iOS). If you use our SDKs, you will not use cookies.

Here’s a detailed description of each cookie.

_pk_id.<appID>.<domainHash>

Cookie: _pk_id.<appID>.<domainHash>
Module: Tracker (JS tracking client)
Expires after: 13 months (can be changed in UI or JS API) or 30 minutes for anonymous visitors if the 30-minute cookie option is turned on
Extends: No
Type: First-party cookie

About: Used to recognize visitors and hold their various properties.

Value: <cookieID>.<cookieCreationTimestamp>.<visitsCount>.<currentVisitTimestamp>.<lastVisitTimestamp>.<lastEcommerceOrderTimestamp>

  • cookieID: The randomly generated ID (hexadecimal number) used for recognizing visitors. In cross-domain tracking, the cookie ID is passed in the URL parameter and saved in the _pk_id cookie.
  • cookieCreationTimestamp: The time when the cookie was created.
  • visitsCount: A counter that counts visits. If 0, it means this is the first visit.
  • currentVisitTimestamp: The current timestamp of the visit. It is updated with each visitor action.
  • lastVisitTimestamp: The timestamp of the last visit. If empty, it means this is the first visit. This timestamp is also used to count visits along with the _pk_ses cookie.
  • lastEcommerceOrderTimestamp: The timestamp of the last ecommerce order. If empty, it means that there were no ecommerce orders.

_pk_ses.<appID>.<domainHash>

Cookie: _pk_ses.<appID>.<domainHash>
Module: Tracker (JS tracking client)
Expires after: 30 minutes after the visitor’s last event (can be changed in UI or JS API)
Extends: Automatically
Type: First-party cookie

About: Shows the visitor’s active session. If the cookie doesn’t exist, it means that the session ended more than 30 minutes ago and was counted in the _pk_id cookie.

Value: * (No data is stored in this cookie)

ppms_privacy_<appID>

Cookie: ppms_privacy_<appID>
Module: Consent Manager (legacy)
Expires after: 12 months (can be changed)
Extends: Automatically
Type: First-party cookie

About: Stores the visitor’s consent to data collection and usage.

Value: A JSON-encoded object that holds the visitor’s consent to data collection and usage.

  • -1: The visitor made no decision.
  • 0: The visitor didn’t agree to the use of their data.
  • 1: The visitor agreed to the use of their data.

Created when: You use Consent Manager (legacy) or turn on Consent management tool in Menu > Administration > Privacy, and display a consent form on your site.

Decoded cookie:

{
   "consents":{
      "analytics":{
         "status":-1,

         "updatedAt":"2020-01-30T12:15:47.283Z"
      },
      "ab_testing_and_personalization":{
         "status":1,
         "updatedAt":"2020-01-31T10:56:35.447Z"
      },
      "custom_consent":{
         "status":0,
         "updatedAt":"2020-01-31T10:56:35.447Z"
      },
      "user_feedback":{
         "status":0,
         "updatedAt":"2020-01-31T10:56:35.447Z"
      },
      "marketing_automation":{
         "status":0,
         "updatedAt":"2020-01-31T10:56:35.447Z"
      },
      "remarketing":{
         "status":1,
         "updatedAt":"2020-01-31T10:56:35.447Z"
      },
      "conversion_tracking":{
         "status":0,
         "updatedAt":"2020-01-31T10:56:35.447Z"
      },

   },
      "normalized":"client1.piwikpro.test",
      "isWildcard":false,
      "pattern":"client1.piwikpro.test"
   },
   "staleCheckpoint":"2020-01-31T10:56:27.699Z"
}

ppms_privacy_bar_<appID>


Cookie: ppms_privacy_bar_<appID>
Module: Consent Manager (legacy)
Expires after: The session ends (Fixed idle time or after a browser is closed)
Extends: No
Type: First-party cookie

About: Stores information that the visitor has closed the consent reminder.

Value: A JSON-encoded object that stores information that the visitor has closed the consent reminder.

Created when: You use Consent Manager (legacy) and a visitor closes the consent reminder on your site.

Note: This cookie won’t be created if you’re using a Piwik PRO version without Consent Manager (legacy), even if you turn on Consent management tool in Menu > Administration > Privacy.

Decoded cookie:

{
  "status": true,
  "domain": {
    "normalized": "piwikpro.test",
    "isWildcard": false,
    "pattern": "piwikpro.test"
  }
}

stg_traffic_source_priority

Cookie: stg_traffic_source_priority
Module: Tag Manager
Expires after: 30 minutes
Extends: Automatically
Type: First-party cookie

About: Stores the type of traffic source that brought the visitor to your site.

Value:

  • 1: Direct
  • 2: Referral
  • 3: Social media
  • 4: Organic search
  • 5: Campaign

Created when: One of these conditions applies:

  • You use a traffic source condition in a trigger and Consent management tool is turned on.
  • You use a traffic source condition in a trigger, and both Consent management tool and Use visitor cookies are turned off.
  • A visitor enters your site, Consent management tool is turned off, and Use visitor cookies is turned on.

Settings: Administration > Sites & apps > Privacy

stg_last_interaction

Cookie: stg_last_interaction
Module: Tag Manager
Expires after: 365 days
Extends: Automatically
Type: First-party cookie

About: Indicates whether the last visitor’s session is still running or a new session has started.

Value: The timestamp of the visitor’s last interaction with your site.

Created when: One of these conditions applies:

  • You use a multiplicity condition in a trigger and Consent management tool is turned on.
  • You use a multiplicity condition in a trigger, and both Consent management tool and Use visitor cookies are turned off.
  • A visitor navigates through your site, Consent management tool is turned off, and Use visitor cookies is turned on.

Settings: Administration > Sites & apps > Privacy

stg_returning_visitor

Cookie: stg_returning_visitor
Module: Tag Manager
Expires after: 365 days
Extends: Automatically
Type: First-party cookie

About: Indicates whether the visitor has been to your site before – they are a returning visitor.

Value: The timestamp of the last time the visitor interacted with your site.

Created when:

  • You use a returning-visitor condition in a trigger and Consent management tool is on.
  • You use a returning-visitor condition in a trigger and both Consent management tool and Use visitor cookies are off.
  • A visitor returns to your website while Consent management tool is off and Use visitor cookies is on.

Settings: Administration > Sites & apps > Privacy

stg_fired__<conditionID>

Cookie: stg_fired__<conditionID>
Module: Tag Manager
Expires after: The session ends (Fixed idle time or after a browser is closed)
Extends: No
Type: First-party cookie

About: Indicates whether the tag and trigger combination was fired during the current visitor session. This cookie can be set multiple times with different condition IDs.

Cookie value: The timestamp of when the tag was fired.

Created when: You use a multiplicity condition in a trigger and the trigger is set to fire the tag once per session. The cookie is created after the tag fires.

stg_utm_campaign

Cookie: stg_utm_campaign
Module: Tag Manager
Expires after: The session ends (Fixed idle time or after a browser is closed)
Extends: No
Type: First-party cookie

About: Stores the name of the campaign that directed the visitor to your site.

Cookie value: The encoded value of the utm_campaign query parameter.

Created when: A visitor enters your site from a campaign with the utm_campaign query parameter and one of these conditions applies:

  • You use a campaign condition in a trigger and Consent management tool is turned on.
  • You use a campaign condition in a trigger, and both Consent management tool and Use visitor cookies are turned off.
  • Consent management tool is turned off and Use visitor cookies is turned on.

Settings: Administration > Sites & apps > Privacy

stg_pk_campaign

Cookie: stg_pk_campaign
Module: Tag Manager
Expires after: The session ends (Fixed idle time or after a browser is closed)
Extends: No
Type: First-party cookie

About: Stores the name of the campaign that directed the visitor to your site.

Cookie value: The encoded value of the pk_campaign query parameter.

Created when: A visitor enters your site from a campaign with the pk_campaign query parameter and one of these conditions applies:

  • You use a campaign condition in a trigger and Consent management tool is turned on. You use a campaign condition in a trigger, and both Consent management tool and Use visitor cookies are turned off. Consent management tool is turned off and Use visitor cookies is turned on.

Settings: Administration > Sites & apps > Privacy.

stg_externalReferrer

Cookie: stg_externalReferrer
Module: Tag Manager
Expires after: The session ends (after the fixed idle time or when the browser closes)
Extends: No
Type: First-party cookie

About: Stores the URL of the site that referred the visitor to your site.

Referrer: The site a visitor came from before opening your site.

Cookie value: The value of window.location.origin of the referring site.

Created when: A visitor comes to your site from another site and one of these conditions applies:

  • You use an external referrer condition in a trigger and Consent management tool is turned on.
  • You use an external referrer condition in a trigger, and both Consent management tool and Use visitor cookies are turned off.
  • Consent management tool is turned off and Use visitor cookies is turned on.

Settings: Administration > Sites & apps > Privacy.

_stg_optout

Cookie: _stg_optout
Module: Tag Manager
Expires after: 365 days
Extends: Automatically
Type: First-party cookie

About: Helps to turn off all tracking tags on your site.

Cookie value:

  • true: The visitor opts out of tracking.
  • false: The visitor agrees to tracking.

Created when: A visitor opts out of tracking by using an opt-out form on your site.

_pk_cvar.<appID>.<domainHash> (deprecated)

Cookie: _pk_cvar.<appID>.<domainHash> (deprecated)
Module: Tracker
Expires after: 30 minutes after the visitor’s last event (can be changed in UI or JS API)
Extends: Yes
Type: First-party cookie

About: Stores a custom variable that is part of the visit scope.

Cookie value: Custom variable keys and values.

Created when: You created a custom variable in the visit scope and such a variable was tracked for the visitor. This cookie will only be created if your developer allows it to be created via the storeCustomVariablesInCookie() method in the JS API.

Note: This cookie is deprecated because we plan to remove custom variables from Piwik PRO. We encourage you to use custom dimensions instead as they don’t require cookies to work properly.

stg_global_opt_out (deprecated)

Cookie: stg_global_opt_out (deprecated)
Module: Tag Manager (versions below 16.0.0)
Expires after: 365 days
Extends: Automatically
Type: Third-party cookie

About: Helps to turn off all tracking tags on sites that belong to one Piwik PRO account.

Cookie value:

  • 1: The visitor opts out of tracking.
  • 0: The visitor agrees to tracking.

Created when: A visitor opts out of tracking by using an opt-out form on your site.

Local storage details (deprecated)

Here’s a detailed description of the information stored in local storage. Local storage is used in versions below 18.6.0.

ppms_webstorage (deprecated)

Module: Tracker (JS tracking client), Tag Manager, Consent Manager (legacy) [versions below 18.6.0]

About: Prevents the possible loss of visitor data caused by certain browser mechanisms, like Safari’s ITP.

Value: A string object that contains information about all cookies created, including key, value, expiration date, path, domain and so on.

Created when: Each time a cookie is set in a visitor’s browser.

Removed when: The ppms_webstorage element is not deleted automatically but a visitor can delete it manually. Individual entries in the object are deleted when the corresponding cookie expires.

ppms_data_store (deprecated)

Module: Tracker (JS client tracker), Audience Manager, Tag Manager (versions below 16.0.0)

About: Stores information from forms on your site. When a visitor submits a form, the data is transferred to Audience Manager. However, if the form redirects the visitor to another page, the data may be lost. That’s why form data is stored in local storage as a backup. (The page where the visitor is redirected must have a form tracker, otherwise Piwik PRO can’t collect form data).

Value: A JSON-encoded object that contains:

  • payload: AES encrypted form data.
  • aes: RSA encrypted AES key (for payload)
  • Iv: initialization vector (for payload)

Removed when: After the tracker sends the form data to the server. This can happen as soon as the visitor submits the form or after a new page loads in the browser.