From 90e548fb4dee11064721c60958d61731fa91ce7c Mon Sep 17 00:00:00 2001 From: Shinsina Date: Thu, 26 Jun 2025 12:27:25 -0500 Subject: [PATCH 1/2] Update google-ad-manager image and environment versions --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 06098ce..92d990f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -60,13 +60,13 @@ x-tenant-env: &tenant-env services: google-ad-manager: tty: true - image: parameter1/google-ad-manager-graphql-service:v1.1.0 + image: parameter1/google-ad-manager-graphql-service:v1.2.5 volumes: - ./service-account.json:/service-account.json environment: JSON_KEY_FILE_PATH: /service-account.json NETWORK_CODE: 137873098 - VERSION: v202205 + VERSION: v202411 mongo: tty: true From 242b0fcd01defdf120b04c4254c366811e48780c Mon Sep 17 00:00:00 2001 From: Shinsina Date: Thu, 26 Jun 2025 12:27:45 -0500 Subject: [PATCH 2/2] Hide uniqueClicks for eBlasts and total if campaign contains eBlast --- .../exports/src/actions/campaign/email-metrics.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/monorepo/services/exports/src/actions/campaign/email-metrics.js b/monorepo/services/exports/src/actions/campaign/email-metrics.js index cff1cc8..20977d4 100644 --- a/monorepo/services/exports/src/actions/campaign/email-metrics.js +++ b/monorepo/services/exports/src/actions/campaign/email-metrics.js @@ -69,16 +69,19 @@ module.exports = async (params = {}, { context }) => { const showAdvertiserCTOR = get(data, 'reportEmailMetrics.campaign.showAdvertiserCTOR'); const showTotalAdClicksPerDay = get(data, 'reportEmailMetrics.campaign.showTotalAdClicksPerDay'); const showTotalUniqueClicks = get(data, 'reportEmailMetrics.campaign.showTotalUniqueClicks'); + let campaignHasEblast = false; const rows = getAsArray(data, 'reportEmailMetrics.deployments').map((row) => { const { deployment } = row; const { metrics } = deployment; + const isEblast = deployment.name.match(/eblast/i); + if (isEblast) campaignHasEblast = true; return { Name: deployment.name, Date: dayjs.tz(deployment.sentDate, 'America/Chicago').format('MMM Do, YYYY HH:mm a'), Delivered: metrics.delivered, 'Unique Opens': metrics.uniqueOpens, - 'Unique Clicks': metrics.uniqueClicks, + ...(!isEblast && { 'Unique Clicks': metrics.uniqueClicks }), 'Open Rate': (metrics.openRate * 100).toFixed(1), CTOR: (metrics.clickToOpenRate * 100).toFixed(1), CTR: (metrics.clickToDeliveredRate * 100).toFixed(1), @@ -96,7 +99,7 @@ module.exports = async (params = {}, { context }) => { Date: '', Delivered: metrics.delivered, 'Unique Opens': metrics.uniqueOpens, - 'Unique Clicks': metrics.uniqueClicks, + ...(!campaignHasEblast && { 'Unique Clicks': metrics.uniqueClicks }), 'Open Rate': (metrics.openRate * 100).toFixed(1), CTOR: (metrics.clickToOpenRate * 100).toFixed(1), CTR: (metrics.clickToDeliveredRate * 100).toFixed(1), @@ -107,8 +110,9 @@ module.exports = async (params = {}, { context }) => { }); if (!rows.length) return ''; + const rowsComplete = rows.filter((row) => row['Unique Clicks']); const parser = new Parser({ - fields: Object.keys(rows[0]), + fields: Object.keys(rowsComplete.length ? rowsComplete[0] : rows[0]), }); return parser.parse(rows); };