function getFeedItems(AdWordsServices $adWordsServices, AdWordsSession $session, $adCustomizerFeed) {
$page_limit = 500;
// Get the AdCustomizerFeedService, which loads the required classes.
$feedItemService = $adWordsServices->get($session, FeedItemService::class);
$feedId = $adCustomizerFeed->getFeedId();
$feedItems = array();
// Create selector.
$selector = new Selector();
$selector->setFields(array('FeedItemId','Status','AttributeValues','TargetingAdGroupId'));
// Create predicates.
$selector->setPredicates(array(
new Predicate('Status', 'EQUALS', array('ENABLED')),
new Predicate('FeedId', 'EQUALS', array($feedId))
));
// Create paging controls.
$selector->setPaging(new Paging(0, $page_limit));
$totalNumEntries = 0;
do {
// Make the get request.
$page = $feedItemService->get($selector);
// Display results.
if ($page->getEntries() !== null) {
$totalNumEntries = $page->getTotalNumEntries();
foreach ($page->getEntries() as $feedItem) {
$adGroupId = (int)$feedItem->getAdGroupTargeting()->getTargetingAdGroupId();
$feedPrice = ($feedItem->getAttributeValues())[0]->getStringValue();
$feedShipping = ($feedItem->getAttributeValues())[1]->getStringValue();
$feedItemId = (int)$feedItem->getFeedItemId();
$feedItems[$adGroupId][0] = $feedItemId;
$feedItems[$adGroupId][1] = $feedPrice;
$feedItems[$adGroupId][2] = $feedShipping;
}
} else {
printLog(sprintf("No feed items were found.\n"));
}
// Advance the paging index.
$selector->getPaging()->setStartIndex(
$selector->getPaging()->getStartIndex() + $page_limit
);
} while ($selector->getPaging()->getStartIndex() < $totalNumEntries);
return $feedItems;
}