From 765dc88e875f2f6167ef6a600f2b8ac5da2bd668 Mon Sep 17 00:00:00 2001 From: huangguancheng Date: Mon, 20 Jan 2025 10:58:45 +0800 Subject: [PATCH] =?UTF-8?q?Dashboard=20meta=E3=80=81google=E3=80=81tiktok?= =?UTF-8?q?=E7=9A=84=E7=9C=8B=E6=9D=BF=E6=95=B0=E6=8D=AE=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B03?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/service/AdsDashboardService.php | 54 ++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/app/service/AdsDashboardService.php b/app/service/AdsDashboardService.php index 53047a5..9fd588f 100644 --- a/app/service/AdsDashboardService.php +++ b/app/service/AdsDashboardService.php @@ -109,9 +109,11 @@ class AdsDashboardService COALESCE(SUM(d.spend) / 1000000, 0) as spend, COALESCE(SUM(d.impressions), 0) as impressions, COALESCE(SUM(d.adds_to_cart), 0) as adds_to_cart, - COALESCE(SUM(d.cost_per_atc), 0) as cost_per_atc, COALESCE(SUM(d.purchases), 0) as purchases, + COALESCE(SUM(d.purchases_all), 0) as purchases_all, + COALESCE(SUM(d.platform_purchase), 0) as platform_purchase, COALESCE(SUM(d.purchases_value) / 1000000, 0) as purchases_value, + COALESCE(SUM(d.platform_purchase_value) / 1000000, 0) as platform_purchase_value, COALESCE(SUM(d.revenue) / 1000000, 0) as revenue, COALESCE(SUM(d.total_cost) / 1000000, 0) as total_cost' ) @@ -125,28 +127,28 @@ class AdsDashboardService 'roas' => 'roas', 'cpc' => 'cpc', 'cpm' => 'cpm', - 'meta_purchases' => 'purchases', + 'meta_purchases' => 'platform_purchase', 'web_purchases' => 'purchases', - 'purchases' => 'purchases', - 'meta_conversion_value' => 'purchases_value', + 'purchases' => 'purchases_all', + 'meta_conversion_value' => 'platform_purchase_value', 'web_conversion_value' => 'purchases_value', 'conversion_value' => 'purchases_value', - 'cpoc' => 'cost_per_atc', + 'cpoc' => '', 'ctr' => 'ctr', 'revenue_per_link_click' => 'revenue_per_link_click', 'cpa' => 'cpa', ], 'google' => [ 'google_ads' => 'spend', // 示例映射 - 'conversion_value' => 'purchases_value', + 'conversion_value' => 'platform_purchase_value', 'roas' => 'roas', 'conversions' => 'purchases', 'ctr' => 'ctr', - 'cpa' => 'cpa', + 'cpa' => 'google_cpa', 'cpm' => 'cpm', 'clicks' => 'clicks', 'impressions' => 'impressions', - 'all_conversions_value' => 'purchases_value', + 'all_conversions_value' => 'revenue', 'all_roas' => 'roas', 'all_conversions' => 'purchases', 'all_cpa' => 'cpa', @@ -159,13 +161,13 @@ class AdsDashboardService 'cpc' => 'cpc', 'ctr' => 'ctr', 'cpa' => 'cpa', - 'tiktok_shop_conversions' => 'purchases', - 'tiktok_shop_conversion_value' => 'purchases_value', - 'conversion_value' => 'purchases_value', - 'web_conversion_value' => 'purchases_value', - 'purchases' => 'purchases', + 'tiktok_shop_conversions' => '', + 'tiktok_shop_conversion_value' => '', + 'conversion_value' => 'platform_purchase_value', + 'web_conversion_value' => 'revenue', + 'purchases' => 'platform_purchase', 'web_purchases' => 'purchases', - 'tiktok_gmv_max_ads' => 'revenue', + 'tiktok_gmv_max_ads' => '', ], ]; @@ -187,12 +189,17 @@ class AdsDashboardService $impressions = (int)$data['impressions']; $clicks = (int)$data['clicks']; $purchases = (int)$data['purchases']; - $purchasesValue = (float)$data['purchases_value']; + $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; $ctr = ($impressions == 0) ? 0 : $clicks / $impressions; + $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; $cpm = ($impressions == 0) ? 0 : ($spend * 1000) / $impressions; $cpc = ($clicks == 0) ? 0 : $spend / $clicks; $conversionRate = ($clicks == 0) ? 0 : $purchases / $clicks; @@ -220,17 +227,26 @@ class AdsDashboardService $value = '$' . number_format($totalCost, 2); break; case 'purchases_value': - $value = '$' . number_format($purchasesValue, 2); + $value = '$' . number_format($purchases_value, 2); + break; + case 'platform_purchase_value': + $value = '$' . number_format($platform_purchase_value, 2); break; case 'roas': $value = round($roas, 2) . 'X'; break; + case 'cpoc': + $value = '$' . number_format($cpoc, 2) . '%'; + break; case 'ctr': $value = number_format($ctr * 100, 2) . '%'; break; case 'cpa': $value = '$' . number_format($cpa, 2); break; + case 'google_cpa': + $value = '$' . number_format($google_cpa, 2); + break; case 'cpm': $value = '$' . number_format($cpm, 2); break; @@ -246,6 +262,12 @@ class AdsDashboardService case 'purchases': $value = $purchases; break; + case 'purchases_all': + $value = $purchases_all; + break; + case 'platform_purchase': + $value = $platform_purchase; + break; case 'clicks': $value = $clicks; break;