From 71ad5274fd0563fc85831bb7196d764a1d77820f Mon Sep 17 00:00:00 2001 From: Arnab Sen Date: Wed, 6 Dec 2023 17:28:56 -0500 Subject: [PATCH] Remove Google Optimize examples Google Optimize has been sunset - https://support.google.com/analytics/answer/12979939?hl=en --- .../ab-testing-google-optimize/README.md | 7 - .../ab-testing-google-optimize/.env.example | 2 - .../ab-testing-google-optimize/.eslintrc.json | 4 - .../ab-testing-google-optimize/.gitignore | 40 - .../ab-testing-google-optimize/.npmrc | 2 - .../ab-testing-google-optimize/README.md | 61 - .../components/layout.tsx | 45 - .../lib/constants.ts | 1 - .../lib/optimize-experiments.json | 23 - .../lib/optimize.ts | 11 - .../ab-testing-google-optimize/lib/useGa.tsx | 7 - .../ab-testing-google-optimize/middleware.ts | 39 - .../ab-testing-google-optimize/next-env.d.ts | 6 - .../ab-testing-google-optimize/package.json | 31 - .../pages/[variant]/about.tsx | 74 - .../pages/[variant]/marketing.tsx | 74 - .../ab-testing-google-optimize/pages/_app.tsx | 17 - .../pages/about.tsx | 18 - .../pages/index.tsx | 65 - .../pages/marketing.tsx | 18 - .../ab-testing-google-optimize/pnpm-lock.yaml | 2573 ----------------- .../postcss.config.js | 8 - .../public/favicon.ico | Bin 15086 -> 0 bytes .../tailwind.config.js | 8 - .../ab-testing-google-optimize/tsconfig.json | 26 - .../ab-testing-google-optimize/turbo.json | 9 - .../ab-testing-google-optimize/vercel.json | 4 - edge-middleware/ab-testing-simple/README.md | 1 - edge-middleware/ab-testing-statsig/README.md | 1 - 29 files changed, 3175 deletions(-) delete mode 100644 edge-functions/ab-testing-google-optimize/README.md delete mode 100644 edge-middleware/ab-testing-google-optimize/.env.example delete mode 100644 edge-middleware/ab-testing-google-optimize/.eslintrc.json delete mode 100644 edge-middleware/ab-testing-google-optimize/.gitignore delete mode 100644 edge-middleware/ab-testing-google-optimize/.npmrc delete mode 100644 edge-middleware/ab-testing-google-optimize/README.md delete mode 100644 edge-middleware/ab-testing-google-optimize/components/layout.tsx delete mode 100644 edge-middleware/ab-testing-google-optimize/lib/constants.ts delete mode 100644 edge-middleware/ab-testing-google-optimize/lib/optimize-experiments.json delete mode 100644 edge-middleware/ab-testing-google-optimize/lib/optimize.ts delete mode 100644 edge-middleware/ab-testing-google-optimize/lib/useGa.tsx delete mode 100644 edge-middleware/ab-testing-google-optimize/middleware.ts delete mode 100644 edge-middleware/ab-testing-google-optimize/next-env.d.ts delete mode 100644 edge-middleware/ab-testing-google-optimize/package.json delete mode 100644 edge-middleware/ab-testing-google-optimize/pages/[variant]/about.tsx delete mode 100644 edge-middleware/ab-testing-google-optimize/pages/[variant]/marketing.tsx delete mode 100644 edge-middleware/ab-testing-google-optimize/pages/_app.tsx delete mode 100644 edge-middleware/ab-testing-google-optimize/pages/about.tsx delete mode 100644 edge-middleware/ab-testing-google-optimize/pages/index.tsx delete mode 100644 edge-middleware/ab-testing-google-optimize/pages/marketing.tsx delete mode 100644 edge-middleware/ab-testing-google-optimize/pnpm-lock.yaml delete mode 100644 edge-middleware/ab-testing-google-optimize/postcss.config.js delete mode 100644 edge-middleware/ab-testing-google-optimize/public/favicon.ico delete mode 100644 edge-middleware/ab-testing-google-optimize/tailwind.config.js delete mode 100644 edge-middleware/ab-testing-google-optimize/tsconfig.json delete mode 100644 edge-middleware/ab-testing-google-optimize/turbo.json delete mode 100644 edge-middleware/ab-testing-google-optimize/vercel.json diff --git a/edge-functions/ab-testing-google-optimize/README.md b/edge-functions/ab-testing-google-optimize/README.md deleted file mode 100644 index 713f6c1f8..000000000 --- a/edge-functions/ab-testing-google-optimize/README.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -marketplace: false ---- - -# A/B Testing with Google Optimize - -This example has been moved to [`edge-middleware`](/edge-middleware/ab-testing-google-optimize). diff --git a/edge-middleware/ab-testing-google-optimize/.env.example b/edge-middleware/ab-testing-google-optimize/.env.example deleted file mode 100644 index 48d5b348a..000000000 --- a/edge-middleware/ab-testing-google-optimize/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -NEXT_PUBLIC_GOOGLE_TRACKING_ID = -NEXT_PUBLIC_OPTIMIZE_CONTAINER_ID = \ No newline at end of file diff --git a/edge-middleware/ab-testing-google-optimize/.eslintrc.json b/edge-middleware/ab-testing-google-optimize/.eslintrc.json deleted file mode 100644 index a2569c2c7..000000000 --- a/edge-middleware/ab-testing-google-optimize/.eslintrc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "root": true, - "extends": "next/core-web-vitals" -} diff --git a/edge-middleware/ab-testing-google-optimize/.gitignore b/edge-middleware/ab-testing-google-optimize/.gitignore deleted file mode 100644 index b2ca11460..000000000 --- a/edge-middleware/ab-testing-google-optimize/.gitignore +++ /dev/null @@ -1,40 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# Dependencies -/node_modules -/.pnp -.pnp.js - -# Testing -/coverage - -# Next.js -/.next/ -/out/ - -# Production -/build - -# Misc -.DS_Store -*.pem - -# Debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Local ENV files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# Vercel -.vercel - -# Turborepo -.turbo - -# typescript -*.tsbuildinfo \ No newline at end of file diff --git a/edge-middleware/ab-testing-google-optimize/.npmrc b/edge-middleware/ab-testing-google-optimize/.npmrc deleted file mode 100644 index 570bce4ae..000000000 --- a/edge-middleware/ab-testing-google-optimize/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -# Enabled to avoid deps failing to use next@canary -legacy-peer-deps=true \ No newline at end of file diff --git a/edge-middleware/ab-testing-google-optimize/README.md b/edge-middleware/ab-testing-google-optimize/README.md deleted file mode 100644 index ea93b117a..000000000 --- a/edge-middleware/ab-testing-google-optimize/README.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -name: A/B Testing with Google Optimize -slug: ab-testing-google-optimize -description: Learn to use Google Optimize as an A/B testing solution for experimentation at the edge. -framework: Next.js -useCase: Edge Middleware -css: Tailwind -deployUrl: https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/edge-middleware/ab-testing-google-optimize&project-name=ab-testing-google-optimize&repository-name=ab-testing-google-optimize -demoUrl: https://edge-functions-ab-testing-google-optimize.vercel.app -relatedTemplates: - - ab-testing-simple - - ab-testing-statsig ---- - -# A/B Testing with Google Optimize - -[Google Optimize](https://marketingplatform.google.com/about/optimize/) is Google' optimization tool and A/B testing solution, natively integrated with Google Analytics. In this example we'll do A/B testing with Optimize experiments at the edge. - -By A/B testing directly on the server-side, you'll reduce layout shift from client-loaded experiments and improving your site's performance with smaller JavaScript bundles. - -## Demo - -https://edge-functions-ab-testing-google-optimize.vercel.app - -## How to Use - -You can choose from one of the following two methods to use this repository: - -### One-Click Deploy - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme): - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/edge-middleware/ab-testing-google-optimize&project-name=ab-testing-google-optimize&repository-name=ab-testing-google-optimize) - -### Clone and Deploy - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [pnpm](https://pnpm.io/installation) to bootstrap the example: - -```bash -pnpm create next-app --example https://github.com/vercel/examples/tree/main/edge-middleware/ab-testing-google-optimize ab-testing-google-optimize -``` - -[`middleware.ts`](middleware.ts) loads the experiments using a pre-defined JSON file ([lib/optimize-experiments.json](lib/optimize-experiments.json)), it currently has to be edited manually in order to add the experiments created in https://optimize.google.com. - -Run Next.js in development mode: - -```bash -pnpm dev -``` - -Once the page loads (http://localhost:3000) the layout will load the `optimize.js` script using your google tracking id, and the pages will register events for the current experiment and variant. - -To create your own experiments you'll need an account with [Google Optimize](https://optimize.google.com/optimize/home). Once that's done, copy the `.env.example` file in this directory to `.env.local` (which will be ignored by Git): - -```bash -cp .env.example .env.local -``` - -Then open `.env.local` and set the environment variables to match the ones for your Google Optimize account. - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=edge-middleware-eap) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/edge-middleware/ab-testing-google-optimize/components/layout.tsx b/edge-middleware/ab-testing-google-optimize/components/layout.tsx deleted file mode 100644 index e90cf974a..000000000 --- a/edge-middleware/ab-testing-google-optimize/components/layout.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { FC } from 'react' -import Script from 'next/script' -import { Layout, Page } from '@vercel/examples-ui' -import type { LayoutProps } from '@vercel/examples-ui/layout' -import { GaProvider } from '@lib/useGa' - -function throwIfSSR() { - throw new Error('Using GA during SSR is not allowed') -} - -function gaHandler() { - const dataLayer = ((window as any).dataLayer = - (window as any).dataLayer || []) - - dataLayer.push(arguments) -} - -const OptimizeLayout: FC = ({ children, ...props }) => { - const ga = typeof window === 'undefined' ? throwIfSSR : gaHandler - - return ( - - - {/*