$adWordsServices = new AdWordsServices();
$managedCustomerService = $adWordsServices->get(
$session,
ManagedCustomerService::class
);
$selector = new Selector();
$selector->setFields(['CustomerId', 'Name']);
$selector->setOrdering([new OrderBy('Name', SortOrder::ASCENDING)]);
$selector->setPaging(new Paging(0, 500));
$selector->setPredicates([new Predicate('CustomerId',PredicateOperator::NOT_EQUALS,[$managerId])]);
$clients = $managedCustomerService->get($selector);
foreach($clients->getEntries() as $num => $client)
{
// if($client->getCanManageClients() != null)
// if($num == 5)
// break;
$selector = new Selector();
$selector->setFields( ['AccountDescriptiveName','Clicks','Impressions','Ctr','Conversions','ConversionRate','Cost','AveragePosition','AverageCpc','Date'] );
$reportDefinition = new ReportDefinition();
$reportDefinition->setSelector($selector);
$reportDefinition->setReportName(
'ACCOUNT_PERFORMANCE_REPORT'
);
$reportDefinition->setDateRangeType(
ReportDefinitionDateRangeType::ALL_TIME
);
$reportDefinition->setReportType(
ReportDefinitionReportType::ACCOUNT_PERFORMANCE_REPORT
);
$reportDefinition->setDownloadFormat(DownloadFormat::CSV);
$clientSession = (new AdWordsSessionBuilder())
->withDeveloperToken(MY_DEVELOPER_TOKEN)
->withOAuth2Credential($auth)
->withClientCustomerId($client->getCustomerId())
->build();
$reportDownloader = new ReportDownloader($clientSession);
$reportSettingsOverride = (new ReportSettingsBuilder())->includeZeroImpressions(false)->build();
$reportDownloadResult = $reportDownloader->downloadReport(
$reportDefinition,
$reportSettingsOverride
);
//dd(explode(',',$reportDownloadResult->getAsString()));
$array = explode(PHP_EOL,$reportDownloadResult->getAsString());
foreach($array as $n => $row)
{
if($n == (count($array) - 1))
unset($array[$n]);
}
foreach($array as $n => $row)
{
if($n == (count($array) - 1)){
$account = explode(',',$row);
$accounts[] = [
'account' => $client->getName(),
'Clicks' => $account[1],
'Impressions' => $account[2],
'Ctr' => $account[3],
'Conversions' => $account[4],
'ConversionRate' => $account[5],
'Cost' => $account[6],
'AveragePosition' => $account[7],
'AverageCpc' => $account[8]
];
}
}
//dd($accounts);
}
$accounts = collect($accounts);