예제 #1
0
 /**
  * Method to get all active and paused campaigns from Facebook account
  */
 private function get_campaigns()
 {
     $account = new AdAccount('act_' . self::$accountId);
     $campaigns = $account->getCampaigns(array(CampaignFields::ID, CampaignFields::NAME, CampaignFields::CONFIGURED_STATUS, CampaignFields::EFFECTIVE_STATUS), array('limit' => 500));
     $loopCount = 0;
     while (true) {
         $num = $campaigns->count();
         $campaigns->fetchAfter();
         if ($num == $campaigns->count() || $loopCount == 10) {
             break;
         }
         $loopCount = $loopCount + 1;
     }
     $finalCampaigns = [];
     foreach ($campaigns as $campaign) {
         $campaignData = (array) $campaign->getData();
         //DEBUG
         if ($campaignData['id'] == '6038255171564') {
             self::$testCampaign = array('id' => $campaignData['id'], 'name' => $campaignData['name'], 'configured_status' => $campaignData['configured_status'], 'effective_status' => $campaignData['effective_status']);
         }
         //only active campaigns
         if ($campaignData['effective_status'] != 'ACTIVE' && $campaignData['effective_status'] != 'PAUSED') {
             continue;
         }
         //only active or paused adsets
         if ($campaignData['configured_status'] != 'ACTIVE' && $campaignData['configured_status'] != 'PAUSED') {
             continue;
         }
         $campaignObject = array('id' => $campaignData['id'], 'name' => $campaignData['name'], 'configured_status' => $campaignData['configured_status'], 'effective_status' => $campaignData['effective_status']);
         array_push($finalCampaigns, $campaignObject);
     }
     return $finalCampaigns;
 }