cost_per_purchase

This commit is contained in:
huangguancheng 2025-01-10 17:54:42 +08:00
parent 5d8d1085ba
commit d574c02f41

View File

@ -30,7 +30,7 @@ class AdsInsightService
/**
* 获取广告系列列表
*/
public static function getCampaignList($platformType, $customerIds, $page, $pageSize, $keyword, $startDate = null, $endDate = null,$status =0)
public static function getCampaignList($platformType, $customerIds, $page, $pageSize, $keyword, $startDate = null, $endDate = null, $status = 0)
{
// 检查 customerIds 是否为空,直接返回空结构
if (empty($customerIds)) {
@ -96,6 +96,8 @@ class AdsInsightService
$total_impressions = array_sum(array_column($allCampaigns, 'impressions'));
$total_clicks = array_sum(array_column($allCampaigns, 'clicks'));
$total_purchases_value = array_sum(array_column($allCampaigns, 'purchases_value'));
$total_purchases = array_sum(array_column($allCampaigns, 'purchases'));
$cost_per_purchase = $total_purchases == 0 ? 0 : round($total_spend / $total_purchases, 2);
// 汇总统计数据
$statistics = [
'assisted_purchases' => array_sum(array_column($allCampaigns, 'assisted_purchases')),
@ -108,6 +110,7 @@ class AdsInsightService
'cost_per_atc' => array_sum(array_column($allCampaigns, 'cost_per_atc')),
'purchases' => array_sum(array_column($allCampaigns, 'purchases')),
'purchases_value' => array_sum(array_column($allCampaigns, 'purchases_value')),
'cost_per_purchase' => '$' . number_format($cost_per_purchase, 2) ?: '$0.00',
'revenue' => '$' . number_format(array_sum(array_column($allCampaigns, 'revenue')), 2) ?: '$0.00', // 格式化收入
'total_cost' => '$' . number_format($total_cost, 2) ?: '$0.00', // 格式化总成本
'conversion_rate' => '-', // 没有计算逻辑,保持为 '-'
@ -140,6 +143,7 @@ class AdsInsightService
'cost_per_atc' => $item['cost_per_atc'],
'purchases' => $item['purchases'],
'purchases_value' => '$' . number_format($item['purchases_value'], 2), // 格式化购买金额
'cost_per_purchase' => $item['purchases'] > 0 ? '$' . number_format(($item['spend'] / $item['purchases']), 2) : '$0.00',
'revenue' => '$' . number_format($item['revenue'], 2), // 格式化收入
'total_cost' => '$' . number_format($item['total_cost'], 2), // 格式化总成本
'conversion_rate' => '-', // 没有提供有效的计算,保持为 '-'
@ -236,6 +240,8 @@ class AdsInsightService
$total_impressions = array_sum(array_column($allAdsets, 'impressions'));
$total_clicks = array_sum(array_column($allAdsets, 'clicks'));
$total_purchases_value = array_sum(array_column($allAdsets, 'purchases_value'));
$total_purchases = array_sum(array_column($allAdsets, 'purchases'));
$cost_per_purchase = $total_purchases == 0 ? 0 : round($total_spend / $total_purchases, 2);
// 汇总统计数据
$statistics = [
@ -249,6 +255,7 @@ class AdsInsightService
'cost_per_atc' => array_sum(array_column($allAdsets, 'cost_per_atc')),
'purchases' => array_sum(array_column($allAdsets, 'purchases')),
'purchases_value' => array_sum(array_column($allAdsets, 'purchases_value')),
'cost_per_purchase' => '$' . number_format($cost_per_purchase, 2) ?: '$0.00',
'revenue' => '$' . number_format(array_sum(array_column($allAdsets, 'revenue')), 2) ?: '$0.00', // 格式化收入
'total_cost' => '$' . number_format($total_cost, 2) ?: '$0.00', // 格式化总成本
'conversion_rate' => '-', // 没有计算逻辑,保持为 '-'
@ -281,6 +288,7 @@ class AdsInsightService
'cost_per_atc' => $item['cost_per_atc'],
'purchases' => $item['purchases'],
'purchases_value' => '$' . number_format($item['purchases_value'], 2), // 格式化购买金额
'cost_per_purchase' => $item['purchases'] > 0 ? '$' . number_format(($item['spend'] / $item['purchases']), 2) : '$0.00',
'revenue' => '$' . number_format($item['revenue'], 2), // 格式化收入
'total_cost' => '$' . number_format($item['total_cost'], 2), // 格式化总成本
'conversion_rate' => '-', // 没有提供有效的计算,保持为 '-'
@ -374,6 +382,8 @@ class AdsInsightService
$total_impressions = array_sum(array_column($allAds, 'impressions'));
$total_clicks = array_sum(array_column($allAds, 'clicks'));
$total_purchases_value = array_sum(array_column($allAds, 'purchases_value'));
$total_purchases = array_sum(array_column($allAds, 'purchases'));
$cost_per_purchase = $total_purchases == 0 ? 0 : round($total_spend / $total_purchases, 2);
$statistics = [
'assisted_purchases' => array_sum(array_column($allAds, 'assisted_purchases')),
@ -386,6 +396,7 @@ class AdsInsightService
'cost_per_atc' => array_sum(array_column($allAds, 'cost_per_atc')),
'purchases' => array_sum(array_column($allAds, 'purchases')),
'purchases_value' => array_sum(array_column($allAds, 'purchases_value')),
'cost_per_purchase' => '$' . number_format($cost_per_purchase, 2) ?: '$0.00',
'revenue' => '$' . number_format(array_sum(array_column($allAds, 'revenue')), 2) ?: '$0.00', // 格式化收入
'total_cost' => '$' . number_format($total_cost, 2) ?: '$0.00', // 格式化总成本
'conversion_rate' => '-', // 没有计算逻辑,保持为 '-'
@ -417,6 +428,7 @@ class AdsInsightService
'cost_per_atc' => $item['cost_per_atc'],
'purchases' => $item['purchases'],
'purchases_value' => '$' . number_format($item['purchases_value'], 2), // 格式化购买金额
'cost_per_purchase' => $item['purchases'] > 0 ? '$' . number_format(($item['spend'] / $item['purchases']), 2) : '$0.00',
'revenue' => '$' . number_format($item['revenue'], 2), // 格式化收入
'total_cost' => '$' . number_format($item['total_cost'], 2), // 格式化总成本
'conversion_rate' => '-', // 没有提供有效的计算,保持为 '-'
@ -525,7 +537,7 @@ class AdsInsightService
// 计算 ROAS
$roas = $total_spend == 0 ? '-' : round($total_purchases_value / $total_spend, 2);
$cost_per_purchase = $total_purchases == 0? 0 : round($total_spend / $total_purchases, 2);
$cost_per_purchase = $total_purchases == 0 ? 0 : round($total_spend / $total_purchases, 2);
// 计算 CTR
$ctr = $total_impressions > 0 ? number_format(($total_clicks / $total_impressions) * 100, 2) . '%' : '-';