From 19a7ccc54a5a52a8c3af6e41c3c236e91bdd5725 Mon Sep 17 00:00:00 2001 From: huangguancheng Date: Tue, 21 Jan 2025 16:06:15 +0800 Subject: [PATCH] =?UTF-8?q?fix=20dashboard=20google=20roas=E5=8F=A3?= =?UTF-8?q?=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/service/AdsDashboardService.php | 30 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/app/service/AdsDashboardService.php b/app/service/AdsDashboardService.php index 9fd588f..711faae 100644 --- a/app/service/AdsDashboardService.php +++ b/app/service/AdsDashboardService.php @@ -141,7 +141,7 @@ class AdsDashboardService 'google' => [ 'google_ads' => 'spend', // 示例映射 'conversion_value' => 'platform_purchase_value', - 'roas' => 'roas', + 'roas' => 'google_roas', 'conversions' => 'purchases', 'ctr' => 'ctr', 'cpa' => 'google_cpa', @@ -182,24 +182,25 @@ class AdsDashboardService // 在 PHP 中计算指标 foreach ($adcycleData as $data) { - $platform = $data['platform']; // 获取平台类型 - $spend = (float)$data['spend']; - $revenue = (float)$data['revenue']; - $totalCost = (float)$data['total_cost']; - $impressions = (int)$data['impressions']; - $clicks = (int)$data['clicks']; - $purchases = (int)$data['purchases']; - $purchases_all = (int)$data['purchases_all']; - $platform_purchase = (int)$data['platform_purchase']; - $purchases_value = (float)$data['purchases_value']; + $platform = $data['platform']; // 获取平台类型 + $spend = (float)$data['spend']; + $revenue = (float)$data['revenue']; + $totalCost = (float)$data['total_cost']; + $impressions = (int)$data['impressions']; + $clicks = (int)$data['clicks']; + $purchases = (int)$data['purchases']; + $purchases_all = (int)$data['purchases_all']; + $platform_purchase = (int)$data['platform_purchase']; + $purchases_value = (float)$data['purchases_value']; $platform_purchase_value = (float)$data['platform_purchase_value']; // 计算指标 $roas = ($spend == 0) ? 0 : $revenue / $spend; + $google_roas = ($spend == 0) ? 0 : $purchases_value / $spend; $ctr = ($impressions == 0) ? 0 : $clicks / $impressions; - $cpoc = ($platform_purchase == 0) ? 0 : $platform_purchase_value / $platform_purchase; + $cpoc = ($platform_purchase == 0) ? 0 : $platform_purchase_value / $platform_purchase; $cpa = ($purchases == 0) ? 0 : $spend / $purchases; - $google_cpa = ($platform_purchase == 0) ? 0 : $spend / $platform_purchase; + $google_cpa = ($platform_purchase == 0) ? 0 : $spend / $platform_purchase; $cpm = ($impressions == 0) ? 0 : ($spend * 1000) / $impressions; $cpc = ($clicks == 0) ? 0 : $spend / $clicks; $conversionRate = ($clicks == 0) ? 0 : $purchases / $clicks; @@ -235,6 +236,9 @@ class AdsDashboardService case 'roas': $value = round($roas, 2) . 'X'; break; + case 'google_roas': + $value = round($google_roas, 2) . 'X'; + break; case 'cpoc': $value = '$' . number_format($cpoc, 2) . '%'; break;