Here is the report definition for ad performance report. here also i am getting for same day multiple row and same ad id.
$selector->dateRange = new DateRange($startDate, $endDate);
$array = array(
'AdGroupId', 'AdGroupName', 'AdGroupStatus', 'AdNetworkType1', 'AdNetworkType2', 'AdType', 'AverageCpc', 'AverageCpm', 'AveragePosition', 'Device',
'CampaignId', 'CampaignName', 'CampaignStatus', 'Clicks',
'Ctr', 'Cost', 'Conversions', 'CostPerConversion', 'ConversionRate', 'ConversionsManyPerClick',
'CostPerConversionManyPerClick', 'ConversionRateManyPerClick', 'Headline', 'Id', 'Status', 'Description1', 'Description2',
'Impressions', 'TotalConvValue', 'ValuePerConversion','DisplayUrl','Url','Date');
$campaignStatusPredicate = new Predicate('CampaignStatus', 'IN', array('ACTIVE', 'PAUSED')); //ACTIVE, DELETED, PAUSED
$AdgrpstatusPredicate = new Predicate('Status', 'IN', array('ENABLED')); //ENABLED, PAUSED, DELETED
$statusPredicate = new Predicate('AdGroupStatus', 'IN', array('ENABLED'));
$selector->predicates = array($AdgrpstatusPredicate, $statusPredicate, $campaignStatusPredicate);
$reportDefinition->reportName = 'Ad performance report #' . time();
$reportDefinition->dateRangeType ='CUSTOM_DATE';
$reportDefinition->reportType = 'AD_PERFORMANCE_REPORT';
$reportDefinition->includeZeroImpressions = FALSE;
Thanks,
Chirag