public function testMerge() { $campaign_stats1 = new \ebussola\ads\reports\facebook\campaignstats\CampaignStats($this->genCampaignStats()); $campaign_stats1->refreshValues(); $campaign_stats2 = new \ebussola\ads\reports\facebook\campaignstats\CampaignStats($this->genCampaignStats()); $campaign_stats2->refreshValues(); $campaign_stats1->merge($campaign_stats2); $this->assertGreaterThan($campaign_stats2->impressions, $campaign_stats1->impressions); $this->assertGreaterThan($campaign_stats2->app_custom_event, $campaign_stats1->app_custom_event); $this->assertGreaterThan($campaign_stats2->app_engagement, $campaign_stats1->app_engagement); $this->assertGreaterThan($campaign_stats2->app_story, $campaign_stats1->app_story); $this->assertGreaterThan($campaign_stats2->offsite_conversion, $campaign_stats1->offsite_conversion); $this->assertGreaterThan($campaign_stats2->page_engagement, $campaign_stats1->page_engagement); $this->assertGreaterThan($campaign_stats2->post_engagement, $campaign_stats1->post_engagement); $this->assertGreaterThan($campaign_stats2->social_clicks, $campaign_stats1->social_clicks); $this->assertGreaterThan($campaign_stats2->social_impressions, $campaign_stats1->social_impressions); $this->assertGreaterThan($campaign_stats2->unique_clicks, $campaign_stats1->unique_clicks); $this->assertGreaterThan($campaign_stats2->unique_impressions, $campaign_stats1->unique_impressions); $this->assertGreaterThan($campaign_stats2->unique_social_clicks, $campaign_stats1->unique_social_clicks); $this->assertGreaterThan($campaign_stats2->unique_social_impressions, $campaign_stats1->unique_social_impressions); $this->assertGreaterThan($campaign_stats2->clicks, $campaign_stats1->clicks); $this->assertGreaterThan($campaign_stats2->cost, $campaign_stats1->cost); }
/** * @param $campaign_ids * @param \DateTime $date_start * @param \DateTime $date_end * @param $stats_data * * @return array */ private function _createDailyCampaignStats($campaign_ids, \DateTime $date_start, \DateTime $date_end) { $data_columns = $this->getCampaignFields(); $filters = array(ReportStatsHelper::createFilter('campaign_id', 'in', $campaign_ids)); $stats = $this->ads->getDailyReportStats($this->account_id, $data_columns, $filters, $date_start, $date_end); $stats_report = new CampaignStatsReport(); foreach ($stats as $stats_data) { $stats = new \ebussola\ads\reports\facebook\campaignstats\CampaignStats($stats_data); $stats->refreshValues(); $stats_report->addStats($stats); } return $stats_report; }