Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (111)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (8265)

  • What is data anonymization in web analytics ?

    11 février 2020, par Joselyn Khor — Analytics Tips, Privacy

    Collecting information via web analytics platforms is needed to help a website grow and improve. When doing so, it’s best to strike a balance between getting valuable insights, and keeping the trust of your users by protecting their privacy.

    This means not collecting or processing any personally identifiable information (PII). But what if your organisation requires you to collect PII ?

    That’s where data anonymization comes in.

    What is data anonymization ?

    Data anonymization makes identifiable information unidentifiable. This is done through data processing techniques which remove or modify PII data. So data becomes anonymous and can’t be linked to any individual.

    In the context of web analytics, data anonymization is handy because you can collect useful data while protecting the privacy of website visitors.

    Why is data anonymization important ?

    Through modern threats of identity theft, credit card fraud and the like, data anonymization is a way to protect the identity and privacy of individuals. As well as protect private and sensitive information of organisations. 

    Data anonymization lets you follow the many laws around the world which protect user privacy. These laws provide safeguards around collecting personal data or personally identifiable information (PII), so data anonymization is a good solution to ensure you’re not processing such sensitive information.

    In some cases, implementing data anonymization techniques means you can avoid having to show your users a consent screen. Which means you may not need to ask for consent in order to track data. This is a bonus as consent screens can annoy and stop people from engaging with your site.

    GDPR and data anonymization

    Matomo Analytics GDPR Google Analytics

    The GDPR is a law in the EU that limits the collection and processing of personal data. The aim is to give people more control over their online personal information. Which is why website owners need to follow certain rules to become GDPR compliant and protect user privacy. According to the GDPR, you can be fined up to 4% of your yearly revenue for data breaches or non-compliance. 

    In the case of web analytics, tools can be easily made compliant by following a number of steps

    This is why anonymizing data is a big deal.

    Anonymized data isn’t personal data according to the GDPR : 

    “The principles of data protection should therefore not apply to anonymous information, namely information which does not relate to an identified or identifiable natural person or to personal data rendered anonymous in such a manner that the data subject is not or no longer identifiable.”

    This means, you still get the best of both worlds. By anonymizing data, you’re still able to collect useful information like visitor behavioural data.

    US privacy laws and data anonymization

    In the US, there isn’t one single law that governs the protection of personal data, called personally identifiable information (PII). There are hundreds of federal and state laws that protect the personal data of US residents. As well as, industry-specific statutes related to data privacy, like the California Consumer Privacy Act (CCPA) and the Health Insurance Portability and Accountability Act (HIPAA).

    Website owners in the US need to know exactly what laws govern their area of business in order to follow them.

    A general guideline is to protect user privacy regardless of whether you are or aren’t allowed to collect PII. This means anonymizing identifiable information so your website users aren’t put at risk.

    Data anonymization techniques in Matomo Analytics

    If you carry these out, you won’t need to ask your website visitors for tracking consent since anonymized data is no longer considered personal data under the GDPR.

    The techniques listed above make it easy for you when using a tool like Matomo, as they are automatically anonymized.

    Tools like Google Analytics on the other hand don’t provide some of the privacy options and leave it up to you to take on the burden of implementation without providing steps.

    Data anonymization tools

    If you’re a website owner who wants to grow your business or learn more about your website visitors, privacy-friendly tools like Matomo Analytics are a great option. By following the easy steps to be GDPR compliant, you can anonymize all data that could put your visitors at risk.

  • FFmpeg seeking (-ss) not working on some devices

    4 juin 2020, par ClassA

    As the title states, -ss command is not working on some devices, like the Huawei Mate 10.

    



    Here is the command I'm using and how I get the values :

    



    Format formatter = new SimpleDateFormat("00:" + "mm:ss.SS");
// Video duration
long duration = getDuration();
// Video duration devided by 6 (I want to get 5 images)
long img1 = duration / 6;
String firstThumbTime = formatter.format(img1);
// Screen dimentions devided by 7
String dimentions = width + ":" + height;

String[] a = {"-ss", firstThumbTime, "-i", mStringFilePath, "-vframes", "1", "-s", dimentions, imageThumbsDirectory + "/" + "thumb1.bmp"};


    



    The command above looks like this :

    



    -ss 00:00:00.47 -i /storage/emulated/0/Android/data/com.my.package/files/MyVideos/2020_02_19_16_00_20.mp4 -vframes 1 -s 154:274 /storage/emulated/0/Android/data/com.my.package/files/ThumbTemp/thumb1.bmp


    



    The strange thing is that it completes without an error, but the output file is unreadable.

    



    I do not have the logs currently, but I have a user that can send it to me if you need it.

    




    



    I'm 100% sure that it is caused by -ss because I use a similar command for trimming a video elsewhere in my application and when the user exports the video without setting trimming points(-ss), then the video works.

    



    Here is the 2 command I use for trimming a video :

    



    Working :

    



    String[] s = {"-i", videonInputPath, "-crf", "18", "-c:v", "libx264", "-preset", "ultrafast", videoOutputPath};


    



    Not working

    



    String[] s = {"-ss", startValue, "-i", videonInputPath, "-crf", "18", "-c:v", "libx264", "-preset", "ultrafast", videoOutputPath};


    




    



    This is the first time a user sends me this issue, so it has to be something with his device.

    



    Any advice would greatly be appreciated.

    




    



    EDIT :

    



    Log as requested by @Gyan in the comment section below (Added -v 48 to command) :

    



    ffmpeg version n4.0-39-gda39990 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.9.x (GCC) 20150123 (prerelease)
configuration: --target-os=linux --cross-prefix=/root/bravobit/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/root/bravobit/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-ffprobe --enable-libopus --enable-libvorbis --enable-libfdk-aac --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-libvpx --enable-libass --enable-yasm --enable-pthreads --disable-debug --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-linux-perf --disable-doc --disable-shared --enable-static --enable-runtime-cpudetect --enable-nonfree --enable-network --enable-avresample --enable-avformat --enable-avcodec --enable-indev=lavfi --enable-hwaccels --enable-ffmpeg --enable-zlib --enable-gpl --enable-small --enable-nonfree --pkg-config=pkg-config --pkg-config-flags=--static --prefix=/root/bravobit/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/root/bravobit/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/root/bravobit/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-cxxflags=
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Splitting the commandline.
Reading option '-ss' ... matched as option 'ss' (set the start time offset) with argument '00:30:02.58'.
Reading option '-i' ... matched as input url with argument '/storage/emulated/0/Download/email/VID-20180720-WA0001.mp4'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '48'.
Reading option '-vframes' ... matched as option 'vframes' (set the number of video frames to output) with argument '1'.
Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '154:308'.
Reading option '/storage/emulated/0/Android/data/com.my.package/files/ThumbTemp/thumb1.bmp' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 48.
Successfully parsed a group of options.
Parsing a group of options: input url /storage/emulated/0/Download/email/VID-20180720-WA0001.mp4.
Applying option ss (set the start time offset) with argument 00:30:02.58.
Successfully parsed a group of options.
Opening an input file: /storage/emulated/0/Download/email/VID-20180720-WA0001.mp4.
[NULL @ 0xf1fa5000] Opening '/storage/emulated/0/Download/email/VID-20180720-WA0001.mp4' for reading
[file @ 0xf1f94000] Setting default whitelist 'file,crypto'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] ISO: File Type Major Brand: mp42
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] Unknown dref type 0x206c7275 size 12
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] rfps: 29.833333 0.018442
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] rfps: 29.916667 0.003419
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] rfps: 30.000000 0.000764
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] rfps: 60.000000 0.003057
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] rfps: 120.000000 0.012228
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] rfps: 29.970030 0.000295
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] rfps: 59.940060 0.001178
Last message repeated 1 times
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] Before avformat_find_stream_info() pos: 6937 bytes read:32768 seeks:0 nb_streams:2
[h264 @ 0xf1fda380] nal_unit_type: 7, nal_ref_idc: 1
[h264 @ 0xf1fda380] nal_unit_type: 8, nal_ref_idc: 1
[h264 @ 0xf1fda380] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0xf1fda380] nal_unit_type: 5, nal_ref_idc: 1
[h264 @ 0xf1fda380] Format yuv420p chosen by get_format().
[h264 @ 0xf1fda380] Reinit context to 848x480, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xf1fa5000] After avformat_find_stream_info() pos: 67446 bytes read:67446 seeks:0 frames:45
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Download/email/VID-20180720-WA0001.mp4':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp41mp42isom
creation_time : 2018-07-20T19:57:44.000000Z
Duration: 00:00:15.52, start: 0.000000, bitrate: 1679 kb/s
Stream #0:0(und), 1, 1/600: Video: h264, 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, left), 848x480, 0/1, 1622 kb/s, 30.02 fps, 29.97 tbr, 600 tbn, 1200 tbc (default)
Metadata:
rotate : 90
creation_time : 2018-07-20T19:57:44.000000Z
handler_name : Core Media Video
Side data:
displaymatrix: rotation of -90.00 degrees
Stream #0:1(und), 44, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 53 kb/s (default)
Metadata:
creation_time : 2018-07-20T19:57:44.000000Z
handler_name : Core Media Audio
Successfully opened the file.
Parsing a group of options: output url /storage/emulated/0/Android/data/com.my.package/files/ThumbTemp/thumb1.bmp.
Applying option vframes (set the number of video frames to output) with argument 1.
Applying option s (set frame size (WxH or abbreviation)) with argument 154:308.
Successfully parsed a group of options.
Opening an output file: /storage/emulated/0/Android/data/com.my.package/files/ThumbTemp/thumb1.bmp.
Successfully opened the file.
detected 8 logical cores
[h264 @ 0xf1fdbf80] nal_unit_type: 7, nal_ref_idc: 1
[h264 @ 0xf1fdbf80] nal_unit_type: 8, nal_ref_idc: 1
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> bmp (native))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
Last message repeated 1 times
[h264 @ 0xf1fdbf80] nal_unit_type: 5, nal_ref_idc: 1
[h264 @ 0xf1fdbf80] Format yuv420p chosen by get_format().
[h264 @ 0xf1fdbf80] Reinit context to 848x480, pix_fmt: yuv420p
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdc300] nal_unit_type: 1, nal_ref_idc: 1
[h264 @ 0xf1fdc680] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
Last message repeated 1 times
[h264 @ 0xf1fdca00] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdcd80] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdd100] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdd480] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdd800] nal_unit_type: 1, nal_ref_idc: 1
[h264 @ 0xf1fddb80] nal_unit_type: 1, nal_ref_idc: 1
[graph 0 input from stream 0:0 @ 0xf1fe9360] Setting 'video_size' to value '848x480'
[graph 0 input from stream 0:0 @ 0xf1fe9360] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:0 @ 0xf1fe9360] Setting 'time_base' to value '1/600'
[graph 0 input from stream 0:0 @ 0xf1fe9360] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 0xf1fe9360] Setting 'sws_param' to value 'flags=2'
[graph 0 input from stream 0:0 @ 0xf1fe9360] Setting 'frame_rate' to value '30000/1001'
[graph 0 input from stream 0:0 @ 0xf1fe9360] w:848 h:480 pixfmt:yuv420p tb:1/600 fr:30000/1001 sar:0/1 sws_param:flags=2
[transpose @ 0xf1fe9420] Setting 'dir' to value 'clock'
[scaler_out_0_0 @ 0xf1fe9540] Setting 'w' to value '154'
[scaler_out_0_0 @ 0xf1fe9540] Setting 'h' to value '308'
[scaler_out_0_0 @ 0xf1fe9540] Setting 'flags' to value 'bicubic'
[scaler_out_0_0 @ 0xf1fe9540] w:154 h:308 flags:'bicubic' interl:0
[format @ 0xf1fe95a0] Setting 'pix_fmts' to value 'bgra|bgr24|rgb565le|rgb555le|rgb444le|rgb8|bgr8|rgb4_byte|bgr4_byte|gray|pal8|monob'
[AVFilterGraph @ 0xf1fb20c0] query_formats: 7 queried, 6 merged, 0 already done, 0 delayed
[scaler_out_0_0 @ 0xf1fe9540] picking bgr24 out of 12 ref:yuv420p alpha:0
[transpose @ 0xf1fe9420] w:848 h:480 dir:1 -> w:480 h:848 rotation:clockwise vflip:0
[scaler_out_0_0 @ 0xf1fe9540] w:480 h:848 fmt:yuv420p sar:0/1 -> w:154 h:308 fmt:bgr24 sar:0/1 flags:0x4
Output #0, image2, to '/storage/emulated/0/Android/data/com.my.package/files/ThumbTemp/thumb1.bmp':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: mp41mp42isom
encoder : Lavf58.12.100
Stream #0:0(und), 0, 1001/30000: Video: bmp, 1 reference frame, bgr24(left), 154x308, 0/1, q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
Metadata:
encoder : Lavc58.18.100 bmp
creation_time : 2018-07-20T19:57:44.000000Z
handler_name : Core Media Video
Side data:
displaymatrix: rotation of -0.00 degrees
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdbf80] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdc300] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdc680] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdca00] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdcd80] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdd100] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[h264 @ 0xf1fdd480] nal_unit_type: 1, nal_ref_idc: 1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
Last message repeated 9 times
[out_0_0 @ 0xf1fe94e0] EOF on sink link out_0_0:default.
No more output streams to write to, finishing.
frame= 0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x 
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (/storage/emulated/0/Download/email/VID-20180720-WA0001.mp4):
Input stream #0:0 (video): 16 packets read (153990 bytes); 16 frames decoded; 
Input stream #0:1 (audio): 0 packets read (0 bytes); 
Total: 16 packets (153990 bytes) demuxed
Output file #0 (/storage/emulated/0/Android/data/com.my.package/files/ThumbTemp/thumb1.bmp):
Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes); 
Total: 0 packets (0 bytes) muxed
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
16 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0xf1fbc000] Statistics: 221436 bytes read, 1 seeks


    


  • Your guide to cookies, web analytics, and GDPR compliance

    25 février 2020, par Joselyn Khor — Analytics Tips, Privacy, Security

    It’s been almost two years since the GDPR came into effect and turned the online world on its head. Confusion around cookies/cookie consent/cookie compliance remains till today. So we’d like to take this chance to talk more about the supposed “big bad” of the latest century. 

    Online cookies seem to have a bad reputation, but are they as bad as they seem ?

    To start, what are cookies on the internet ?

    An internet cookie a.k.a. an HTTP cookie, is a small piece of data sent from websites that is stored on your computer or mobile when you visit that site.

    Are all cookies bad ?

    No. Cookies themselves are usually harmless as they can’t infect computers with malware. 

    They can also be helpful for both websites who use them and individuals visiting those websites. For example, when online shopping, cookies on ecommerce sites keep track of what you’re shopping for. If you didn’t have that tracking, your cart would be empty every time you moved away from that site.

    For businesses/websites, cookies can be used for authentication (logins) and tracking website user experience. For example, tracking multiple visits to the same site in order to provide better experiences to customers visiting their website.

    internet cookies tracking

    The not-so-sweet types of cookies :

    Cookies that contain personal data

    Another example of a bad cookie is when cookies contain personal data directly in the cookie itself. For example, when websites store demographics or your name in a cookie ; or when a website stores survey results in a cookie. Use of cookies in these ways is considered bad practice nowadays.

    Third-party cookies

    They can be used by websites to learn about your visit and activity across multiple websites. Cookies can enter harmful territory when employed for “big brother” types of tracking i.e. when they’re used to build a virtual fingerprint of individuals after their activity is tracked from website to website. For example most advertising networks create third party cookies in your browser when you view an ad, which lets these advertisers track users across these websites and let companies buy more targeted ads.

    Why does Matomo use cookies ?

    web analytics cookies

    For accurate reporting of new and returning visitors. Matomo uses cookies to store some information about visitors between visits. We also use cookies to remember if someone gave consent to tracking, or opted out of tracking. 

    Types of cookies Matomo uses :

    • Matomo by default uses first-party cookies, set on the domain of your site.
    • Cookies created by Matomo start with : _pk_ref_pk_cvar_pk_id_pk_ses. See a list of all Matomo cookies : https://matomo.org/faq/general/faq_146/

    Cookie-less tracking - disable cookies and ensure cookie compliance :

    It’s possible to disable tracking cookies in Matomo by adding a line on the javascript code. When cookies are disabled, Matomo data will become slightly less accurateAlso, when cookies are disabled, there may still be a few cookies created in specific cases.

    If you disable cookies, Matomo tries to detect unique visitors by a fingerprint based on a few browser attributes : operating system, browser, browser plugins, IP address and browser language.

    By disabling tracking cookies, you may also use Matomo without needing to display a cookie consent screen. You can also keep tracking when they reject cookie consent by keeping cookies disabled.

    Cookies and the GDPR

    In some countries and according to the GDPR, websites need to provide a way for users to opt-out of all tracking, in particular tracking cookies.

    The GDPR regulates the use of cookies when they compromise an individual’s privacy. When cookies can identify an individual, it is considered personal data.

    cookies and GDPR

    Cookie compliance and the GDPR

    To be GDPR compliant you must :

    • Receive user consent before using any cookies (except strictly necessary cookies). Read more on cookies that are “clearly exempt from consent”.
    • Provide accurate and specific information about the data each cookie tracks and its purpose in plain language before consent is received.
    • Document and store consent received from users.
    • Allow users to access your service even if they refuse to allow the use of certain cookies
    • Make it as easy for users to withdraw their consent as it was for them to give their consent in the first place.

    Source : https://gdpr.eu/cookies/

    When does GDPR require cookie consent ?

    The purpose of the GDPR is to give individuals control over their personal data. As such this regulation has provisions and requirements which regulate the processing of personal data to protect the privacy of individuals. 

    This means in order to use cookies, you will sometimes need explicit consent from those individuals.

    When does GDPR not require cookie consent ?

    Then there are many cookies that generally do NOT require consent (Source : https://wikis.ec.europa.eu/display/WEBGUIDE/04.+Cookies). 

    These are :

    • user input cookies, for the duration of a session
    • authentication cookies, for the duration of a session
    • user-centric security cookies, used to detect authentication abuses and linked to the functionality explicitly requested by the user, for a limited persistent duration
    • multimedia content player session cookies, such as flash player cookies, for the duration of a session
    • load balancing session cookies and other technical cookies, for the duration of session
    • user interface customisation cookies, for a browser session or a few hours, when additional information in a prominent location is provided (e.g. “uses cookies” written next to the customisation feature)

    Tracking cookies and consent vs legitimate interest

    cookie consent and GDPR legitimate interests

    User consent is not always required :

    We understand that whenever you collect and process personal data, you need – almost always – to ask for their consent. However, there are instances where you have to process data under “legitimate interests”. The GDPR states that processing of personal data is lawful “if processing is necessary for the purposes of the legitimate interests”. This means if you have “legitimate interests” you can avoid asking for consent for collecting and processing personal information. Learn more : https://cookieinformation.com/resources/blog/what-is-legitimate-interest-under-the-gdpr 

    A lawful basis for processing personal data (proceeding with caution) :

    We’ve also written about having a lawful basis for processing personal data under GDPR with Matomo. The caveat here is you need to have a strong argument for legitimate interests. If you are processing personal data which may represent a risk to the final user, then getting consent is, for us, still the right lawful basis. If you are not sure, at the time of writing ICO is providing a tool in order to help you make this decision.

    How is Matomo Analytics GDPR compliant ?

    Matomo can be configured to automatically anonymise data so you don’t process any personal data. This allows you to completely avoid GDPR. If you decide to process personal data, Matomo provides you with 12 steps to easily comply with the GDPR guidelines.

    New developments on cookies and the GDPR

    In the early days of the GDPR, a spate of cookie management platforms (CMPs) popped up to help websites and people comply with GDPR rules around cookies.

    These have become problematic in recent years. Europe’s highest court ruled pre-checked box for cookie boxes does not give enough consent

    As well as that, new research suggests most cookie consent pop-ups in the EU fall short of GDPR. A new study called, ‘Dark Patterns after the GDPR’ from MIT, UCL and Aarhus University found that a vast majority of websites aren’t following GDPR rules around cookies. The study found most cookie consent pop-ups in the EU to be undermining the GDPR by finding sneaky ways to convince website visitors to click ‘accept’.

    Disclaimer

    We are not lawyers and don’t claim to be. The information provided here is to help give an introduction to issues you may encounter when dealing cookies. We encourage every business and website to take data privacy seriously and discuss these issues with your lawyer if you have any concerns. 

    Additional resources :