13 $campaigns =
$data[
'CAMPAIGNS'] ?? [];
14 if (is_array($campaigns))
16 $campaigns = array_column($campaigns,
'NAME',
'ID');
19 $adGroups =
$data[
'AD_GROUPS'] ?? [];
20 if (is_array($adGroups))
22 $adGroups = array_column($adGroups,
'NAME',
'ID');
25 $ads =
$data[
'ADS'] ?? [];
28 $ads = array_column($ads,
'NAME',
'ID');
35 foreach (
$rows as $row)
37 $clicks = (int)($row[
'CLICKS'] ?? 0);
38 $cost = (float)($row[
'COST'] ?? 0);
39 $impressions = (int)($row[
'IMPRESSIONS'] ?? 0);
43 ? round(($cost / $impressions) * 1000, 2)
49 ? round($cost / $clicks, 2)
53 $date = !empty($row[
'DATE']) ?
new Date($row[
'DATE'],
'Y-m-d') :
null;
56 'impressions' => $row[
'IMPRESSIONS'],
57 'campaignName' => $campaigns[$row[
'CID']] ??
'',
58 'campaignId' => $row[
'CID'],
62 'cpc' => $costPerClick,
64 'cpm' => $costPerMill,
66 'adId' => $row[
'ADID'],
67 'adName' => $ads[$row[
'ADID']] ??
'',
68 'groupId' => $row[
'GID'],
69 'groupName' => $adGroups[$row[
'GID']] ??
'',
70 'utmSource' =>
$data[
'CLICKS'][$row[
'CLICKID']][
'UTM_TAGS'][
'UTM_SOURCE'] ??
'',
71 'utmMedium' =>
$data[
'CLICKS'][$row[
'CLICKID']][
'UTM_TAGS'][
'UTM_MEDIUM'] ??
'',
72 'utmCampaign' =>
$data[
'CLICKS'][$row[
'CLICKID']][
'UTM_TAGS'][
'UTM_CAMPAIGN'] ??
'',
73 'utmContent' =>
$data[
'CLICKS'][$row[
'CLICKID']][
'UTM_TAGS'][
'UTM_CONTENT'] ??
'',
76 $resultCollection->addItem(
new Expenses($formattedRow));
79 return $resultCollection;