# Szkriptek kezelése hozzájárulással

> Aszinkron szkriptek, beágyazott szkriptek kivétele a blokkolásból és modulszkriptek kezelése.

## Aszinkron szkriptek a szkriptközponton kívül

A 6.0-s verziótól ezek a funkciók nincsenek közvetlenül a szkriptközpontba építve. Ha a Complianzon kívüli kódkezelővel adsz JavaScriptet az oldalhoz (például egy Google remarketing pixelt), az aszinkron módon betöltődő szkriptekhez neked kell hozzájárulás-kezelést adnod. Kódkezelőn itt azt értjük, ha a kódot magad írod a `header.php` fájlba, vagy erre szolgáló bővítményt használsz. Ez nem a Google Tag Managert használóknak szól.

### Az aszinkron szkript felismerése

Az aszinkron szkriptet a nyitó sorról ismered fel: `script async src=` áll benne. Az ilyen szkript a normál sorrenden kívül, a többivel egyidejűleg töltődik be.

### Hozzájárulás beállítása

A szkriptközpontban az aszinkron szkriptek egyelőre nem működnek. Add a kódot a `header.php` vagy a `footer.php` fájlhoz, esetleg egy Header Footer Code Manager jellegű bővítménnyel. A hozzájárulást attribútumokkal állíthatod be:

```html
<script data-category="marketing" async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
<script data-category="marketing">
  // a szkript tartalma
</script>
```

A `data-category` értéke `functional`, `preferences`, `statistics` vagy `marketing` lehet. Szolgáltatás szerint is megadható a hozzájárulás a `data-service` attribútummal:

```html
<script type="text/plain" data-category="statistics" data-service="matomo"></script>
<iframe data-category="marketing" data-service="youtube"></iframe>
```

## Beágyazott szkript kivétele a blokkolásból

A Complianz reguláris kifejezéssel keresi a külső szolgáltatásokat a beágyazott (inline) szkriptekben. Előfordulhat téves találat. Példa: egy podcastlejátszó beágyazott szkriptje közösségimédia-linkeket is tartalmaz, köztük `instagram.com`-ot. Ha az Instagram be van kapcsolva a Complianzban, a bővítmény blokkolja a szkriptet hozzájárulás előtt is, pedig a lejátszó nem hív Instagram-szolgáltatást, és nem tesz harmadik féltől származó sütit. Az ilyen eset ritka, de megtörténhet.

A megoldás: add meg a szkript azonosítóját vagy egy egyedi részletét a kivételek között.

1. Nyisd meg a **Complianz → Integrations → Script Center** területet.
2. A harmadik listánál (engedélyezési lista) kattints az **Új hozzáadása** gombra.
3. Add meg a szkript URL-jét vagy azonosítóját (vagy egy egyedi részletét), majd mentsd. Részletek: [Integrációk és a szkriptközpont](https://hub.hellowp.io/hu/plugins/complianz-gdpr-premium/integraciok-szkriptkozpont/).

Szűrővel is megoldható: a `cmplz_whitelisted_script_tags` szűrő egy tömböt ad vissza, amelyhez hozzáadhatod a kivételbe tett szkript azonosítóját vagy egyedi szövegrészét. A szűrő alapértéke a `user_banner_id` elemet tartalmazó tömb.

```php
add_filter( 'cmplz_whitelisted_script_tags', function( $tags ) {
    $tags[] = 'a-szkript-egyedi-resze';
    return $tags;
} );
```

## Modulszkriptek (`type="module"`)

A Complianz felismeri a beágyazott modulszkriptekben az importot a `type` megadásából. A modulszkript típusát azonban nem tudja megváltoztatni anélkül, hogy elromlana, ezért ezeknél kevesebb a lehetőség:

- nem használhatod a szemcsés hozzájárulási típusattribútumokat (a `data-category` jellegű megoldást);
- nem adhatod hozzá a szkriptet a Complianzzal, mert a `type=module` szkripteket a bővítmény nem csomagolja be;
- a szkriptközpont harmadik fél URL-jét blokkoló lehetőségét kell használnod.

Tehát a szkriptet magadnak kell beilleszteni az oldalra, majd a szkriptközpontban kiválasztod a kategóriát, és megadsz egy blokkolandó URL-t. Érdemes a szkript legegyedibb részét választani (például a szolgáltatás nevét az URL-ben).
