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
:
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 :
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 :
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.
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.
Nom | Type | Description |
---|---|---|
gtmId | Requis | Votre ID de conteneur GTM. Généralement commence par GTM- . |
dataLayer | Optionnel | Tableau data layer pour instancier le conteneur. Par défaut : tableau vide. |
dataLayerName | Optionnel | Nom du data layer. Par défaut : dataLayer . |
auth | Optionnel | Valeur du paramètre d'authentification (gtm_auth ) pour les snippets d'environnement. |
preview | Optionnel | Valeur 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 :
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 :
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.
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>
.
Nom | Type | Description |
---|---|---|
gaId | Requis | Votre ID de mesure. Généralement commence par G- . |
dataLayerName | Optionnel | Nom 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.
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.
Nom | Type | Description |
---|---|---|
apiKey | Requis | Votre clé API. |
mode | Requis | Mode carte |
height | Optionnel | Hauteur de l'intégration. Par défaut : auto . |
width | Optionnel | Largeur de l'intégration. Par défaut : auto . |
style | Optionnel | Applique des styles à l'iframe. |
allowfullscreen | Optionnel | Propriété permettant à certaines parties de la carte d'aller en plein écran. |
loading | Optionnel | Par défaut : lazy. À modifier si vous savez que votre intégration sera au-dessus du pli. |
q | Optionnel | Définit l'emplacement du marqueur de carte. Peut être requis selon le mode carte. |
center | Optionnel | Définit le centre de la vue de la carte. |
zoom | Optionnel | Définit le niveau de zoom initial de la carte. |
maptype | Optionnel | Définit le type de tuiles de carte à charger. |
language | Optionnel | Définit la langue à utiliser pour les éléments d'interface et l'affichage des étiquettes. |
region | Optionnel | Dé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.
import { YouTubeEmbed } from '@next/third-parties/google'
export default function Page() {
return <YouTubeEmbed videoid="ogfYd705cRs" height={400} params="controls=0" />
}
Options
Nom | Type | Description |
---|---|---|
videoid | Requis | ID de la vidéo YouTube. |
width | Optionnel | Largeur du conteneur vidéo. Par défaut : auto . |
height | Optionnel | Hauteur du conteneur vidéo. Par défaut : auto . |
playlabel | Optionnel | Libellé visuellement masqué pour le bouton de lecture (accessibilité). |
params | Optionnel | Paramè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" |
style | Optionnel | Applique des styles au conteneur vidéo. |