diff --git a/packages/docusaurus-plugin-google-gtag/src/__tests__/options.test.ts b/packages/docusaurus-plugin-google-gtag/src/__tests__/options.test.ts index a33ce7aff382..6a4ca527cc93 100644 --- a/packages/docusaurus-plugin-google-gtag/src/__tests__/options.test.ts +++ b/packages/docusaurus-plugin-google-gtag/src/__tests__/options.test.ts @@ -96,12 +96,17 @@ describe('validateOptions', () => { ); }); - it('accepts anonymizeIP', () => { + it('rejects anonymizeIP', () => { const config: Options = { ...MinimalConfig, + // @ts-expect-error: removed option anonymizeIP: true, }; - expect(testValidateOptions(config)).toEqual(validationResult(config)); + expect(() => + testValidateOptions(config), + ).toThrowErrorMatchingInlineSnapshot( + `"The "anonymizeIP" option is no longer needed and has been removed. In Google Analytics 4, IP addresses are not logged or stored, making IP anonymization unnecessary. See https://support.google.com/analytics/answer/2763052"`, + ); }); it('accepts single trackingID', () => { diff --git a/packages/docusaurus-plugin-google-gtag/src/index.ts b/packages/docusaurus-plugin-google-gtag/src/index.ts index 01ceb43713d6..9d1cc4822e91 100644 --- a/packages/docusaurus-plugin-google-gtag/src/index.ts +++ b/packages/docusaurus-plugin-google-gtag/src/index.ts @@ -8,25 +8,14 @@ import type {LoadContext, Plugin} from '@docusaurus/types'; import type {PluginOptions, Options} from './options'; -function createConfigSnippet({ - trackingID, - anonymizeIP, -}: { - trackingID: string; - anonymizeIP: boolean; -}): string { - return `gtag('config', '${trackingID}', { ${ - anonymizeIP ? "'anonymize_ip': true" : '' - } });`; +function createConfigSnippet(trackingID: string): string { + return `gtag('config', '${trackingID}');`; } function createConfigSnippets({ trackingID: trackingIDArray, - anonymizeIP, }: PluginOptions): string { - return trackingIDArray - .map((trackingID) => createConfigSnippet({trackingID, anonymizeIP})) - .join('\n'); + return trackingIDArray.map(createConfigSnippet).join('\n'); } export default function pluginGoogleGtag( diff --git a/packages/docusaurus-plugin-google-gtag/src/options.ts b/packages/docusaurus-plugin-google-gtag/src/options.ts index b2f6fc1bc6d8..2a6182d79ce5 100644 --- a/packages/docusaurus-plugin-google-gtag/src/options.ts +++ b/packages/docusaurus-plugin-google-gtag/src/options.ts @@ -13,21 +13,13 @@ import type { export type PluginOptions = { trackingID: [string, ...string[]]; - // TODO deprecate anonymizeIP after June 2023 - // "In Google Analytics 4, IP masking is not necessary - // since IP addresses are not logged or stored." - // https://support.google.com/analytics/answer/2763052?hl=en - anonymizeIP: boolean; }; export type Options = { trackingID: string | [string, ...string[]]; - anonymizeIP?: boolean; }; -export const DEFAULT_OPTIONS: Partial = { - anonymizeIP: false, -}; +export const DEFAULT_OPTIONS: Partial = {}; const pluginOptionsSchema = Joi.object({ // We normalize trackingID as a string[] @@ -39,7 +31,11 @@ const pluginOptionsSchema = Joi.object({ Joi.array().items(Joi.string().required()), ) .required(), - anonymizeIP: Joi.boolean().default(DEFAULT_OPTIONS.anonymizeIP), + // @ts-expect-error: removed option + anonymizeIP: Joi.any().forbidden().messages({ + 'any.unknown': + 'The "anonymizeIP" option is no longer needed and has been removed. In Google Analytics 4, IP addresses are not logged or stored, making IP anonymization unnecessary. See https://support.google.com/analytics/answer/2763052', + }), }); export function validateOptions({ diff --git a/project-words.txt b/project-words.txt index 648db44b9b95..0197445a9169 100644 --- a/project-words.txt +++ b/project-words.txt @@ -5,6 +5,7 @@ alexbdebrie Alexey algoliasearch Allez +anonymization Anshul anshul APFS