Skip to content

Commit 08efb2b

Browse files
GDPR & Google Analytics. (#40)
* Add google analytics support. * Add cookie consent function. Only use google analytics in case of explicit consent. * Add cookie statement. * Use youtube-nocookie version in embedded players. * Remove empty lines. * Add privacy policy.
1 parent 142a0fa commit 08efb2b

9 files changed

Lines changed: 164 additions & 4 deletions

File tree

_config.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,6 @@ collections:
6060
permalink: /blog/:year/:month/:day/:title/
6161
# permalink: /:collection/:path/
6262
output: true
63+
64+
# Google Analytics configuration
65+
google_analytics: UA-139926223-1

_docs/privacy.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
permalink: /privacy
3+
title: Privacy & Cookies policy
4+
---
5+
6+
### Privacy policy
7+
8+
Personal data (usually referred to just as "data" below) will only be processed by us to the extent necessary and for the purpose of providing a functional and user-friendly website, including its contents, and the services offered there.
9+
10+
Per Art. 4 No. 1 of Regulation (EU) 2016/679, i.e. the General Data Protection Regulation (hereinafter referred to as the "GDPR"), "processing" refers to any operation or set of operations such as collection, recording, organization, structuring, storage, adaptation, alteration, retrieval, consultation, use, disclosure by transmission, dissemination, or otherwise making available, alignment, or combination, restriction, erasure, or destruction performed on personal data, whether by automated means or not.
11+
12+
The following privacy policy is intended to inform you in particular about the type, scope, purpose, duration, and legal basis for the processing of such data either under our own control or in conjunction with others. We also inform you below about the third-party components we use to optimize our website and improve the user experience which may result in said third parties also processing data they collect and control.
13+
14+
#### Information about us as controllers of your data
15+
16+
The party responsible for this website (the "controller") for purposes of data protection law is:
17+
18+
eProsima
19+
20+
Plaza de la Encina 10-11 Nucleo 4 2ª Planta,
21+
22+
28760 Tres Cantos,
23+
24+
Madrid, Spain
25+
26+
E-mail: info@eprosima.com
27+
28+
Telephone: +34 918043448
29+
30+
#### The rights of users and data subjects
31+
32+
With regard to the data processing to be described in more detail below, users and data subjects have the right
33+
34+
* to confirmation of whether data concerning them is being processed, information about the data being processed, further information about the nature of the data processing, and copies of the data (cf. also Art. 15 GDPR);
35+
* to correct or complete incorrect or incomplete data (cf. also Art. 16 GDPR);
36+
* to the immediate deletion of data concerning them (cf. also Art. 17 DSGVO), or, alternatively, if further processing is necessary as stipulated in Art. 17 Para. 3 GDPR, to restrict said processing per Art. 18 GDPR;
37+
* to receive copies of the data concerning them and/or provided by them and to have the same transmitted to other providers/controllers (cf. also Art. 20 GDPR);
38+
* to file complaints with the supervisory authority if they believe that data concerning them is being processed by the controller in breach of data protection provisions (see also Art. 77 GDPR).
39+
40+
In addition, the controller is obliged to inform all recipients to whom it discloses data of any such corrections, deletions, or restrictions placed on processing the same per Art. 16, 17 Para. 1, 18 GDPR. However, this obligation does not apply if such notification is impossible or involves a disproportionate effort. Nevertheless, users have a right to information about these recipients.
41+
42+
Likewise, under Art. 21 GDPR, users and data subjects have the right to object to the controller's future processing of their data pursuant to Art. 6 Para. 1 lit. f) GDPR. In particular, an objection to data processing for the purpose of direct advertising is permissible.
43+
44+
#### Information about the data processing
45+
46+
Your data processed when using our website will be deleted or blocked as soon as the purpose for its storage ceases to apply, provided the deletion of the same is not in breach of any statutory storage obligations or unless otherwise stipulated below.
47+
48+
Model Data Protection Statement for Anwaltskanzlei Weiß & Partner
49+
50+
### Cookies usage
51+
52+
#### What are cookies?
53+
54+
A cookie is a small text file that a website saves on your computer or mobile device when you visit the site.
55+
It enables the website to remember your actions and preferences (such as login, language, font size and other display preferences) over some time, so you don't have to keep re-entering them whenever you come back to the site or browse from one page to another.
56+
57+
#### How do we use cookies?
58+
59+
We use cookies for the unique purpose of tracking how many visitors we receive on a page.
60+
A third-party application: Google Analytics provides the cookies used for that.
61+
62+
Google Analytics is Google's analytics tool that helps website and app owners to understand how their visitors engage with their properties.
63+
It may use a set of cookies to collect information and report website usage statistics without personally identifying individual visitors to Google.
64+
The main cookie used by Google Analytics is the '_ga' cookie.
65+
66+
In addition to reporting website usage statistics, Google Analytics can also be used, together with some of the advertising cookies described above, to help show more relevant ads on Google properties (like Google Search) and across the web and to measure interactions with the ads we show.
67+
68+
Learn more about [Analytics cookies and privacy information](https://developers.google.com/analytics/resources/concepts/gaConceptsCookies?hl=enk).
69+
70+
Also, some videos embedded in our pages use a cookie to anonymously gather statistics on how you got there and what videos you visited.
71+
72+
Enabling these cookies is not strictly necessary for the website to work, but it will provide you with a better browsing experience. You can delete or block these cookies, but if you do that some features of this site may not work as intended.
73+
74+
The cookie-related information is not used to identify you personally, and the pattern data is entirely under our control. These cookies are not used for any purpose other than those described here.
75+
76+
#### Do we use other cookies?
77+
78+
Additionally, to the cookies exposed in the previous section, we use a cookie to keep track of your choice in the cookie notice.
79+
This cookie is only used for keeping your decision during a set time, expired that time the cookie banner will appear again.
80+
This cookie is kept for 31 days.
81+
82+
#### How to control cookies
83+
84+
You can control and delete cookies as you wish.
85+
You can delete all cookies that are already on your computer, and you can set most browsers to prevent them from being placed.
86+
If you do this, however, you may have to adjust some preferences every time you visit a site, and some services and functionalities may not work.

_includes/cookie-consent.html

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<style>
2+
#cookie-notice {padding: 7px 15px; display: none; text-align: center; position: fixed; bottom: 0; width: 100%; background: #222; color: rgba(255,255,255,0.8);}
3+
#cookie-notice a {cursor: pointer; margin-left: 10px;}
4+
@media (max-width: 767px) {
5+
#cookie-notice span {display: block; padding-top: 3px; margin-bottom: 13px;}
6+
#cookie-notice a {position: relative; bottom: 4px;}
7+
}
8+
</style>
9+
<div id="cookie-notice"><span>We would like to use third party cookies and scripts to improve the functionality of this website.</span><a id="cookie-notice-accept" class="btn btn-primary btn-sm">Approve</a><a href="/privacy" class="btn btn-primary btn-sm">More info</a></div>
10+
<script>
11+
function createCookie(name,value,days) {
12+
var expires = "";
13+
if (days) {
14+
var date = new Date();
15+
date.setTime(date.getTime() + (days*24*60*60*1000));
16+
expires = "; expires=" + date.toUTCString();
17+
}
18+
document.cookie = name + "=" + value + expires + "; path=/";
19+
}
20+
function readCookie(name) {
21+
var nameEQ = name + "=";
22+
var ca = document.cookie.split(';');
23+
for(var i=0;i < ca.length;i++) {
24+
var c = ca[i];
25+
while (c.charAt(0)==' ') c = c.substring(1,c.length);
26+
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
27+
}
28+
return null;
29+
}
30+
function eraseCookie(name) {
31+
createCookie(name,"",-1);
32+
}
33+
function include_gtag() {
34+
{% if site.google_analytics %}
35+
{% if jekyll.environment == "production" %}
36+
{% include gtag.js %}
37+
{% endif %}
38+
{% endif %}
39+
}
40+
41+
if(readCookie('cookie-notice-dismissed')=='true') {
42+
include_gtag();
43+
} else {
44+
$('#cookie-notice').show();
45+
}
46+
$('#cookie-notice-accept').click(function() {
47+
createCookie('cookie-notice-dismissed','true',31);
48+
include_gtag();
49+
$('#cookie-notice').hide();
50+
});
51+
52+
</script>

_includes/gtag.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
2+

_includes/gtag.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
window.dataLayer = window.dataLayer || [];
2+
function gtag(){dataLayer.push(arguments);}
3+
gtag('js', new Date());
4+
gtag('config', "{{ site.google_analytics }}");

_includes/head.html

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
<head>
2+
3+
{% if site.google_analytics %}
4+
{% if jekyll.environment == "production" %}
5+
{% include gtag.html %}
6+
{% else %}
7+
<!-- jekyll.environment variable is "{{ jekyll.environment }}" and not "production", Google Analytics snippet will be skipped. -->
8+
{% endif %}
9+
{% else %}
10+
<!-- Please specify google_analytics variable in the _config.yml to enable Google Analytics --> endif %}
11+
{% endif %}
12+
213
<meta charset="utf-8">
314
<meta http-equiv="X-UA-Compatible" content="IE=edge">
415
<meta name="viewport" content="width=device-width, initial-scale=1">

_layouts/default.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
{% include footer.html %}
2020
{% include js_files.html %}
21+
22+
{% include cookie-consent.html %}
2123
</body>
2224

2325
</html>

_posts/2018-12-14-ric-eu.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ Several people from the micro-ROS team were there and both Víctor Mayoral Vilch
1414

1515
## Videos
1616

17-
<iframe width="560" height="315" src="https://www.youtube.com/embed/ZN2QRbNMq3c" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
17+
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/ZN2QRbNMq3c" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
1818

19-
<iframe width="560" height="315" src="https://www.youtube.com/embed/tARlVkxRZG0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
19+
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/tARlVkxRZG0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
2020

2121
Thanks to the ROS Industrial Team for inviting us and making the nice videos available! It's been fun and informative.
2222

2323
## Summary Video
2424

2525
There's also a nice summary video available
26-
<iframe width="560" height="315" src="https://www.youtube.com/embed/YRxuWC1LNAQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
26+
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/YRxuWC1LNAQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

_posts/2019-03-20-micro-ROS_at_ERF2019.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ The micro-ROS community demo was presented, making use of a Kobuki, one of the p
1717

1818
### Videos
1919

20-
<iframe width="560" height="315" src="https://www.youtube.com/embed/Ca0wmFLi_oY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
20+
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Ca0wmFLi_oY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

0 commit comments

Comments
 (0)