サードパーティライブラリの最適化方法
@next/third-parties
は、Next.jsアプリケーションで人気のあるサードパーティライブラリを読み込む際のパフォーマンスと開発者体験を向上させるコンポーネントとユーティリティのコレクションを提供するライブラリです。
@next/third-parties
が提供するすべてのサードパーティ統合は、パフォーマンスと使いやすさのために最適化されています。
はじめに
まず、@next/third-parties
ライブラリをインストールします:
@next/third-parties
は現在実験的なライブラリで、活発に開発中です。より多くのサードパーティ統合を追加する間は、latest または canary フラグを付けてインストールすることを推奨します。
Googleサードパーティ
Googleが提供するすべてのサポート対象サードパーティライブラリは @next/third-parties/google
からインポートできます。
Googleタグマネージャー
GoogleTagManager
コンポーネントを使用して、ページにGoogleタグマネージャーコンテナをインスタンス化できます。デフォルトでは、ページのハイドレーションが発生した後にオリジナルのインラインスクリプトを取得します。
すべてのルートでGoogleタグマネージャーを読み込むには、カスタム _app
にコンポーネントを直接含め、GTMコンテナIDを渡します:
単一のルートでGoogleタグマネージャーを読み込むには、ページファイルにコンポーネントを含めます:
イベントの送信
sendGTMEvent
関数を使用して、ページ上のユーザーインタラクションを追跡できます。この関数を使用するには、<GoogleTagManager />
コンポーネントが親レイアウト、ページ、コンポーネント、または同じファイル内に含まれている必要があります。
関数に渡せるさまざまな変数やイベントについては、タグマネージャーの開発者向けドキュメントを参照してください。
サーバーサイドタグ付け
サーバーサイドタグマネージャーを使用していて、タグ付けサーバーから gtm.js
スクリプトを提供している場合は、gtmScriptUrl
オプションを使用してスクリプトのURLを指定できます。
オプション
Googleタグマネージャーに渡すオプション。すべてのオプションのリストについては、Googleタグマネージャードキュメントを参照してください。
名前 | タイプ | 説明 |
---|---|---|
gtmId | 必須 | GTMコンテナID。通常は GTM- で始まります。 |
gtmScriptUrl | 任意 | GTMスクリプトURL。デフォルトは https://www.googletagmanager.com/gtm.js 。 |
dataLayer | 任意 | コンテナをインスタンス化するためのデータレイヤーオブジェクト。 |
dataLayerName | 任意 | データレイヤーの名前。デフォルトは dataLayer 。 |
auth | 任意 | 環境スニペットの認証パラメータ(gtm_auth )の値。 |
preview | 任意 | 環境スニペットのプレビューパラメータ(gtm_preview )の値。 |
Googleアナリティクス
GoogleAnalytics
コンポーネントを使用して、Googleタグ(gtag.js
)経由でGoogleアナリティクス4をページに含めることができます。デフォルトでは、ページのハイドレーションが発生した後にオリジナルのスクリプトを取得します。
推奨事項: アプリケーションにGoogleタグマネージャーが既に含まれている場合は、別のコンポーネントとしてGoogleアナリティクスを含めるのではなく、Googleタグマネージャーを使用して直接Googleアナリティクスを構成できます。タグマネージャーと
gtag.js
の違いについてはドキュメントを参照してください。
すべてのルートでGoogleアナリティクスを読み込むには、カスタム _app
にコンポーネントを直接含め、測定IDを渡します:
単一のルートでGoogleアナリティクスを読み込むには、ページファイルにコンポーネントを含めます:
イベントの送信
sendGAEvent
関数を使用して、ページ上のユーザーインタラクションを測定できます。この関数を使用するには、<GoogleAnalytics />
コンポーネントが親レイアウト、ページ、コンポーネント、または同じファイル内に含まれている必要があります。
イベントパラメータの詳細については、Googleアナリティクスの開発者向けドキュメントを参照してください。
ページビューの追跡
Googleアナリティクスは、ブラウザの履歴状態が変更されると自動的にページビューを追跡します。つまり、Next.jsルート間のクライアントサイドナビゲーションは、設定なしでページビューデータを送信します。
クライアントサイドナビゲーションが正しく測定されていることを確認するには、管理パネルで「拡張計測」プロパティが有効になっており、_「ブラウザ履歴イベントに基づくページ変更」_チェックボックスが選択されていることを確認してください。
注: 手動でページビューイベントを送信する場合は、デフォルトのページビュー測定を無効にして重複データを避けてください。詳細については、Googleアナリティクスの開発者向けドキュメントを参照してください。
オプション
<GoogleAnalytics>
コンポーネントに渡すオプション。
Googleマップ埋め込み
GoogleMapsEmbed
コンポーネントを使用して、Googleマップ埋め込みをページに追加できます。デフォルトでは、loading
属性を使用して折り返し線以下の埋め込みを遅延読み込みします。
オプション
Googleマップ埋め込みに渡すオプション。すべてのオプションのリストについては、Googleマップ埋め込みドキュメントを参照してください。
名前 | タイプ | 説明 |
---|---|---|
apiKey | 必須 | APIキー。 |
mode | 必須 | マップモード |
height | 任意 | 埋め込みの高さ。デフォルトは auto 。 |
width | 任意 | 埋め込みの幅。デフォルトは auto 。 |
style | 任意 | iframeにスタイルを渡します。 |
allowfullscreen | 任意 | マップの特定の部分をフルスクリーンにするためのプロパティ。 |
loading | 任意 | デフォルトはlazy。埋め込みが折り返し線より上にあることがわかっている場合は変更を検討してください。 |
q | 任意 | マップマーカーの位置を定義します。マップモードによってはこれが必要な場合があります。 |
center | 任意 | マップビューの中心を定義します。 |
zoom | 任意 | マップの初期ズームレベルを設定します。 |
maptype | 任意 | 読み込むマップタイルのタイプを定義します。 |
language | 任意 | UI要素とマップタイル上のラベルの表示に使用する言語を定義します。 |
region | 任意 | 地理政治的な感度に基づいて表示する適切な境界線とラベルを定義します。 |
YouTube埋め込み
YouTubeEmbed
コンポーネントを使用してYouTube埋め込みを読み込み、表示できます。このコンポーネントは、内部でlite-youtube-embed
を使用することで高速に読み込みます。
オプション
名前 | タイプ | 説明 |
---|---|---|
videoid | 必須 | YouTube 動画 ID。 |
width | オプション | 動画コンテナの幅。デフォルトは auto 。 |
height | オプション | 動画コンテナの高さ。デフォルトは auto 。 |
playlabel | オプション | アクセシビリティのための再生ボタンの視覚的に隠されたラベル。 |
params | オプション | こちらで定義されている動画プレーヤーのパラメータ。 パラメータはクエリパラメータ文字列として渡されます。 例: params="controls=0&start=10&end=30" |
style | オプション | 動画コンテナにスタイルを適用するために使用されます。 |