Bibliothèques tierces

@next/third-parties est une bibliothèque qui fournit une collection de composants et d'utilitaires améliorant les performances et l'expérience développeur lors du chargement de bibliothèques tierces populaires dans votre application Next.js.

Toutes les intégrations tierces fournies par @next/third-parties ont été optimisées pour les performances et la facilité d'utilisation.

Premiers pas

Pour commencer, installez la bibliothèque @next/third-parties :

Terminal
npm install @next/third-parties@latest next@latest

@next/third-parties est actuellement une bibliothèque expérimentale en développement actif. Nous recommandons de l'installer avec les flags latest ou canary pendant que nous travaillons à ajouter plus d'intégrations tierces.

Bibliothèques tierces Google

Toutes les bibliothèques tierces Google prises en charge peuvent être importées depuis @next/third-parties/google.

Google Tag Manager

Le composant GoogleTagManager peut être utilisé pour instancier un conteneur Google Tag Manager dans votre page. Par défaut, il charge le script inline original après l'hydratation de la page.

Pour charger Google Tag Manager sur toutes les routes, incluez le composant directement dans votre _app personnalisé et passez votre ID de conteneur GTM :

pages/_app.js
import { GoogleTagManager } from '@next/third-parties/google'

export default function MyApp({ Component, pageProps }) {
  return (
    <>
      <Component {...pageProps} />
      <GoogleTagManager gtmId="GTM-XYZ" />
    </>
  )
}

Pour charger Google Tag Manager sur une seule route, incluez le composant dans votre fichier de page :

pages/index.js
import { GoogleTagManager } from '@next/third-parties/google'

export default function Page() {
  return <GoogleTagManager gtmId="GTM-XYZ" />
}

Envoi d'événements

La fonction sendGTMEvent peut être utilisée pour suivre les interactions utilisateur sur votre page en envoyant des événements via l'objet dataLayer. Pour que cette fonction fonctionne, le composant <GoogleTagManager /> doit être inclus dans un layout parent, une page, un composant, ou directement dans le même fichier.

pages/index.js
import { sendGTMEvent } from '@next/third-parties/google'

export function EventButton() {
  return (
    <div>
      <button
        onClick={() => sendGTMEvent({ event: 'buttonClicked', value: 'xyz' })}
      >
        Envoyer l'événement
      </button>
    </div>
  )
}

Consultez la documentation développeur de Tag Manager pour en savoir plus sur les différentes variables et événements pouvant être passés à la fonction.

Options

Options à passer à Google Tag Manager. Pour une liste complète des options, consultez la documentation Google Tag Manager.

NomTypeDescription
gtmIdRequisVotre ID de conteneur GTM. Généralement commence par GTM-.
dataLayerOptionnelTableau data layer pour instancier le conteneur. Par défaut : tableau vide.
dataLayerNameOptionnelNom du data layer. Par défaut : dataLayer.
authOptionnelValeur du paramètre d'authentification (gtm_auth) pour les snippets d'environnement.
previewOptionnelValeur du paramètre de prévisualisation (gtm_preview) pour les snippets d'environnement.

Google Analytics

Le composant GoogleAnalytics peut être utilisé pour inclure Google Analytics 4 à votre page via la balise Google (gtag.js). Par défaut, il charge les scripts originaux après l'hydratation de la page.

Recommandation : Si Google Tag Manager est déjà inclus dans votre application, vous pouvez configurer Google Analytics directement via celui-ci, plutôt que d'inclure Google Analytics comme un composant séparé. Consultez la documentation pour en savoir plus sur les différences entre Tag Manager et gtag.js.

Pour charger Google Analytics sur toutes les routes, incluez le composant directement dans votre _app personnalisé et passez votre ID de mesure :

pages/_app.js
import { GoogleAnalytics } from '@next/third-parties/google'

export default function MyApp({ Component, pageProps }) {
  return (
    <>
      <Component {...pageProps} />
      <GoogleAnalytics gaId="G-XYZ" />
    </>
  )
}

Pour charger Google Analytics sur une seule route, incluez le composant dans votre fichier de page :

pages/index.js
import { GoogleAnalytics } from '@next/third-parties/google'

export default function Page() {
  return <GoogleAnalytics gaId="G-XYZ" />
}

Envoi d'événements

La fonction sendGAEvent peut être utilisée pour mesurer les interactions utilisateur sur votre page en envoyant des événements via l'objet dataLayer. Pour que cette fonction fonctionne, le composant <GoogleAnalytics /> doit être inclus dans un layout parent, une page, un composant, ou directement dans le même fichier.

pages/index.js
import { sendGAEvent } from '@next/third-parties/google'

export function EventButton() {
  return (
    <div>
      <button
        onClick={() => sendGAEvent({ event: 'buttonClicked', value: 'xyz' })}
      >
        Envoyer l'événement
      </button>
    </div>
  )
}

Consultez la documentation développeur de Google Analytics pour en savoir plus sur les paramètres d'événement.

Suivi des pages vues

Google Analytics suit automatiquement les pages vues lorsque l'état de l'historique du navigateur change. Cela signifie que les navigations côté client entre les routes Next.js enverront des données de pages vues sans configuration supplémentaire.

Pour vous assurer que les navigations côté client sont correctement mesurées, vérifiez que la propriété "Mesure améliorée" est activée dans votre panneau d'administration et que la case "Changements de page basés sur les événements d'historique du navigateur" est cochée.

Note : Si vous décidez d'envoyer manuellement les événements de pages vues, assurez-vous de désactiver la mesure par défaut pour éviter les données en double. Consultez la documentation développeur de Google Analytics pour en savoir plus.

Options

Options à passer au composant <GoogleAnalytics>.

NomTypeDescription
gaIdRequisVotre ID de mesure. Généralement commence par G-.
dataLayerNameOptionnelNom du data layer. Par défaut : dataLayer.

Intégration Google Maps

Le composant GoogleMapsEmbed peut être utilisé pour ajouter une intégration Google Maps à votre page. Par défaut, il utilise l'attribut loading pour charger l'intégration en différé sous le pli.

pages/index.js
import { GoogleMapsEmbed } from '@next/third-parties/google'

export default function Page() {
  return (
    <GoogleMapsEmbed
      apiKey="XYZ"
      height={200}
      width="100%"
      mode="place"
      q="Brooklyn+Bridge,New+York,NY"
    />
  )
}

Options

Options à passer à l'intégration Google Maps. Pour une liste complète des options, consultez la documentation Google Map Embed.

NomTypeDescription
apiKeyRequisVotre clé API.
modeRequisMode carte
heightOptionnelHauteur de l'intégration. Par défaut : auto.
widthOptionnelLargeur de l'intégration. Par défaut : auto.
styleOptionnelApplique des styles à l'iframe.
allowfullscreenOptionnelPropriété permettant à certaines parties de la carte d'aller en plein écran.
loadingOptionnelPar défaut : lazy. À modifier si vous savez que votre intégration sera au-dessus du pli.
qOptionnelDéfinit l'emplacement du marqueur de carte. Peut être requis selon le mode carte.
centerOptionnelDéfinit le centre de la vue de la carte.
zoomOptionnelDéfinit le niveau de zoom initial de la carte.
maptypeOptionnelDéfinit le type de tuiles de carte à charger.
languageOptionnelDéfinit la langue à utiliser pour les éléments d'interface et l'affichage des étiquettes.
regionOptionnelDéfinit les bordures et étiquettes appropriées à afficher, basées sur des sensibilités géopolitiques.

Intégration YouTube

Le composant YouTubeEmbed peut être utilisé pour charger et afficher une intégration YouTube. Ce composant charge plus rapidement en utilisant lite-youtube-embed en arrière-plan.

pages/index.js
import { YouTubeEmbed } from '@next/third-parties/google'

export default function Page() {
  return <YouTubeEmbed videoid="ogfYd705cRs" height={400} params="controls=0" />
}

Options

NomTypeDescription
videoidRequisID de la vidéo YouTube.
widthOptionnelLargeur du conteneur vidéo. Par défaut : auto.
heightOptionnelHauteur du conteneur vidéo. Par défaut : auto.
playlabelOptionnelLibellé visuellement masqué pour le bouton de lecture (accessibilité).
paramsOptionnelParamètres du lecteur vidéo définis ici.
Les paramètres sont passés sous forme de chaîne de requête.
Ex : params="controls=0&start=10&end=30"
styleOptionnelApplique des styles au conteneur vidéo.