Skip to content

Commit

Permalink
MRKT-182: Adds Google Analytics for Marketplace (#780)
Browse files Browse the repository at this point in the history
* Adds Google Analytics for Marketplace

* adds ga marketplace id to cdk app
  • Loading branch information
scandycuz authored Nov 5, 2024
1 parent af7a525 commit 5b7b420
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- name: Deploy marketplace
run: |
npm install --prefix .github/workflows/cdk
APPNAME=marketplace APPID=Marketplace QUALIFIER=Studio NEXT_PUBLIC_ENV=production NEXT_PUBLIC_RECAPTCHA_SITE_KEY_PROD=${{ secrets.RECAPTCHA_SITE_KEY_PROD }} NEXT_PUBLIC_DEXHUNTER_MARKETPLACE_PARTNER_CODE=${{ secrets.DEXHUNTER_MARKETPLACE_PARTNER_CODE }} NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }} npm run --prefix .github/workflows/cdk cdk:deploy deploy -- --require-approval never
APPNAME=marketplace APPID=Marketplace QUALIFIER=Studio NEXT_PUBLIC_ENV=production NEXT_PUBLIC_RECAPTCHA_SITE_KEY_PROD=${{ secrets.RECAPTCHA_SITE_KEY_PROD }} NEXT_PUBLIC_DEXHUNTER_MARKETPLACE_PARTNER_CODE=${{ secrets.DEXHUNTER_MARKETPLACE_PARTNER_CODE }} NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }} NEXT_PUBLIC_GA_MARKETPLACE_ID=${{ secrets.GA_MARKETPLACE_ID }} npm run --prefix .github/workflows/cdk cdk:deploy deploy -- --require-approval never
- name: Send update to slack
id: slack
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- name: Deploy to Lambda Function
run: |
npm install --prefix .github/workflows/cdk
APPNAME=marketplace APPID=Marketplace QUALIFIER=Garage NEXT_PUBLIC_ENV=staging NEXT_PUBLIC_RECAPTCHA_SITE_KEY_STAGING=${{ secrets.RECAPTCHA_SITE_KEY_STAGING }} NEXT_PUBLIC_DEXHUNTER_MARKETPLACE_PARTNER_CODE=${{ secrets.DEXHUNTER_MARKETPLACE_PARTNER_CODE }} NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }} npm run --prefix .github/workflows/cdk cdk:deploy deploy -- --require-approval never
APPNAME=marketplace APPID=Marketplace QUALIFIER=Garage NEXT_PUBLIC_ENV=staging NEXT_PUBLIC_RECAPTCHA_SITE_KEY_STAGING=${{ secrets.RECAPTCHA_SITE_KEY_STAGING }} NEXT_PUBLIC_DEXHUNTER_MARKETPLACE_PARTNER_CODE=${{ secrets.DEXHUNTER_MARKETPLACE_PARTNER_CODE }} NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }} NEXT_PUBLIC_GA_MARKETPLACE_ID=${{ secrets.GA_MARKETPLACE_ID }} npm run --prefix .github/workflows/cdk cdk:deploy deploy -- --require-approval never
- name: Send update to slack
id: slack
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
- name: Deploy to Lambda Function
run: |
npm install --prefix .github/workflows/cdk
APPNAME=marketplace QUALIFIER=${{ github.event.pull_request.number }} NEXT_PUBLIC_DEXHUNTER_MARKETPLACE_PARTNER_CODE=${{ secrets.DEXHUNTER_MARKETPLACE_PARTNER_CODE }} NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }} npm run --prefix .github/workflows/cdk cdk:preview deploy -- --require-approval never
APPNAME=marketplace QUALIFIER=${{ github.event.pull_request.number }} NEXT_PUBLIC_DEXHUNTER_MARKETPLACE_PARTNER_CODE=${{ secrets.DEXHUNTER_MARKETPLACE_PARTNER_CODE }} NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }} NEXT_PUBLIC_GA_MARKETPLACE_ID=${{ secrets.GA_MARKETPLACE_ID }} npm run --prefix .github/workflows/cdk cdk:preview deploy -- --require-approval never
- name: Get preview url
id: previewurl
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/cdk/bin/deploy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { Tags } from "aws-cdk-lib";
const appName = process.env.APPNAME || "APPNAME";
const appId = process.env.APPID || "APPID";
const qualifier = process.env.QUALIFIER || "UNDEFINED";
const gaMarketplaceId = process.env.NEXT_PUBLIC_GA_MARKETPLACE_ID;
const nxCloudAccessToken = process.env.NX_CLOUD_ACCESS_TOKEN;
const dexHunterMarketplacePartnerCode =
process.env.NEXT_PUBLIC_DEXHUNTER_MARKETPLACE_PARTNER_CODE || "";
Expand All @@ -35,6 +36,7 @@ class WebDeployStack extends cdk.Stack {
dexHunterMarketplacePartnerCode,
NEXT_PUBLIC_DEXHUNTER_TOOLS_PARTNER_CODE: dexHunterToolsPartnerCode,
NEXT_PUBLIC_ENV: appEnv,
NEXT_PUBLIC_GA_MARKETPLACE_ID: gaMarketplaceId,
NEXT_PUBLIC_RECAPTCHA_SITE_KEY_PROD: recaptchaKeyProd,
NEXT_PUBLIC_RECAPTCHA_SITE_KEY_STAGING: recaptchaKeyStaging,
},
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/cdk/bin/preview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { Construct } from "constructs";
const appName = process.env.APPNAME || "APPNAME";
const appNameAbbr = appName.replace(/-/g, "");
const qualifier = process.env.QUALIFIER || "UNDEFINED";
const gaMarketplaceId = process.env.NEXT_PUBLIC_GA_MARKETPLACE_ID;
const nxCloudAccessToken = process.env.NX_CLOUD_ACCESS_TOKEN;
const recaptchaKey = process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY_STAGING || "";
const dexHunterMarketplacePartnerCode =
Expand All @@ -31,6 +32,7 @@ class WebPreviewStack extends cdk.Stack {
dexHunterMarketplacePartnerCode,
NEXT_PUBLIC_DEXHUNTER_TOOLS_PARTNER_CODE: dexHunterToolsPartnerCode,
NEXT_PUBLIC_ENV: appEnv,
NEXT_PUBLIC_GA_MARKETPLACE_ID: gaMarketplaceId,
NEXT_PUBLIC_RECAPTCHA_SITE_KEY_STAGING: recaptchaKey,
},
file: path.join("apps", appName, "Dockerfile"),
Expand Down
28 changes: 28 additions & 0 deletions apps/marketplace/src/components/GoogleAnalytics.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { FunctionComponent, useEffect } from "react";
import { GA_MARKETPLACE_ID, isProd } from "@newm-web/env";
import ReactGA from "react-ga4";
import { useLocation } from "react-router-dom";

if (isProd && GA_MARKETPLACE_ID) {
ReactGA.initialize(GA_MARKETPLACE_ID);
}

const GoogleAnalytics: FunctionComponent = () => {
const location = useLocation();

/**
* Send GA page view on each route change in production.
*/
useEffect(() => {
if (!isProd) return;

ReactGA.send({
hitType: "pageview",
page: location.pathname,
});
}, [location]);

return null;
};

export default GoogleAnalytics;
5 changes: 5 additions & 0 deletions packages/env/src/lib/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ const getAppEnvVar = (name: string): string => {
return typeof process !== "undefined"
? process.env.NEXT_PUBLIC_GA_STUDIO_ID
: import.meta.env.VITE_GA_STUDIO_ID;
case "GA_MARKETPLACE_ID":
return typeof process !== "undefined"
? process.env.NEXT_PUBLIC_GA_MARKETPLACE_ID
: import.meta.env.VITE_GA_MARKETPLACE_ID;
case "RECAPTCHA_SITE_KEY_STAGING":
return typeof process !== "undefined"
? process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY_STAGING
Expand Down Expand Up @@ -47,6 +51,7 @@ const getAppEnvVar = (name: string): string => {
export const APPLE_CLIENT_ID = getAppEnvVar("APPLE_CLIENT_ID");
export const GOOGLE_CLIENT_ID = getAppEnvVar("GOOGLE_CLIENT_ID");
export const GA_STUDIO_ID = getAppEnvVar("GA_STUDIO_ID");
export const GA_MARKETPLACE_ID = getAppEnvVar("GA_MARKETPLACE_ID");
export const DEXHUNTER_STUDIO_PARTNER_CODE = getAppEnvVar(
"DEXHUNTER_STUDIO_PARTNER_CODE"
);
Expand Down

0 comments on commit 5b7b420

Please sign in to comment.