ID.nl logo
DMA, DSA, AI Act: wat betekenen deze EU-wetten voor jou als gebruiker?
© ake1150 - stock.adobe.com
Huis

DMA, DSA, AI Act: wat betekenen deze EU-wetten voor jou als gebruiker?

De invoering van de AVG is voor de EU slechts het begin van een reeks alomvattende regelgevingen voor het afdwingen van een veilige, eerlijke en transparante digitale omgeving. We bespreken kort wat er de laatste tijd gerealiseerd is en bekijken wat de impact op ons als gebruiker is.

Dit artikel behandelt de belangrijkste nieuwe EU-verordeningen: DMA, DSA, DGA en AI Act. We bespreken wat elke verordening inhoudt en gaan de impact na die je als gebruiker kunt (gaan) ervaren bij enkele bekende diensten.

Lees ook: AI voor iedereen, en hoe de wereld verandert

De AVG (Algemene verordening gegevensbescherming, ook bekend als GDPR) is inmiddels al zes jaar van kracht binnen de hele EU. Deze wetgeving beschermt de persoonlijke gegevens en privacy van EU-burgers en regelt hoe bedrijven en instanties deze gegevens moeten behandelen, zelfs buiten de EU. Het kernprincipe van de AVG is dat er toestemming nodig is voor het verzamelen of verwerken van persoonlijke gegevens. Gebruikers hebben het recht om te weten welke data van hen worden bewaard en gebruikt, en moeten de mogelijkheid hebben om hun gegevens te verplaatsen naar een andere serviceprovider (dataportabiliteit). Ze kunnen bovendien eisen dat hun gegevens worden gewist, wat bekend staat als het recht om vergeten te worden. Organisaties die deze regels overtreden kunnen hoge boetes krijgen, zo kreeg het Chinese bedrijf ByteDance (TikTok) in 2024 een boete van 345 miljoen euro voor het schenden van de privacy van kinderen.

Een minder prettig uitvloeisel van deze wetgeving is de verschijning van pop-ups die gebruikers bij het bezoeken van websites vragen naar hun cookievoorkeuren.

De AVG-regelgeving sluit naadloos aan bij de EU-strategie om gebruikersrechten te beschermen, marktmonopolies te bestrijden, innovatie te stimuleren en ethische normen te stellen voor het gebruik van gegevens en inmiddels ook van kunstmatige intelligentie. Recent zijn er extra regelgevingen aangenomen die deze strategie verder uitbouwen. We bespreken de belangrijkste verordeningen: DMA, DSA, DGA en AI Act.

©mixmagic

AVG, DMA, DSA, DGA en AI Act: verschillende pijlers binnen dezelfde EU-strategie voor een veilige, eerlijke en transparante digitale omgeving.

Digital Markets Act

De Digital Markets Act (DMA), ook bekend als de Verordening inzake digitale markten, werd in september 2022 door het Europees Parlement en de Europese Raad vastgesteld en is sinds mei 2023 van toepassing. De DMA streeft naar een gelijkwaardiger speelveld in de digitale sector door het marktmonopolie van techgiganten te doorbreken en zo meer competitie tussen online bedrijven te bevorderen.

Vooral grote digitale platformen die kernplatformdiensten als messenger-diensten, online zoekmachines en appstores aanbieden, vallen onder deze regelgeving. Zij worden poortwachters (gatekeepers) genoemd en de bedrijven Alphabet (Google), Amazon, ByteDance, Apple, Meta en Microsoft behoren hier in ieder geval toe. De toewijzing van deze status gebeurt op basis van de gegenereerde omzet binnen en buiten de EU, maar de wetgever kan ook zelf bedrijven aanwijzen als poortwachters, op basis van hun marktpositie en de impact op de interne markt. Aangezien deze criteria niet strikt meetbaar zijn, leven sommige grote techbedrijven ongetwijfeld in onzekerheid over hun status als poortwachter. Immers, specifiek voor poortwachters legt de DMA verplichtingen en verboden op, met mogelijk fikse boetes tot tien procent van de wereldwijde jaaromzet voor overtredingen.

De DMA kent enkele verplichtingen. Zo moeten zakelijke gebruikers buiten het platform om hun producten kunnen promoten, moeten adverteerders de beschikking krijgen over tools om hun advertentiecampagnes onafhankelijk te kunnen beoordelen en moet er toegang zijn tot de data die op het platform worden gegenereerd. Ook zijn er expliciete verboden. De eigen diensten mogen in rangschikkingen niet voorgetrokken worden, vooraf geïnstalleerde software moet verwijderd kunnen worden, er moeten links naar externe diensten toegevoegd kunnen worden, en er mag niet meer zonder toestemming tracking ingezet worden voor gerichte advertenties buiten het eigen platform.

Deze maatregelen zullen vermoedelijk leiden tot een strategische verandering van fabrikanten en merken die minder afhankelijk willen zijn van één enkel online platform en hun activiteiten willen spreiden over meerdere kanalen en aanbieders.

©Europese Commissie

De zes poortwachters (met 22 kernplatformdiensten) zoals die op grond van de DMA officieel zijn toegewezen in 2023.

Koppelingen tussen diensten

De DMA heeft al zichtbare gevolgen voor gewone gebruikers zoals jij en ik, hoewel de wet nog niet lang van kracht is. Mogelijk heb je al meldingen gekregen van poortwachters waarin gevraagd wordt of je de koppelingen tussen hun verschillende internetdiensten wilt behouden of opheffen. Deze koppelingen bieden praktische voordelen, zoals het gebruik van één account en dezelfde inloggegevens om informatie te delen tussen verschillende diensten. Met één Apple ID kun je bijvoorbeeld inloggen bij iCloud, Apple Music, App Store en FaceTime; een voorbeeld van single sign-on. Dit geldt ook voor de ecosystemen van Google, met diensten als Gmail, Google Drive, Google Foto’s en YouTube, en eveneens voor Meta en Microsoft.

Deze koppelingen zijn niet alleen handig voor de gebruikers, maar bieden natuurlijk ook voordelen voor de bedrijven zelf, aangezien ze hierdoor jouw gegevens kunnen delen voor gerichte advertenties. Wil je je eigen koppelingen en instellingen nagaan, ga dan voor Google naar het onderdeel Gegevens en privacy in je account en scrol tot je bij Gekoppelde Google-services komt. Klik daar op de link Gekoppelde services beheren. Bij Meta vind je vergelijkbare opties en bij Microsoft onder Privacy / Privacyinstellingen in onze producten.

Je beslist zelf welke Google-diensten gegevens met elkaar uit mogen wisselen.

Gevolgen van de DMA

De DMA heeft nog andere duidelijke gevolgen voor Google, zo moet de zoekmachine nu prioriteit geven aan prijsvergelijkingssites, waardoor je minder aanbiedingen van Googles eigen verkooppartners ziet. Ook op Android moet Google gebruikers de vrijheid geven om hun voorkeursbrowser en zoekmachine te kiezen.

Apple ondergaat eveneens significante veranderingen. Vanaf iOS 17.4 is het mogelijk om apps buiten de officiële App Store om te installeren, via (binnenkort beschikbare) online winkels als Mobivention App Marketplace, AltStore en Setapp for Mobile. Verder moet het besturingssysteem betere ondersteuning bieden voor niet-WebKit-browsers, daarom krijg je bij de installatie van iOS nu een keuzescherm te zien waarin je voor een browser kunt kiezen. Ook moet de NFC-chip toegankelijk zijn voor andere aanbieders, zodat niet alleen Apple Pay contactloos betalen ondersteunt.

Bij Meta zie je de invloed van de DMA in de optie voor een advertentievrij abonnement voor Facebook en Instagram. Meta is ook bezig met het implementeren van cross-app messaging voor WhatsApp, wat communicatie met gebruikers van bijvoorbeeld Signal en Telegram mogelijk maakt. Deze functie bevindt zich op het moment van dit schrijven nog in bèta. Binnenkort zal er dus minder behoefte zijn aan software als Beeper, een universele chat-app waarmee je vanuit één interface verschillende chatnetwerken kunt gebruiken.

Ook Microsoft ontsnapt niet aan de DMA-regelgeving. Windows Zoeken mag bijvoorbeeld niet meer automatisch Bing-resultaten tonen en andere bedrijven mogen voortaan ook hun diensten aan de widgets toevoegen.

Op iOS apps installeren buiten de App Store om? Ja! Bijvoorbeeld met AltStore, maar (vooralsnog?) alleen binnen de Europese Unie.

Digital Services Act

De Digital Services Act (DSA, ook wel Verordening inzake digitale diensten) is de langverwachte opvolger van de e-commerce richtlijn uit 2000 en vormt samen met de DMA het DSA Package. Terwijl de DMA streeft naar een eerlijke en competitieve digitale economie, richt de DSA zich vooral op het waarborgen van de consumentenbescherming.

Vanaf augustus 2023 is de DSA van toepassing op de grootste digitale diensten, en vanaf februari 2024 moeten alle online services en dienstenplatforms eraan voldoen. De DSA richt zich specifiek op het voorkomen van illegaal gebruik van online diensten en het verantwoord en transparant aanbieden ervan. Platformen moeten effectieve maatregelen treffen om de inhoud te modereren, desinformatie te bestrijden, de gebruikersrechten te beschermen, en opruiende taal, terroristische propaganda en kindermisbruik voorkomen. Gebruikers moeten tevens ongepaste content snel kunnen melden en laten verwijderen.

Bedrijven zijn verder verplicht om de algoritmen die ze gebruiken en hun inhoudelijke beslissingen te verantwoorden, en hun data beschikbaar te stellen voor specifieke onderzoeksinstanties. Daarnaast is het aanbieden van gepersonaliseerde advertenties zonder toestemming niet langer toegestaan. Voor de grootste diensten zijn er extra regels, zoals de verplichting van regelmatige audits op algoritmes en systemen voor crisisrespons.

Online bedrijven moeten transparant(er) zijn over de gebruikte algoritmes (hier: Booking.com).

Grote online platformen

De DSA is dus merkbaar strenger voor de allergrootste diensten en platformen, maar welke diensten vallen hier precies onder? Volgens de DSA worden platformen en zoekmachines met meer dan 45 miljoen gebruikers per maand in de Europese Unie beschouwd als zeer grote online platformen (VLOPs; Very Large Online Platforms) of zeer grote online zoekmachines (VLOSEs; Very Large Online Search Engines). Deze indeling is gebaseerd op gegevens van 30 april 2024, maar bedrijven moeten deze om de zes maanden bijwerken. Op dit moment zijn er 23 VLOPs en VLOSEs. Even je geheugen trainen: kun je raden om welke techgiganten het zoal gaat?

Wat VLOSEs betreft, gaat het om Bing en Google Search. De 21 VLOPs zijn, in alfabetische volgorde: Alibaba AliExpress, Amazon Store, Apple App Store, Booking.com, Facebook, Google Maps, Google Play, Google Shopping, Instagram, LinkedIn, Pinterest, Pornhub, Shein, Snapchat, StripChat, TikTok, Wikipedia, X, XVideos, YouTube en Zalando.

©gguy - stock.adobe.com

Op dit moment zijn er 23 zeer grote online platformen en zoekmachines, waaronder diensten van de bekende techbedrijven.

Meer transparantie

De DSA heeft een significante impact op grote online bedrijven, al is het minder direct merkbaar voor gewone gebruikers. Een van de praktijken die wel specifiek wordt aangepakt door de DSA-regelgeving is dark patterning, waarbij websites en apps manipulatieve ontwerptechnieken gebruiken om gebruikers te misleiden of tot acties te verleiden die ze anders niet zouden uitvoeren. Dit kan onder meer misleidende interface-elementen omvatten, verborgen kosten of psychologische druk om impulsaankopen te doen, zoals de frase ‘Nog maar 2 items beschikbaar!’.

Bedrijven moeten ook transparanter zijn over hun advertentiebeleid. Een mooi voorbeeld hiervan is het Google Centrum voor Advertentietransparantie. Hier krijgen gebruikers binnen de Europese Unie gedetailleerde informatie over waarom ze een specifieke advertentie te zien krijgen. Google heeft tevens een nieuw Transparantiecentrum gelanceerd waar gebruikers meer informatie kunnen vinden over het beleid zelf, inclusief links naar rapportagetools en openbare rapporten.

Je kunt nagaan welke advertenties in welk land via Google zijn getoond.

Data Governance Act

Ook de Data Governance Act (DGA), van kracht sinds september 2023, sluit goed aan bij de filosofie van de EU. Het is een regelgevend kader dat is ontworpen om het delen van gegevens tussen bedrijven en overheden in de EU te bevorderen en te reguleren, en om gegevens gemakkelijker toegankelijk te maken. De DGA wil gebruikers meer vertrouwen geven bij het delen van hun gegevens, door middel van strikte maatregelen die het datagebruik streng reguleren. Tegelijkertijd wil de verordening het juist gemakkelijker maken gegevens te delen. Hierdoor kunnen innovatieve (databemiddelings)diensten en producten die afhankelijk zijn van gegevensstromen, zoals in de sectoren gezondheid, mobiliteit, milieu en landbouw, sneller worden ontwikkeld.

©dmutrojarmolinua - stock.adobe.com

DGA: een flinke stap naar een gemeenschappelijk Europees kader voor gegevensbeheer.

AI Act

Ongeveer drie jaar geleden lanceerde de Europese Commissie de AI Act, ook wel bekend als AI-verordening. Deze wet is nu in de laatste fase van onderhandeling en goedkeuring. De verordening richt zich vooral op de veiligheid en de fundamentele rechten van gebruikers binnen de ontwikkeling en het gebruik van kunstmatige intelligentie. Met deze uitgebreide AI-wetgeving loopt de EU wereldwijd voorop.

Door de snelle evolutie van AI zal het je niet verbazen dat er al diverse aanpassingen in het huidige akkoord zijn aangebracht ten opzichte van het oorspronkelijke voorstel. Je kunt de ontwikkelingen volgen op www.artificialintelligenceact.eu. Deze site bevat tevens een tool (AI Act Explorer) waarmee je de wet snel op specifieke onderdelen kunt doorzoeken.

Via een online tool kun je heel gericht binnen de AI Act zoeken.

Risico’s AI

Het basisprincipe van de AI Act blijft zoals het is: AI-toepassingen worden ingedeeld in risiconiveaus van laag naar hoog, wat de EU helpt burgers te beschermen zonder de economische groei te hinderen. De categorie Minimaal risico betreft veilige AI-systemen, zoals spamfilters, die vrijwel geen risico op schade vormen en daarom nauwelijks of geen impact van de wet ervaren. Systemen met Beperkt risico, zoals chatbots voor klantenservice moeten in elk geval duidelijk maken dat ze op AI draaien. Hoog risico-systemen zijn systemen die ingrijpend kunnen zijn voor individuele rechten of maatschappelijke waarden. Voorbeelden zijn AI voor examenbeoordelingen of sollicitaties, voor het beheer van infrastructuur, rechtshandhaving, grenscontroles en biometrie in de publieke ruimte. Zij moeten strenge eisen rond transparantie, datakwaliteit en toezicht naleven. Krijgt een toepassing het niveau Onacceptabel risico, dan worden fundamentele EU-waarden geschonden. Deze toepassingen zijn hoe dan ook verboden in de EU. Voorbeelden zijn AI voor sociale scores (onder meer toegepast in China), het overbrengen van verborgen boodschappen (subliminale technieken), predictive policing (voorspellen in hoeverre iemand crimineel gedrag zal vertonen) en emotieherkenning. Via www.artificialintelligenceact.eu/high-level-summary vind je meer informatie over de hoogste risicocategorieën.

De risiconiveaus van AI binnen de AI Act.

Ook voor generatieve AI

Toen de EU volop bezig was met de risicoanalyse, werden plots generatieve AI-tools als ChatGPT en Midjourney met enorm succes gelanceerd. Deze tools pasten niet goed in de systematiek van de AI Act, want die richtte zich vooral op AI-toepassingen voor een specifiek doel, vaak opgenomen in producten of commerciële diensten. Generatieve AI daarentegen bleek zeer breed inzetbaar en bereikte de EU-burger bovendien (gratis) vanuit een regio, de Verenigde Staten, die zich weinig aantrok van EU-rechtsbeginselen. Daarom werd er een extra hoofdstuk aan de AI Act toegevoegd, zodat ook GPAI (General Purpose AI, oftewel AI voor algemene doeleinden) gereguleerd kon worden. Dit bleek lastiger dan verwacht, aangezien LLMs (grote taalmodellen als GPT-4, BERT of Claude) en beeldgeneratoren als DALL-E en Stable Diffusion op diverse risiconiveaus kunnen worden ingezet, van het gezellige keuvelen (Minimaal) tot het verwerken van sollicitaties (Hoog) en het manipuleren van emoties (Onacceptabel).

Lees ook: Dall-E of SDXL: wie maakt betere plaatjes?

Op zich zijn de basisregels voor GPAI wel duidelijk: er geldt een transparantieverplichting, de output moet op een of andere manier, zoals met een onzichtbaar en niet te verwijderen watermerk, aangeven dat het AI-output is, en er moet voldoende technische documentatie zijn, inclusief een lijst van de gebruikte brondata. Bij opensource GPAI vervallen echter de meeste van deze verplichtingen. Anderzijds, als de Europese Commissie oordeelt dat de GPAI systemische risico’s inhoudt en schade kan berokkenen aan basisprocessen of -behoeftes in de samenleving, gelden er strengere regels.

Hoe dan ook, AI-bedrijven hebben nog veel werk voor de boeg om aan de AI Act te voldoen zodra deze volledig van kracht is. Onder meer auteursrechthebbenden volgen de ontwikkelingen met argusogen.

GPAI (zoals de generatieve chatbot ChatGPT) kan op verschillende risiconiveaus opereren.

 

▼ Volgende artikel
Mediaspeler kopen? Hier moet je op letten!
© Google
Huis

Mediaspeler kopen? Hier moet je op letten!

Een mediaspeler aanschaffen lijkt eenvoudig: de meeste modellen sluit je immers moeiteloos aan op een moderne tv of monitor en verbind je eenvoudig met het internet, via wifi of een netwerkkabel. Maar waar moet je verder op letten?

Ben je van plan een mediaspeler te kopen? Let dan in elk geval op de volgende drie belangrijke aspecten, waar we in dit artikel dieper op ingaan.

  • Resoluties en beeldtechnologieën (en welke je nodig hebt)
  • Beschikbare streamingdiensten (en welke jij gebruikt)
  • Het updatebeleid (en hoe de fabrikant het vroeger deed)

Een goede mediaspeler voldoet aan een aantal basisvereisten. Veel functies zijn echter zo vanzelfsprekend dat we daar in dit artikel niet diep op ingaan – denk aan aansluitingen, een afstandsbediening en verbindingsopties. Maar niet elke mediaspeler biedt dezelfde ervaring. Het overweldigende aanbod op de markt bewijst dat er grote verschillen kunnen zijn.

Beeldkwaliteit en resoluties

Wil je een toekomstbestendig apparaat? Kies dan minimaal voor 4K-ondersteuning en een vorm van HDR, zoals HDR10 of Dolby Vision. Welke HDR-standaard je nodig hebt, hangt af van de streamingdiensten die je gebruikt. Controleer dat dus van tevoren, zodat je zeker weet dat jouw content er tiptop uitziet.

Een handige tip: lees recensies als je twijfelt over specificaties. Sommige fabrikanten beloven meer dan ze daadwerkelijk leveren. Betrouwbare reviews – zowel van professionals als gebruikers – kunnen je behoeden voor een miskoop. En vergeet je internetsnelheid niet: voor 4K-streaming is minstens 25 Mbit/s nodig. In Nederland is dat meestal geen probleem, maar het is goed om even te checken.

©vladim_ka

Zijn jouw streamingdiensten beschikbaar?

Controleer ook even of jouw favoriete streamingdiensten beschikbaar zijn op het apparaat dat je overweegt. Bij Android TV kun je dat bijvoorbeeld eenvoudig nagaan via de Google Play Store. Maar let op: sommige apps zijn regio-afhankelijk en kunnen in Nederland ontbreken, zelfs als ze in de store staan.

Wil je zeker weten dat een app beschikbaar is? Bezoek dan de website van de fabrikant, vooral als je gebruikmaakt van minder gangbare streamingdiensten. Als je daar een downloadknop vindt voor Android TV, tvOS (Apple) of Amazon Fire, is dat een goed teken. Klik er wel even op om te zien of de app daadwerkelijk in jouw regio werkt. Goedkopere mediaspelers hebben vaak minder app-opties, dus goedkoop kan in dit geval ook duurkoop betekenen.

Hoe zit het met updates?

Het updatebeleid van mediaspelers is minder transparant dan dat van smartphones. Sommige apparaten krijgen jarenlang software- en beveiligingsupdates, terwijl andere al snel verouderd raken. Een goed voorbeeld is de Nvidia Shield TV, die na tien jaar nog steeds ondersteuning krijgt.

Apple en Google doen doorgaans niet veel uitspraken over updates, maar hun mediaspelers worden vaak langdurig ondersteund. De klassieke Chromecast kreeg bijvoorbeeld jarenlang updates en Apple TV-modellen blijven vaak lang compatibel met nieuwe softwareversies. Waarom is dat belangrijk? Zonder updates werken sommige apps na verloop van tijd niet meer. Een mediaspeler met een goed updatebeleid gaat dus langer mee.

▼ Volgende artikel
Van handmatig naar automatisch: scripts voor Gmail en Google Agenda
© Bilal Ulker - stock.adobe.com
Huis

Van handmatig naar automatisch: scripts voor Gmail en Google Agenda

Stel, je gebruikt Google-apps als Gmail, Agenda, Documenten of Spreadsheets, maar je mist een bepaalde functie in een van die apps. Met Google Apps Script voeg je die gewoon zelf toe. En dankzij slimme tools en trucs hoef je er nauwelijks voor te (kunnen) programmeren.

In dit artikel laten we zien hoe je Google Apps Script gebruikt om taken in Google te automatiseren:

  • Maak je eerste script in Google Apps Script
  • Verbind Google-apps met elkaar door middel van eenvoudige scripts
  • Stel geautomatiseerde e-mailantwoorden in
  • Maak een dagelijkse samenvatting van je Google Agenda in een Google-document

Gegrepen door coderen? Leren programmeren? Met deze tools is coderen geen geheimcode meer

Code downloaden

In dit artikel worden codevoorbeelden gegeven. Omdat het overtikken van dergelijke scripts erg foutgevoelig is, kun je ze beter downloaden en daarna bekijken of kopiëren. Via deze link vind je drie bestanden, één met de losse voorbeelden uit dit artikel en twee langere scripts die uitgelegd worden in paragraaf 6 en 7.

Stel dat je in Gmail een automatisch antwoord wilt instellen, maar alleen onder specifieke voorwaarden, bijvoorbeeld alleen wanneer een e-mail van een bepaalde afzender komt. Dan is het wel zo handig om ervoor te zorgen dat dit antwoord slechts één keer per persoon wordt verstuurd.

Met Google Apps Script, kortweg GAS, kun je zo’n voorwaardelijk antwoord instellen (vanaf paragraaf 5). GAS is een platform voor snelle applicatieontwikkeling binnen het ecosysteem Google Workspace. Hiermee maak je snel scripts die de functionaliteit van Google-apps uitbreiden of automatiseren.

GAS gebruikt JavaScript en biedt ingebouwde bibliotheken voor de meeste Google Workspace-apps, zoals Documenten, Spreadsheets, Agenda, Formulieren, Vertalen, Maps, Drive en Gmail. Deze bibliotheken zijn direct beschikbaar in de GAS-Editor, en je gebruikt ze door objecten aan te roepen, zoals SpreadsheetApp en DriveApp.

Om bijvoorbeeld een bereik in een actieve spreadsheet te openen, roep je de Google Spreadsheet-bibliotheek aan met:

var werkblad = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var gegevens = werkblad.getRange('A1:D15').getValues();

Maar nu slaan we wel een paar stappen over. En omdat dit artikel zich ook richt op lezers met wat minder script-ervaring, doen we een klein stapje terug.

GAS-quota

Google Apps Script is gratis beschikbaar, al heb je hiervoor wel een Google-account nodig. Je kunt een (extra) account aanmaken op www.google.com/account/about via de knop Account maken.

Gratis accounts hebben enkele beperkingen vergeleken met betaalde Google Workspace-accounts. Zo kun je maximaal 100 e-mails per dag versturen via MailApp, maar bijvoorbeeld wel 20.000 e-mails lezen. En je kunt tot 250 dia’s en spreadsheets maken. Voor een volledig overzicht van de quota voor zowel gratis als betaalde accounts kun je terecht op deze webpagina.

Je zult merken: zelfs met de limieten van een gratis account kun je al veel bereiken.

Met deze beperkingen in het gratis account valt eigenlijk best te leven.

1 Hallo, wereld!

Met je Google- of Workspace-account log je bijvoorbeeld in bij Google Documenten via https://docs.google.com. Daar kies je Leeg document. Of je gebruikt de verkorte url www.docs.new.

Open hier het tabblad Uitbreidingen en selecteer Apps Script. De editor opent in je browser, met een deelvenster voor je code, een werkbalk voor het uitvoeren en debuggen, en een logvenster voor uitvoer en fouten.

Laten we, zoals gebruikelijk in de programmeerwereld, de wereld begroeten met ons eerste script, dat je als volgt in het editor-venster typt:

function halloWereld() {
/boxLogger.log('Hallo, wereld!');
}

Klik op Naamloos project, geef dit een naam en bevestig met Naam wijzigen. Sla je script op in de cloud door op het diskette-icoon te klikken. Druk dan op Uitvoeren: onderaan in het Uitvoeringslogboek zie je meldingen over de start en het voltooien van het uitvoeren, en de werkelijke uitvoer: Hallo, wereld!

Wanneer je vervolgens surft naar https://script.google.com verschijnt je dashboard met onder meer een overzicht van Mijn projecten en Mijn uitvoeringen.

De wereld begroeten met je eerste script – zo hoort het.

2 Logs

Dit eenvoudige script spreekt eigenlijk voor zich, maar let op het gebruik van de .log()-methode van het ingebouwde Logger-object. Deze methode is namelijk handig om te volgen wat er in je script gebeurt of om te debuggen. Door de aanroep bijvoorbeeld vlak voor een mogelijk probleem te plaatsen, kun je de uitvoer van variabelen of berekeningen controleren terwijl het script draait.

Je plaatst het gewenste bericht of de variabele tussen haakjes, bijvoorbeeld:

function logVoorbeeld() {
var naam = 'Jeroen';
var leeftijd = 39;
Logger.log('Naam: ' + naam);
Logger.log('Leeftijd: ' + leeftijd);
}

Deze logberichten zijn trouwens alleen zichtbaar voor jou als scriptontwikkelaar.

Het is ook nuttig om weten dat je in JavaScript voor de waarde van een variabele zowel enkele als dubbele aanhalingstekens kunt gebruiken, maar je blijft best consistent binnen een project(script). Je kunt beide ook handig combineren, als volgt:

var zin = 'Toon zei: "Dit is mijn uitspraak!"';

Eventueel commentaar laat je voorafgaan door een dubbele slash (//). Merk ook op dat de editor zowel automatische voltooiing als gekleurde syntax ondersteunt, wat het scripten sneller en overzichtelijker maakt.

Je kunt het logboek ook gebruiken tijdens het proefdraaien en debuggen van je script.

3 Koppelen apps

Het is natuurlijk de bedoeling dat je je scripts daadwerkelijk gaat koppelen aan een Google-app. Hieronder volgen twee eenvoudige voorbeelden om dit te doen.

Je kunt bijvoorbeeld e-mailberichten via Gmail versturen met de .sendEmail()-methode van het MailApp-object:

function verzendEmail() {
MailApp.sendEmail('<ontvanger@domeinnaam.tld>', '<Onderwerp>', '<Berichtinhoud>');
}

Of je leest gegevens uit een Spreadsheets-werkblad en bewerkt deze:

function leesbewerkWerkblad() {
var werkblad = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var waarde = werkblad.getRange('A1').getValues();
Logger.log('Huidige waarde in A1: ' + waarde);
werkblad.getRange('A1').setValue('Nieuwe waarde!');
}

Voor dit tweede voorbeeld is er een actief Google-spreadsheet nodig. Ga hiervoor bijvoorbeeld naar www.sheets.new, vul een testwaarde in cel A1 in en selecteer Uitbreidingen / Apps script.

Vanuit de GAS-editor kun je trouwens ook op elk moment een nieuw script toevoegen door op de plusknop Een bestand toevoegen te klikken en Script te kiezen, waarna je direct een naam kunt invullen.

Meer documentatie over klassen en methoden in Google Apps Script vind je via deze link. Gevorderde gebruikers vinden hier ook informatie over het gebruik van Google-services, die met specifieke API’s via GAS toegankelijk zijn.

Bij een tweede scriptronde verschijnt in het uitvoeringslogboek ‘Nieuwe waarde!’.

4 Autorisatie

Zodra je je script opslaat en uitvoert, krijg je een melding dat je het moet autoriseren. Wil je het script alleen voor jezelf gebruiken, dan kun je dit privé houden, zodat er geen officiële verificatie nodig is. Klik in het meldingsvenster op Rechten controleren, selecteer je Google-account, klik op Geavanceerd, en kies Ga naar <scriptnaam> (onveilig), en druk op Toestaan. Je ontvangt ook een e-mailmelding van Google met de titel Security alert.

Als je het script alsnog wilt laten verifiëren voor gebruik door anderen, is dit wat complexer. Meld je aan bij de Google Cloud Console met het juiste Google-account. Klik op Select a project, selecteer je GAS-project of klik op New project (en geef het nieuwe project een naam), vul eventueel in het veld Location een locatie in en bevestig met Create. Selecteer het project, druk linksboven op het menu-icoon en ga naar APIs & Services / Credentials. Klik op Configure Consent Screen. Kies Internal om de app beschikbaar te maken voor gebruikers binnen je Workspace-domein of kies External om de app ook voor anderen beschikbaar te maken (dit laatste kan ook binnen de gratis proefperiode). Bevestig met Create en volg de verdere instructies. Bij External moet je nog aanvullende informatie verstrekken en een beoordeling door Google afwachten. Dit heeft dus wel wat voeten in de aarde.

Bij een heuse verificatie moet je kiezen of je je app intern of extern beschikbaar wilt maken.

5 Automatisch antwoord

We hebben al enkele voorbeelden van scripts gezien die aan een Google-app zijn gekoppeld, maar veel functioneel nut zat er nog niet in. Laten we daarom enkele bruikbare voorbeelden doornemen: een voor Gmail en een voor Google Agenda.

In het begin van dit artikel vermeldden we al het instellen van een voorwaardelijk automatisch antwoord in Gmail. Dit vergt enige voorbereiding.

Klik in Gmail op het schuifbalk-knopje rechts van de zoekbalk, vul bij Van het e-mailadres van de gewenste afzender(s) in en laat de overige velden leeg. Klik op Filter maken, vink de optie Het label toepassen aan, kies Nieuw label en geef het label een naam, bijvoorbeeld automatischantwoord-in. Bevestig met Maken om binnenkomende e-mails van de opgegeven afzenders automatisch aan dit label (een soort mailmap) te koppelen.

Maak vervolgens in het linkermenu met de plusknop bij Labels een tweede label aan, bijvoorbeeld automatischantwoord-uit.

Maak eerst twee labels in Gmail.

6 Antwoord-script

Nu heb je nog een script nodig dat regelmatig checkt welke e-mails het label automatischantwoord-in hebben en automatisch antwoordt naar de afzenders. Deze mails krijgen vervolgens het label automatischantwoord-uit zodat er geen tweede antwoord wordt verstuurd.

Open hiervoor je GAS-editor en maak een script. De benodigde code met commentaar vind je in het document GAP-script_Automatisch_Antwoord.txt. Geef dit script een naam, bijvoorbeeld autoAntwoord, en bewaar het. Klik in het menu op het wekkerpictogram Triggers en kies rechtsonder Trigger toevoegen. Selecteer de juiste functie (autoAntwoord), stel de optie Selecteer afspraakbron in op Op basis van tijd, kies als type bijvoorbeeld Minutentimer met als interval Elke 30 minuten. Bevestig met Save en autoriseer het script zoals uitgelegd in paragraaf 4.

Het script draait nu op de ingestelde frequentie. Test het gerust en de werking controleer via het menu Uitvoeringen.

Het script in werking: label lezen en toekennen, en automatisch antwoord versturen.

7 Agenda-synopsis

In het bestand GAP-script-Agenda-synopsis.txt, vind je een tweede script dat verbinding maakt met zowel Google Agenda als Google Documenten (Drive). Dit script maakt dagelijks een samenvatting van je agenda in een document binnen een specifieke map.

Voor de voorbereiding maak je deze map aan in Google Drive. Vervolgens heb je de ID van de map nodig: open de map in je browser en kopieer alles na /folders/ in de url.

Plak deze ID in het script bij:

var mapId = "JOUW_MAP_ID_HIER"

Om dit script automatisch op gezette tijden te laten draaien, voeg je een trigger toe. Selecteer hier de functie dagelijkseAgendaNaarDocument en stel een tijd-gebaseerde trigger in, bijvoorbeeld Dagtimer tussen 6:00 uur en 7:00 uur. Vergeet niet het script te autoriseren.

In het Uitvoeringslogboek vind je de url (https://docs.google.com/open?id=<…>) naar het document met je agendaoverzicht. Natuurlijk kun je ook naar de map in Google Drive gaan om het document te bekijken en het is ook prima mogelijk om dit document bijvoorbeeld direct naar je mailbox te sturen.

Lees de agenda in en neem een dagelijkse samenvatting op in een Google-document.

8 IFTTT: If This

Je kunt automatiseringen verder uitbreiden door een dienst als IFTTT te gebruiken. Stel dat je een nieuwe rij wilt toevoegen aan een Google Spreadsheet iedere keer wanneer er een nieuw Gmail-bericht binnenkomt met een specifiek onderwerp. Gebruik hiervoor dit GAS-script:

function voegtoeAanWerkblad(onderwerp, afzender) {
const werkblad= SpreadsheetApp.openById('JE_SPREADSHEET_ID');
werkblad.appendRow([new Date(), onderwerp, afzender]);
}

Vervang JE-SPREADSHEET_ID door de ID in de url van je spreadsheet (alles tussen /d/ en /edit). Bewaar en autoriseer het script, en implementeer het als web-app (zie het kader ‘Implementaties’). Voeg een beschrijving toe en bij Wie heeft toegang kun je Iedereen instellen. Na bevestiging met Implementeren verschijnt de url met de implementatie-ID van je web-app. Kopieer en bewaar hem.

Log vervolgens in bij IFTTT, klik op Create en daarna op If This. Selecteer Email als service en kies Send IFTTT an email tagged. Vul als label bijvoorbeeld toevoegen in om te bepalen welke e-mails als trigger zullen gelden. Bevestig met Create trigger.

Dit script wordt als web-app geïmplementeerd.

Implementaties

In de GAS-editor vind je rechtsboven de knop Implementeren. Deze optie bespreken we kort, omdat je deze vooral gebruikt om je script openbaar te maken of bruikbaar te maken buiten de editor. Wanneer je Nieuwe implementatie selecteert, heb je verschillende mogelijkheden.

Je kunt uit de keuzelijst Type selecteren kiezen voor de optie Web-app. Hiermee is het script toegankelijk via een url voor een interactieve toepassing (zie ook paragraaf 9). Je kunt de functies van je script ook toegankelijk maken met de optie Uitvoerbaar API-bestand, zodat deze via http-verzoeken vanuit andere applicaties of diensten aanroepbaar zijn.

De derde optie is Add-on, waarmee je het script kunt integreren met een Google Workspace-app zoals Gmail of Google Documenten, bijvoorbeeld voor een aangepast menu of taakbalk. Tot slot kun je het script met de optie Bibliotheek opslaan en je project delen, zodat anderen er ook gebruik van kunnen maken.

Deze implementatiemogelijkheden zijn eveneens beschikbaar voor gratis accounts, maar er zijn wel bepaalde voorwaarden en limieten aan verbonden.

Je kunt je scripts ook zo implementeren dat anderen ze kunnen gebruiken.

9 IFTTT: Then That

Klik daarna op Then That en selecteer Webhooks als service. Hiervoor heb je wel een IFTTT Pro-account nodig (gratis één week proef, daarna circa 3 euro per maand).

Kies Make a web request, klik op Connect, en vul deze gegevens in:

Url: <webapp-url-met-implementatie-Id>

Method: POST

Content_type: application/json

Body:

{
"onderwerp": "{{Subject}}",
  "afzender": "{{From}}"
}

Bevestig met Create action en druk op Continue. Je ziet hier het e-mailadres van IFTTT (trigger@applet.ifttt.com) en jouw gekoppelde Gmail-adres, samen met de eerder ingevulde tag #toevoegen. Rond af met Finish.

Ga nu naar Gmail en test deze automatisering door een bericht naar trigger@applet.ifttt.com te sturen, met #toevoegen in de onderwerpsregel.

Je kunt via Instellingen / Alle instellingen bekijken / tabblad Filters en geblokkeerde adressen eventueel ook binnenkomende mail met het label #toevoegen in de onderwerpregel automatisch laten doorsturen naar het IFTTT-adres.

De IFTTT-applet werd getriggerd en zet via de webhook ons script in werking.

10 Veel of weinig code?

Met GAS kun je dus al veel doen, al dan niet in combinatie met automatiseringstools als IFTTT of Zapier. Het Google Apps Script-platform zegt zelf een zogenoemd low-code-platform te zijn: geschikt voor mensen met minder programeerervaring. Maar als je de door ons gemaakte voorbeeldscripts bekijkt, valt die beloofde low-code-aanpak wat tegen: de scripts lijken vooral geschikt te zijn voor meer ervaren ontwikkelaars. Toch zijn er technieken en tools om ook complexe GAS-scripts te gebruiken zonder (veel) programmeerkennis.

Zo vind je op internet kant-en-klare sjablonen (zie de genoemde links onderaan), en specifiek voor Google Spreadsheets kun je de macro-opnamefunctie inschakelen via Uitbreidingen / Macro’s / Macro opnemen. Neem een macro op, sla deze op, en bekijk of bewerk de macro via de GAS-editor die automatisch opent.

Daarnaast biedt Google AppSheet een gratis no-code-platform met visuele interface en sjablonen voor het bouwen van scripts en apps voor Google Spreadsheets en Drive.

De kers op de taart is AI in de vorm van een chatbot. OpenAI ChatGPT-4o is een van de beste taalmodellen op dit moment en is tegen de tijd dat je dit leest wellicht ook voor gratis accounts beschikbaar met canvas-functionaliteit.

Meld je aan bij ChatGPT en kies (indien beschikbaar) ChatGPT 4o with canvas. Geef uitgebreide instructies voor het beoogde Google Apps-script en vraag om verhelderende Nederlandstalige uitleg. De kans is bestaat dat de gegenereerde code in je GAS-editor meteen werkt. Zo niet, leg uit wat er misgaat, omschrijf eventuele (fout)meldingen en stap voor stap kom je dan meestal toch een werkend eindresultaat.

ChatGPT 4o met canvas: snel gegenereerde code die vaak meteen werkt.