campaign_name \platform_type

This commit is contained in:
huangguancheng 2025-01-10 18:44:27 +08:00
parent 0e697e0534
commit 3e75cec3c5

View File

@ -203,7 +203,8 @@ class AdsInsightService
$query = BpsAdSet::alias('s') $query = BpsAdSet::alias('s')
->cache(false) // 强制不使用缓存 ->cache(false) // 强制不使用缓存
->leftJoin('bps.bps_ads_insights d', "s.ad_set_id = d.ad_set_id AND s.platform_type = d.platform AND {$dateCondition}") ->leftJoin('bps.bps_ads_insights d', "s.ad_set_id = d.ad_set_id AND s.platform_type = d.platform AND {$dateCondition}")
->field('s.ad_set_id, s.status as status, s.name, s.account_id,s.platform_type, ->leftJoin('bps.bps_ads_campaign c', 's.campaign_id = c.campaign_id') // 联接广告系列表
->field('s.ad_set_id, s.status as status, s.name, s.account_id,s.platform_type,c.name as campaign_name,
COALESCE(SUM(d.assisted_purchases), 0) as assisted_purchases, COALESCE(SUM(d.assisted_purchases), 0) as assisted_purchases,
COALESCE(SUM(d.last_clicked_purchases), 0) as last_clicked_purchases, COALESCE(SUM(d.last_clicked_purchases), 0) as last_clicked_purchases,
COALESCE(SUM(d.clicks), 0) as clicks, COALESCE(SUM(d.clicks), 0) as clicks,
@ -216,7 +217,7 @@ class AdsInsightService
COALESCE(SUM(d.revenue), 0) as revenue, COALESCE(SUM(d.revenue), 0) as revenue,
COALESCE(SUM(d.total_cost), 0) as total_cost, COALESCE(SUM(d.total_cost), 0) as total_cost,
-1 as conversion_rate, -1 as roas, -1 as ctr,-1 as net_profit,-1 as net_profit_margin,-1 as net_profit_on_ad_spend') -1 as conversion_rate, -1 as roas, -1 as ctr,-1 as net_profit,-1 as net_profit_margin,-1 as net_profit_on_ad_spend')
->group('s.ad_set_id, s.status, s.account_id, s.name,s.platform_type') ->group('s.ad_set_id, s.status, s.account_id, s.name,s.platform_type,c.name')
->where('s.account_id', 'in', $customerIds); // 添加 customerIds 条件 ->where('s.account_id', 'in', $customerIds); // 添加 customerIds 条件
if ($status !== 0) { if ($status !== 0) {
$query->where('s.status', '=', $status); $query->where('s.status', '=', $status);
@ -278,6 +279,7 @@ class AdsInsightService
'platform_type' => $item['platform_type'], 'platform_type' => $item['platform_type'],
'account_id' => $item['account_id'], // 映射为 customer_id 'account_id' => $item['account_id'], // 映射为 customer_id
'name' => $item['name'] ?: '-', // 若 name 为空则显示 '-' 'name' => $item['name'] ?: '-', // 若 name 为空则显示 '-'
'campaign_name' => $item['campaign_name'] ?: '-', // 若 name 为空则显示 '-'
'status' => $item['status'], 'status' => $item['status'],
'assisted_purchases' => $item['assisted_purchases'], 'assisted_purchases' => $item['assisted_purchases'],
'last_clicked_purchases' => $item['last_clicked_purchases'], 'last_clicked_purchases' => $item['last_clicked_purchases'],
@ -487,7 +489,7 @@ class AdsInsightService
$query = ThirdUser::alias('u') $query = ThirdUser::alias('u')
->cache(false) // 强制不使用缓存 ->cache(false) // 强制不使用缓存
->leftJoin('bps.bps_third_user_advertiser a', "u.id = a.doc_") ->leftJoin('bps.bps_third_user_advertiser a', "u.id = a.doc_")
->field('u.id as user_id,u.third_type as platform_type,a.advertiser_name, ->field('u.id as user_id,u.third_type,a.advertiser_name,
COALESCE(SUM(d.assisted_purchases), 0) as assisted_purchases, COALESCE(SUM(d.assisted_purchases), 0) as assisted_purchases,
COALESCE(SUM(d.last_clicked_purchases), 0) as last_clicked_purchases, COALESCE(SUM(d.last_clicked_purchases), 0) as last_clicked_purchases,
@ -579,7 +581,7 @@ class AdsInsightService
if (!isset($aggregatedUsers[$thirdUserId])) { if (!isset($aggregatedUsers[$thirdUserId])) {
$aggregatedUsers[$thirdUserId] = [ $aggregatedUsers[$thirdUserId] = [
'user_id' => $item['user_id'], 'user_id' => $item['user_id'],
'third_type' => $item['third_type'], 'platform_type' => self::getPlatformType($item['third_type']),
'advertiser_name' => $item['advertiser_name'], 'advertiser_name' => $item['advertiser_name'],
'assisted_purchases' => 0, 'assisted_purchases' => 0,
'last_clicked_purchases' => 0, 'last_clicked_purchases' => 0,
@ -1137,4 +1139,16 @@ class AdsInsightService
// 获取年-月格式 // 获取年-月格式
return $dateObj->format('Y-m'); return $dateObj->format('Y-m');
} }
public static function getPlatformType($thirdType)
{
$platformMapping = [
'facebook' => 1,
'google' => 2,
'tiktok' => 3,
];
return $platformMapping[$thirdType] ?? null; // 如果不存在的第三方类型,返回 null
}
} }