Drittanbieter-Bibliotheken
@next/third-parties
ist eine Bibliothek, die eine Sammlung von Komponenten und Hilfsmitteln bereitstellt, die die Leistung und Entwicklererfahrung beim Laden beliebter Drittanbieter-Bibliotheken in Ihrer Next.js-Anwendung verbessern.
Alle Drittanbieter-Integrationen von @next/third-parties
wurden für Leistung und Benutzerfreundlichkeit optimiert.
Erste Schritte
Installieren Sie zunächst die Bibliothek @next/third-parties
:
npm install @next/third-parties@latest next@latest
@next/third-parties
ist derzeit eine experimentelle Bibliothek in aktiver Entwicklung. Wir empfehlen, sie mit den Flags latest oder canary zu installieren, während wir weitere Drittanbieter-Integrationen hinzufügen.
Google-Drittanbieter
Alle unterstützten Drittanbieter-Bibliotheken von Google können aus @next/third-parties/google
importiert werden.
Google Tag Manager
Die Komponente GoogleTagManager
kann verwendet werden, um einen Google Tag Manager-Container auf Ihrer Seite zu instanziieren. Standardmäßig wird das ursprüngliche Inline-Skript nach dem Hydratisieren der Seite geladen.
Um Google Tag Manager für alle Routen zu laden, fügen Sie die Komponente direkt in Ihre benutzerdefinierte _app
ein und übergeben Sie Ihre GTM-Container-ID:
import { GoogleTagManager } from '@next/third-parties/google'
export default function MyApp({ Component, pageProps }) {
return (
<>
<Component {...pageProps} />
<GoogleTagManager gtmId="GTM-XYZ" />
</>
)
}
Um Google Tag Manager für eine einzelne Route zu laden, fügen Sie die Komponente in Ihre Seiten-Datei ein:
import { GoogleTagManager } from '@next/third-parties/google'
export default function Page() {
return <GoogleTagManager gtmId="GTM-XYZ" />
}
Ereignisse senden
Die Funktion sendGTMEvent
kann verwendet werden, um Benutzerinteraktionen auf Ihrer Seite zu verfolgen, indem Ereignisse über das dataLayer
-Objekt gesendet werden. Damit diese Funktion funktioniert, muss die Komponente <GoogleTagManager />
entweder in einem übergeordneten Layout, einer Seite oder einer Komponente enthalten sein oder direkt in derselben Datei.
import { sendGTMEvent } from '@next/third-parties/google'
export function EventButton() {
return (
<div>
<button
onClick={() => sendGTMEvent({ event: 'buttonClicked', value: 'xyz' })}
>
Ereignis senden
</button>
</div>
)
}
Lesen Sie die Entwicklerdokumentation des Tag Managers, um mehr über die verschiedenen Variablen und Ereignisse zu erfahren, die an die Funktion übergeben werden können.
Optionen
Optionen, die an den Google Tag Manager übergeben werden können. Eine vollständige Liste der Optionen finden Sie in der Google Tag Manager-Dokumentation.
Name | Typ | Beschreibung |
---|---|---|
gtmId | Erforderlich | Ihre GTM-Container-ID. Beginnt normalerweise mit GTM- . |
dataLayer | Optional | Data-Layer-Array, mit dem der Container instanziiert wird. Standardmäßig ein leeres Array. |
dataLayerName | Optional | Name des Data Layers. Standardmäßig dataLayer . |
auth | Optional | Wert des Authentifizierungsparameters (gtm_auth ) für Umgebungssnippets. |
preview | Optional | Wert des Vorschauparameters (gtm_preview ) für Umgebungssnippets. |
Google Analytics
Die Komponente GoogleAnalytics
kann verwendet werden, um Google Analytics 4 über das Google-Tag (gtag.js
) in Ihre Seite einzubinden. Standardmäßig werden die ursprünglichen Skripte nach dem Hydratisieren der Seite geladen.
Empfehlung: Wenn Google Tag Manager bereits in Ihrer Anwendung enthalten ist, können Sie Google Analytics direkt darüber konfigurieren, anstatt Google Analytics als separate Komponente einzubinden. Lesen Sie die Dokumentation, um mehr über die Unterschiede zwischen Tag Manager und
gtag.js
zu erfahren.
Um Google Analytics für alle Routen zu laden, fügen Sie die Komponente direkt in Ihre benutzerdefinierte _app
ein und übergeben Sie Ihre Mess-ID:
import { GoogleAnalytics } from '@next/third-parties/google'
export default function MyApp({ Component, pageProps }) {
return (
<>
<Component {...pageProps} />
<GoogleAnalytics gaId="G-XYZ" />
</>
)
}
Um Google Analytics für eine einzelne Route zu laden, fügen Sie die Komponente in Ihre Seiten-Datei ein:
import { GoogleAnalytics } from '@next/third-parties/google'
export default function Page() {
return <GoogleAnalytics gaId="G-XYZ" />
}
Ereignisse senden
Die Funktion sendGAEvent
kann verwendet werden, um Benutzerinteraktionen auf Ihrer Seite zu messen, indem Ereignisse über das dataLayer
-Objekt gesendet werden. Damit diese Funktion funktioniert, muss die Komponente <GoogleAnalytics />
entweder in einem übergeordneten Layout, einer Seite oder einer Komponente enthalten sein oder direkt in derselben Datei.
import { sendGAEvent } from '@next/third-parties/google'
export function EventButton() {
return (
<div>
<button
onClick={() => sendGAEvent({ event: 'buttonClicked', value: 'xyz' })}
>
Ereignis senden
</button>
</div>
)
}
Lesen Sie die Entwicklerdokumentation von Google Analytics, um mehr über Ereignisparameter zu erfahren.
Seitenaufrufe verfolgen
Google Analytics verfolgt automatisch Seitenaufrufe, wenn sich der Browserverlauf ändert. Dies bedeutet, dass clientseitige Navigationen zwischen Next.js-Routen Seitenaufrufdaten senden, ohne dass eine Konfiguration erforderlich ist.
Um sicherzustellen, dass clientseitige Navigationen korrekt gemessen werden, vergewissern Sie sich, dass die Eigenschaft "Enhanced Measurement" in Ihrem Admin-Panel aktiviert ist und das Kontrollkästchen "Page changes based on browser history events" ausgewählt ist.
Hinweis: Wenn Sie sich entscheiden, Seitenaufrufereignisse manuell zu senden, deaktivieren Sie die standardmäßige Seitenaufrufmessung, um doppelte Daten zu vermeiden. Lesen Sie die Entwicklerdokumentation von Google Analytics, um mehr zu erfahren.
Optionen
Optionen, die an die Komponente <GoogleAnalytics>
übergeben werden können.
Name | Typ | Beschreibung |
---|---|---|
gaId | Erforderlich | Ihre Mess-ID. Beginnt normalerweise mit G- . |
dataLayerName | Optional | Name des Data Layers. Standardmäßig dataLayer . |
Google Maps Embed
Die Komponente GoogleMapsEmbed
kann verwendet werden, um eine Google Maps Embed zu Ihrer Seite hinzuzufügen. Standardmäßig wird das loading
-Attribut verwendet, um das Embed unterhalb des Folds verzögert zu laden.
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"
/>
)
}
Optionen
Optionen, die an die Google Maps Embed übergeben werden können. Eine vollständige Liste der Optionen finden Sie in der Google Map Embed-Dokumentation.
Name | Typ | Beschreibung |
---|---|---|
apiKey | Erforderlich | Ihr API-Schlüssel. |
mode | Erforderlich | Kartenmodus |
height | Optional | Höhe des Embeds. Standardmäßig auto . |
width | Optional | Breite des Embeds. Standardmäßig auto . |
style | Optional | Stile, die auf das iframe angewendet werden. |
allowfullscreen | Optional | Eigenschaft, um bestimmte Kartenteile im Vollbildmodus anzuzeigen. |
loading | Optional | Standardmäßig lazy. Ändern Sie dies, wenn Sie wissen, dass Ihr Embed oberhalb des Folds liegt. |
q | Optional | Definiert die Position des Kartenmarkers. Dies kann je nach Kartenmodus erforderlich sein. |
center | Optional | Definiert die Mitte der Kartenansicht. |
zoom | Optional | Legt die anfängliche Zoomstufe der Karte fest. |
maptype | Optional | Definiert den Typ der zu ladenden Kartenkacheln. |
language | Optional | Definiert die Sprache für UI-Elemente und die Anzeige von Beschriftungen auf Kartenkacheln. |
region | Optional | Definiert die anzuzeigenden Grenzen und Beschriftungen basierend auf geopolitischen Sensibilitäten. |
YouTube Embed
Die Komponente YouTubeEmbed
kann verwendet werden, um ein YouTube-Embed zu laden und anzuzeigen. Diese Komponente lädt schneller, indem sie lite-youtube-embed
verwendet.
import { YouTubeEmbed } from '@next/third-parties/google'
export default function Page() {
return <YouTubeEmbed videoid="ogfYd705cRs" height={400} params="controls=0" />
}
Optionen
Name | Typ | Beschreibung |
---|---|---|
videoid | Erforderlich | YouTube-Video-ID. |
width | Optional | Breite des Videocontainers. Standardmäßig auto |
height | Optional | Höhe des Videocontainers. Standardmäßig auto |
playlabel | Optional | Eine visuell versteckte Beschriftung für den Play-Button für Barrierefreiheit. |
params | Optional | Die Videoplayer-Parameter, die hier definiert sind. Parameter werden als Query-String übergeben. Z.B.: params="controls=0&start=10&end=30" |
style | Optional | Wird verwendet, um Stile auf den Videocontainer anzuwenden. |