Site icon Blog ARC Optimizer

DĂ©sactivation des cookies dans Sitecore SDKS / Blogs / Perficient

DĂ©sactivation des cookies dans Sitecore SDKS / Blogs / Perficient


Intro 📖

Dans cet article, nous allons jeter un Ɠil Ă  quelques SDK Sitecore couramment utilisĂ©s pour crĂ©er des applications de tĂȘte de cloud XM. Plus prĂ©cisĂ©ment, nous examinerons comment dĂ©sactiver les cookies utilisĂ©s par ces SDK. Cela peut ĂȘtre utile pour des raisons de confidentialitĂ© des donnĂ©es et / ou de conformitĂ© rĂ©glementaire. Ces SDK permettent Ă  votre application de s’intĂ©grer Ă  d’autres services de Sitecore composables comme l’analyse, la personnalisation et la recherche. Les cookies que ces SDK utilisent doivent ĂȘtre pris en compte dans le cadre de la stratĂ©gie globale de protection des donnĂ©es de votre application.

Il convient de noter que, mĂȘme sans aucun SDK supplĂ©mentaire, une application XM Cloud Head peut Ă©mettre des cookies; voir Cookies de visiteurs de nuages ​​XM pour plus d’informations.

SDK Cloud Sitecore ☁

Le SDK Cloud Sitecore permet aux dĂ©veloppeurs de s’intĂ©grer avec les produits Digital Experience Platform (DXP) de Sitecore. Il s’agit notamment du CDP Sitecore, de la personnalisation de Sitecore, etc. Vous pouvez lire la documentation officielle ici. Pour en savoir plus sur les cookies de premier parti utilisĂ©s par ce SDK, voir Cookies SDK Cloud. Ces cookies comprennent:

  • sc_{SitecoreEdgeContextid}
    • StockĂ© dans le navigateur lorsque la fonction d’initialisation du SDK est appelĂ©e (plus sur cette fonction plus tard).
  • SC_ {SitecoreEdgeContextid} _Sersonalize
    • NĂ©cessaire pour exĂ©cuter des tests A / B / N; configurĂ© dans le AddPersonalize () fonction. Également stockĂ© dans le navigateur lorsque la fonction d’initialisation est appelĂ©e.

📝 Sitecore travaille activement Ă  l’intĂ©gration des SDKS de Sitecore disparates dans le SDK Cloud Sitecore. La derniĂšre version, 0,5a Ă©tĂ© publiĂ© le 29 janvier 2025 et a ajoutĂ© des capacitĂ©s de recherche (voir le cloud XM changelog entrĂ©e ici). Comme le chef de produit technique de Sitecore, Christian Hahn ce rĂ©cent DĂ©couvrez Sitecore VidĂ©o YouTube:

« [the] Le sdk cloud n’est pas un autre SDK Sitecore – c’est le SDK Sitecore.

Il est sĂ»r de supposer que, finalement, le SDK Cloud Sitecore sera les seuls dĂ©veloppeurs du SDK Sitecore doit inclure dans leurs applications de tĂȘte pour s’intĂ©grer Ă  toutes les autres offres DXP Sitecore (ce qui sera bien 👌).

â„č Pour le reste de ce post, supposons qu’un Avant 0,5 La version du SDK Cloud est utilisĂ©e, par exemple, 0.3.0– toute version qui n’a pas Incluez les widgets de recherche (de sorte que la rĂ©action de la recherche JS SDK est toujours requise).

Sitecore Search JS SDK pour React 🔍

La recherche JS SDK pour React permet aux dĂ©veloppeurs de crĂ©er des composants tels que des barres de recherche, des composants de rĂ©sultats de recherche, etc. Ces composants interagissent avec les sources de recherche dĂ©finies et indexĂ©es dans Recherche de Sitecore. Vous pouvez lire la documentation officielle ici. Alors que la derniĂšre version du SDK Cloud comprend certaines dĂ©pendances de recherche, pour les applications plus anciennes Next.js utilisant des versions plus anciennes du SDK Cloud, le SDK JS de recherche peut toujours ĂȘtre utilisĂ© pour crĂ©er des interfaces de recherche.

Le SDK de recherche JS pour React utilise un cookie pour suivre le contexte des événements appelés __ (référence). Ce SDK est historiquement basé sur Sitecore Discover dont les cookies sont également documentés icipar exemple, __rutma.

â„č Pour le reste de cet article, supposons cette version 2.5.5 de la recherche JS SDK pour React est utilisĂ©.

Le problĂšme đŸ™…â€ïž

Disons que votre projet Cloud XM exploite JSS pour next.js, y compris le complĂ©ment multisite. Ce module complĂ©mentaire (qui est inclus dans le kit de dĂ©marrage officiel Par dĂ©faut) permet Ă  une seule application Next.js de conduire plusieurs sites sans tĂȘte. Ensuite, supposons que certains de ces sites opĂšrent en dehors des États-Unis et sont potentiellement soumis Ă  diffĂ©rentes lois sur la protection des donnĂ©es et la confidentialitĂ©. Enfin, supposons que tous les sites n’utiliseront pas l’ensemble des fonctionnalitĂ©s complĂštes de ces SDK. Par exemple, que se passe-t-il si quelques sites sont petits et n’ont pas du tout besoin de s’intĂ©grer Ă  la recherche Sitecore?

Comment dĂ©sactivez-vous les cookies Ă©crits au navigateur lorsque le SDK de recherche Le composant est initialisĂ©? MĂȘme si les petits sites n’utilisent pas de widgets de recherche sur aucune de leurs pages, la la composante est (gĂ©nĂ©ralement) incluse dans le Disposition.tsx fichier et est toujours initialisĂ©. Nous ne voulons pas supprimer le composant depuis d’autres sites faire Utilisez des widgets de recherche et nĂ©cessitez le composant.

Ces SDK peuvent-ils ĂȘtre configurĂ©s pour ne pas crĂ©er de cookies sur le navigateur client?

La solution ✅

🚹 D’abord et avant tout (avant de savoir comment dĂ©sactiver les cookies utilisĂ©s par ces SDK), sachez que vous devez vous assurer que votre application est conforme Ă  toutes les lois sur la confidentialitĂ© et la protection des donnĂ©es des donnĂ©es auxquelles il est sujet. Cela inclut les utilisateurs de se dĂ©sabonner Ă  tous les cookies de navigateur. PrĂ©fĂ©rences de cookies, leur gestion, solutions tierces, RGPD, CCPAetc. sont tous d’excellents sujets mais sont bien en dehors de la portĂ©e de ce post. Pour commencer, reportez-vous Ă  la documentation de Sitecore sur confidentialitĂ© des donnĂ©es Pour comprendre qui est responsable de la crĂ©ation d’une application Cloud XM.

Avec ce petit avertissement Ă  l’écart, les crochets programmatiques discutĂ©s dans les sections ci-dessous peuvent ĂȘtre utilisĂ©es en conjonction avec la solution de gestion des cookies qui a du sens pour votre application. Supposons que, pour ces petits sites opĂ©rant dans diffĂ©rentes gĂ©ographies qui ne nĂ©cessitent ni CDP ni recherche, nous voulons simplement dĂ©sactiver complĂštement les cookies de ces SDK.

Pour désactiver les cookies SDK cloud:

La version courte: juste ne le faites pas Appelez les SDK init () fonction 😅. Cela peut ĂȘtre fait pour ajouter une variable d’environnement et vĂ©rifier sa valeur dans le . \ src \ \ src \ lib \ context \ sdk \ events.ts dossier et retourne tĂŽt ou lancer avant l’appel Ă  Events.init ():

import * as Events from '@sitecore-cloudsdk/events/browser';
import { SDK } from '@sitecore-jss/sitecore-jss-nextjs/context';

const sdkModule: SDK<typeof Events> = {
  sdk: Events,
  init: async (props) => {
    // Events module can't be initialized on the server side
    // We also don't want to initialize it in development mode
    if (typeof window === 'undefined')
      throw 'Browser Events SDK is not initialized in server context';
    if (process.env.NODE_ENV === 'development')
      throw 'Browser Events SDK is not initialized in development environment';
    // We don't want to initialize if the application doesn't require it
    if (process.env.DISABLE_CLOUD_SDK === 'true') // <===== HERE
      throw 'Browser Events SDK is not initialized for this site';

    await Events.init({
      siteName: props.siteName,
      sitecoreEdgeUrl: props.sitecoreEdgeUrl,
      sitecoreEdgeContextId: props.sitecoreEdgeContextId,
      // Replace with the top level cookie domain of the website that is being integrated e.g ".example.com" and not "www.example.com"
      cookieDomain: window.location.hostname.replace(/^www\./, ''),
      // Cookie may be created in personalize middleware (server), but if not we should create it here
      enableBrowserCookie: true,
    });
  },
};

export default sdkModule;

En n’appelant pas Events.init ()les cookies ne sont pas Ă©crits au navigateur.

📝 Notez que dans les versions plus rĂ©centes du kit de dĂ©marrage XM Cloud Ă  l’aide du SDK Cloud, la fonction initialisĂ©e peut ĂȘtre dans le Bootstrap.tsx dĂ©poser; Cependant, le mĂȘme principe s’applique – n’appelez pas le initialiser() Fonction en retournant tĂŽt ou en configurant des conditions de telle sorte que la fonction n’est jamais appelĂ©e.

Pour la cohĂ©rence, en supposant que votre application utilise l’OOTB CdppageView.tsx Composant, vous voudriez probablement faire quelque chose de similaire dans ce composant. Par dĂ©faut, les Ă©vĂ©nements de vue de la page sont dĂ©sactivĂ©s lorsque dĂ©veloppement mode. Ajoutez simplement une autre condition pour vous assurer que la valeur de retour de dĂ©sactivĂ©() est vrai:

import {
  CdpHelper,
  LayoutServicePageState,
  useSitecoreContext,
} from '@sitecore-jss/sitecore-jss-nextjs';
import { useEffect } from 'react';
import config from 'temp/config';
import { context } from 'lib/context';

/**
 * This is the CDP page view component.
 * It uses the Sitecore Cloud SDK to enable page view events on the client-side.
 * See Sitecore Cloud SDK documentation for details.
 * https://www.npmjs.com/package/@sitecore-cloudsdk/events
 */
const CdpPageView = (): JSX.Element => {
  ...
  /**
   * Determines if the page view events should be turned off.
   * IMPORTANT: You should implement based on your cookie consent management solution of choice.
   * By default it is disabled in development mode
   */
  const disabled = () => {
    return process.env.NODE_ENV === 'development' || process.env.DISABLE_CLOUD_SDK === 'true'; // <===== HERE
  };
  ...
  return <></>;
};

export default CdpPageView;

Pour désactiver la recherche JS SDK pour les cookies React (Sitecore Discover):

Le composant (importĂ© de @ Sitecore-Search / React) comprend une propriĂ©tĂ© nommĂ©e TrackConsent (documentĂ© ici) et il contrĂŽle exactement cela – que ce soit ou non le suivi des cookies liĂ©s aux actions des visiteurs. DĂ©finition de la valeur de cette propriĂ©tĂ© sur FAUX dĂ©sactive les diffĂ©rents cookies. Dans le Disposition.tsx Fichier, en supposant que nous avons ajoutĂ© une autre variable d’environnement, le code ressemblerait Ă  ceci:

ata-enlighter-language="typescript">/**
 * This Layout is needed for Starter Kit.
 */
import React from 'react';
...
import { Environment, WidgetsProvider } from '@sitecore-search/react';

const Layout = ({ layoutData, headLinks }: LayoutProps): JSX.Element => {
  ...
  return (
    <>
      ...
        <div className="App">
          <WidgetsProvider
            env={process.env.NEXT_CEC_APP_ENV as Environment}
            customerKey={process.env.NEXT_CEC_CUSTOMER_KEY}
            apiKey={process.env.NEXT_CEC_API_KEY}
            publicSuffix={true}
            trackConsent={!(process.env.DISABLE_TRACK_CONSENT === 'true') /* <===== HERE */}
          >
            ...
          </WidgetsProvider>
        </div>
      ...
    </>
  );
};

export default Layout;

Si consentement de piste est FAUXalors les divers __r
 Les cookies ne sont pas Ă©crits au navigateur.

⚠ Il convient de mentionner que, par dĂ©faut, consentement de piste est vrai. Pour retirer les cookies, les dĂ©veloppeurs doivent dĂ©finir la propriĂ©tĂ© sur FAUX.

Que vous contrĂŽliez l’utilisation de cookies en utilisant des variables d’environnement comme dĂ©crit dans ce post ou en intĂ©grant un systĂšme de gestion des cookies et de consentement plus complexe, il est sur vous et votre application de tĂȘte de cloud XM pour Ă©viter d’utiliser des cookies sans le consentement d’un utilisateur.

Merci pour la lecture! 🙏






Source link
Quitter la version mobile