public function getCompanies() { $path = dirname(__FILE__) . '/dfp/src'; $old_path = set_include_path(get_include_path() . PATH_SEPARATOR . $path); require_once 'Google/Api/Ads/Dfp/Lib/DfpUser.php'; set_include_path($old_path); $cache_token = "dfp_companies"; if (($data = Cache::read($cache_token, "5min")) === false) { $data = array(); try { // Get DfpUser from credentials in "../auth.ini" // relative to the DfpUser.php file's directory. $user = new DfpUser(); $user->LogErrors(); // Log SOAP XML request and response. $user->LogDefaults(); // Get the CompanyService. $companyService = $user->GetCompanyService('v201208'); // Set defaults for page and statement. $page = new CompanyPage(); $filterStatement = new Statement(); $offset = 0; do { // Create a statement to get all companies. $filterStatement->query = 'LIMIT 500 OFFSET ' . $offset; // Get companies by statement. $page = $companyService->getCompaniesByStatement($filterStatement); // Display results. if (isset($page->results)) { $i = $page->startIndex; foreach ($page->results as $k => $company) { $data[$k]['name'] = $company->name; $data[$k]['id'] = $company->id; $data[$k]['type'] = $company->type; } } $offset += 500; } while ($offset < $page->totalResultSetSize); } catch (Exception $e) { die($e->getMessage()); } asort($data); Cache::write($cache_token, $data, "5min"); } return $data; }