i am trying to download report for all campaign of all account in xml format . my code is here :
// $campaigns is all campaign
foreach ($campaigns as $campaign) {
$filePath = realpath(dirname(__FILE__)) . "/../../frontend/web/reports/" . $campaign->name . '_' . $campaign->id . '.xml';
$selector->predicates[] = new \Predicate('CampaignId', 'EQUALS', array($campaign->id));
// Optional: use predicate to filter out paused criteria.
// $selector->predicates[] = new \Predicate('CampaignStatus', 'NOT_IN', array('PAUSED'));
// Create report definition.
$reportDefinition = new \ReportDefinition();
$reportDefinition->selector = $selector;
$reportDefinition->reportName = 'Criteria performance report #' . uniqid();
$reportDefinition->dateRangeType = 'ALL_TIME';
$reportDefinition->reportType = 'CAMPAIGN_PERFORMANCE_REPORT';
$reportDefinition->downloadFormat = 'XML';
$options = array();
// the report output.
$options['includeZeroImpressions'] = true;
// Download report.
$report = \ReportUtils::DownloadReport($reportDefinition, $filePath, $user, $options);
}
it download all campaign but only one campaign have ROW element other campaign do not have campaign data. why is that ? report like this
<report><report-name name="Criteria performance report #56de67b688f5f"/><date-range date="All Time"/><table>
<columns><column name="campaignID" display="Campaign ID"/>
<column name="campaign" display="Campaign"/>
<column name="ctr" display="CTR"/>
<column name="impressions" display="Impressions"/>
<column name="clicks" display="Clicks"/
><column name="cost" display="Cost"/>
<column name="clientName" display="Client name"/>
<column name="budget" display="Budget"/>
<column name="endDate" display="End date"/>
<column name="startDate" display="Start date"/>
<column name="campaignState" display="Campaign state"/>
</columns>
</table>
</report>