は、Google IntegrarのGoogle Analyticsのen nextjsは、クムンプル詐欺ラレーデデ保護
Vault a hacer ?
エヌESTポストConfigarearemos Google AnalyticsエヌNuna pは、ginaウェブCreada con nextjs、TeniendoエヌCuentaは、auauizizaciを得ます.
レクシトス
アンコール・ド・コンツェルナーとエル・ク・ディ・ディゴ著『ネグシタール・アール・テナー』
タミビの祭典についてGoogle analytics y deberのs crearは、nunuo proyectoデga y obtenerラですID de seguimiento .
ConfigurarのGoogle Analytics
Google Analyticsのスクリプト
Lo Primero que Deberemos Hacer es Configurarロススクリプト
_document.js
. Estosは、息子ロスEseカリフォルニアデConfigar La InstanciaデGA Aによって世界的なen en nuestro sitioウェブを作ります.パラオアリオモスエルArchivo_document.js
<研究ノート>アジモス・ラオスの研究head
:<script async src={`https://www.googletagmanager.com/gtag/js?id=${process.env.GOOGLE_ANALYTICS}`} />
<script dangerouslySetInnerHTML={{
__html:`
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'update', {
'analytics_storage': 'granted'
});
gtag('js', new Date());
gtag('config', '${process.env.GOOGLE_ANALYTICS}', {
page_path: window.location.pathname,
});
`,
}} />
エルArchivo最終的なdeberは、Equoに類似していますimport Document, { Html, Head, Main, NextScript } from "next/document";
class MyDocument extends Document {
static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx);
return { ...initialProps };
}
render() {
return (
<Html>
<Head>
<script async src={`https://www.googletagmanager.com/gtag/js?id=${process.env.GOOGLE_ANALYTICS}`} />
<script
dangerouslySetInnerHTML={{
__html:`
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'update', {
'analytics_storage': 'granted'
});
gtag('js', new Date());
gtag('config', '${process.env.GOOGLE_ANALYTICS}', {
page_path: window.location.pathname,
});
`,
}}
/>
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
}
export default MyDocument;
コモブス、Estamos利用者は、変数デEntrno、que Configarearemos Mから、アデレード、donde se almacenarは、エルidデseguimientoデGoogle Analytics .アデール・アル・アーキヴォーにおけるアヴァンス・ラ・ディフェンテーンの『アヴェ』
_app.js
:import { useEffect } from "react";
import { useRouter } from "next/router";
//dentro del componente App
const router = useRouter();
useEffect(() => {
const handleRouteChange = (url) => {
window.gtag("config", process.env.GOOGLE_ANALYTICS, {
page_path: url,
});
};
router.events.on("routeChangeComplete", handleRouteChange);
return () => {
router.events.off("routeChangeComplete", handleRouteChange);
};
}, [router.events]);
エルArchivo最終的なquedarは、同じようにESTOです:import "../styles/globals.css";
import { useEffect } from "react";
import { useRouter } from "next/router";
function App({ Component, pageProps }) {
const router = useRouter();
useEffect(() => {
const handleRouteChange = (url) => {
window.gtag("config", process.env.GOOGLE_ANALYTICS, {
page_path: url,
});
};
router.events.on("routeChangeComplete", handleRouteChange);
return () => {
router.events.off("routeChangeComplete", handleRouteChange);
};
}, [router.events]);
return <Component {...pageProps} />
}
export default App;
Pidiendo Permiso al Usuario : Las Scripts de Gaのレンダリング
コンEsto Ya Tenemos Google Analytics Funcionandoエヌnuestro sitioウェブ.Pero Ahora Debemos tener en cuenta que Google Analytics Solo debe serの利用について
エルプライマーcambio que dedeos realizar esコンフィギュレーションロススクリプトデ解析論パラque carguen automは与えられます.パラオ・ヴォルヴェーレモスアル・アーキヴォー
_document.js
Y Adiremos UN Condicional a Nustro C ' d digo :<script
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
//configuramos el permiso como denegado en primera instancia
gtag('consent', 'default', {
'analytics_storage': 'denied'
});
gtag('js', new Date());
//comprobamos el consentimiento
if( consentimiento ) {
gtag('consent', 'update', {
'analytics_storage': 'granted'
});
}
gtag('config', '${process.env.GOOGLE_ANALYTICS}', {
page_path: window.location.pathname,
});
`,
}}
/>
AhoraのseカーガンAumは、Ticamente Losスクリプトを選びます.<研究ノート>ドイツ語における前提としての言語の意味Prio - Ero , Podemos Inventzar Alg Treaten de Real Ya実在のパートマイタにおけるPriguntar al usuario y Almacenar Su Preencias en Nunaクッキーについて
エヌ・カゼの利用についてreact-cookie-consent .
ポデモス・インスタルララ: Nuestro proyectoにおけるコントラバス
npm install react-cookie-consent
# o utilizando yarn
yarn add react-cookie-consent
Nuna Vaz Instaladoは、Era - EconenteデForma Global、デMaera que、Enn Edu Usuario、seルPregunte Por Su Prefencias、en Cocoデノーテナー国連Registro Prevoデlas Mismasを得ます.エステComponentte se Encarga Aumは、チアニャ干し草NunaクッキーをpreviaデPreencias por Lo que serによって前にします.<研究ノート>世界におけるフォルマの世界
App
デnuestraウェブ:import "../styles/globals.css";
import { useEffect } from "react";
import { useRouter } from "next/router";
import CookieConsent from "react-cookie-consent";
function App({ Component, pageProps }) {
const router = useRouter();
useEffect(() => {
const handleRouteChange = (url) => {
window.gtag("config", process.env.GOOGLE_ANALYTICS, {
page_path: url,
});
};
router.events.on("routeChangeComplete", handleRouteChange);
return () => {
router.events.off("routeChangeComplete", handleRouteChange);
};
}, [router.events]);
return (
<>
<Component {...pageProps} />
<CookieConsent
location="bottom"
buttonText="Sí, utilizar cookies."
onAccept={() => location.reload()}
cookieName="CookieConsent"
expires={150}
enableDeclineButton="true"
declineButtonText="No, no utilizar cookies"
>
Poner aquí el mensaje sobre el uso de cookies
<a href="#enlace_hacia_politica_de_cookies">Política de Cookies</a>.
</CookieConsent>
</>
);
}
export default App;
Puledes Cosultar el Repo del Componentlo para Configarloイタリア語における語彙の特徴とその意味AhoraデメモスボルヴァーアルArchivo
_document.js
E .序論としてのフランス語についてアディオスオス・モスモス
_document.js
:<script
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
//this defaults to denying
gtag('consent', 'default', {
'analytics_storage': 'denied'
});
gtag('js', new Date());
//este función es la que nos devuelve el valor de la cookie de preferencias
function getCookie() {
const value = "; " + document.cookie;
const parts = value.split("; CookieConsent=");
if (parts.length === 2) return parts.pop().split(';').shift();
}
//únicamente si el valor es true, se cargan los scripts de Google Analytics.
if(getCookie() === "true"){
gtag('consent', 'update', {
'analytics_storage': 'granted'
});
}
gtag('config', '${process.env.GOOGLE_ANALYTICS}', {
page_path: window.location.pathname,
});
`,
}}
/>
コンステクナーテンドドリッツトド🚀. Ahora deberは、sを配置しますconfigurar la variable de entorno GOOGLE_ANALYTICS
詐欺エルラルデデLstreoデtu sitioウェブ.Tas a a a adia la variable de entorno deber le des de hacer otro despliegue para que que as tenas san tenidas en cuenta en tu sitio web
ディゴーコンプリート
PUEDES ver todo el c c didien en el siguienteリポジトリ
dubisdev / nextjs-analytics-rgpd
これはNext.js プロジェクトブートストラップ
create-next-app
.始める
まず、開発サーバーを実行します.
NPMの実行
○○
糸dev
オープンhttp://localhost:3000 あなたのブラウザで結果を確認します.
変更することでページを編集できます
pages/index.js
. あなたがファイルを編集するようにページの自動更新.API routes にアクセスできますhttp://localhost:3000/api/hello . このエンドポイントは
pages/api/hello.js
.The
pages/api
ディレクトリは/api/*
. このディレクトリのファイルはAPI routes 反応ページの代わりに.もっと学ぶ
次に学ぶ.以下のリソースを見てください.
Next.js Documentation - 次はこちらをご覧ください.JSの機能とAPI.
Learn Next.js - インタラクティブな次.チュートリアル.
展開する
あなたの次を展開する最も簡単な方法.JSアプリはVercel Platform …から
View on GitHub
クレアウナPは、ジーナデPol .
エスペマ国連Momentoを集めてください!タダフは、クェーダun pasoの重要な点:クレールウナP .のgina dondeを探検します.
コモのアイデアは、プエリンのvistazoをプエデpublicación de la Agencia Estatal de Protección de Datos <研究ノート>
<論説>受刑者の権利について
<研究ノート> Google Analytics y e - Curplimiento - en - l - Mulplimito - to - l - en - en - en - en - en - en - a - en - en - a - a - en - en - a - a - enente - a - a - enente - a - a - en - a - A - a - a - a - la - fecha<研究ノート>フランスにおける社会的アイデンティティとしての社会的地位の研究:第二次世界大戦後の社会的アイデンティティの研究
Reference
この問題について(は、Google IntegrarのGoogle Analyticsのen nextjsは、クムンプル詐欺ラレーデデ保護), 我々は、より多くの情報をここで見つけました https://dev.to/dubisdev/como-integrar-google-analytics-en-nextjs-para-cumplir-con-la-ley-de-proteccion-de-datos-4c1eテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol