/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function GetAllImagesAndVideosExample(AdWordsUser $user) { // Get the service, which loads the required classes. $mediaService = $user->GetService('MediaService', ADWORDS_VERSION); // Create selector. $selector = new Selector(); $selector->fields = array('MediaId', 'Width', 'Height', 'MimeType', 'Name'); $selector->ordering = array(new OrderBy('MediaId', 'ASCENDING')); // Create predicates. $selector->predicates[] = new Predicate('Type', 'IN', array('IMAGE', 'VIDEO')); // Create paging controls. $selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE); do { // Make the get request. $page = $mediaService->get($selector); // Display images. if (isset($page->entries)) { foreach ($page->entries as $media) { if ($media->MediaType == 'Image') { $dimensions = MapUtils::GetMap($media->dimensions); printf("Image with dimensions '%dx%d', MIME type '%s', and id '%s' " . "was found.\n", $dimensions['FULL']->width, $dimensions['FULL']->height, $media->mimeType, $media->mediaId); } else { if ($media->MediaType == 'Video') { printf("Video with name '%s' and id '%s' was found.\n", $media->name, $media->mediaId); } } } } else { print "No images or videos were found.\n"; } // Advance the paging index. $selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); }
/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function GetKeywordIdeasExample(AdWordsUser $user) { // Get the service, which loads the required classes. $targetingIdeaService = $user->GetService('TargetingIdeaService', ADWORDS_VERSION); // Create selector. $selector = new TargetingIdeaSelector(); $selector->requestType = 'IDEAS'; $selector->ideaType = 'KEYWORD'; $selector->requestedAttributeTypes = array('KEYWORD_TEXT', 'SEARCH_VOLUME', 'CATEGORY_PRODUCTS_AND_SERVICES'); // Create seed keyword. $keyword = 'mars cruise'; // Create related to query search parameter. $relatedToQuerySearchParameter = new RelatedToQuerySearchParameter(); $relatedToQuerySearchParameter->queries = array($keyword); $selector->searchParameters[] = $relatedToQuerySearchParameter; // Create language search parameter (optional). // The ID can be found in the documentation: // https://developers.google.com/adwords/api/docs/appendix/languagecodes // Note: As of v201302, only a single language parameter is allowed. $languageParameter = new LanguageSearchParameter(); $english = new Language(); $english->id = 1000; $languageParameter->languages = array($english); $selector->searchParameters[] = $languageParameter; // Create network search parameter (optional). $networkSetting = new NetworkSetting(); $networkSetting->targetGoogleSearch = true; $networkSetting->targetSearchNetwork = false; $networkSetting->targetContentNetwork = false; $networkSetting->targetPartnerSearchNetwork = false; $networkSearchParameter = new NetworkSearchParameter(); $networkSearchParameter->networkSetting = $networkSetting; $selector->searchParameters[] = $networkSearchParameter; // Set selector paging (required by this service). $selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE); do { // Make the get request. $page = $targetingIdeaService->get($selector); // Display results. if (isset($page->entries)) { foreach ($page->entries as $targetingIdea) { $data = MapUtils::GetMap($targetingIdea->data); $keyword = $data['KEYWORD_TEXT']->value; $search_volume = isset($data['SEARCH_VOLUME']->value) ? $data['SEARCH_VOLUME']->value : 0; if ($data['CATEGORY_PRODUCTS_AND_SERVICES']->value === null) { $categoryIds = ''; } else { $categoryIds = implode(', ', $data['CATEGORY_PRODUCTS_AND_SERVICES']->value); } printf("Keyword idea with text '%s', category IDs (%s) and average " . "monthly search volume '%s' was found.\n", $keyword, $categoryIds, $search_volume); } } else { print "No keywords ideas were found.\n"; } // Advance the paging index. $selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); }
/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function UploadImageExample(AdWordsUser $user) { // Get the service, which loads the required classes. $mediaService = $user->GetService('MediaService', ADWORDS_VERSION); // Create image. $image = new Image(); $image->data = MediaUtils::GetBase64Data('http://goo.gl/HJM3L'); $image->type = 'IMAGE'; // Make the upload request. $result = $mediaService->upload(array($image)); // Display result. $image = $result[0]; $dimensions = MapUtils::GetMap($image->dimensions); printf("Image with dimensions '%dx%d', MIME type '%s', and id '%s' was " . "uploaded.\n", $dimensions['FULL']->width, $dimensions['FULL']->height, $image->mimeType, $image->mediaId); }
/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function UploadMediaBundleExample(AdWordsUser $user) { // Get the service, which loads the required classes. $mediaService = $user->GetService('MediaService', ADWORDS_VERSION); // Create HTML5 media. $html5Zip = new MediaBundle(); $html5Zip->data = MediaUtils::GetBase64Data('https://goo.gl/9Y7qI2'); $html5Zip->type = 'MEDIA_BUNDLE'; // Make the upload request. $result = $mediaService->upload(array($html5Zip)); // Display result. $mediaBundle = $result[0]; $dimensions = MapUtils::GetMap($mediaBundle->dimensions); printf("HTML5 media with ID %d, dimensions '%dx%d', MIME type '%s' was " . "uploaded.\n", $mediaBundle->mediaId, $dimensions['FULL']->width, $dimensions['FULL']->height, $mediaBundle->mimeType); }
function GetKeywordIdeas($adVersion, \AdWordsUser $user, $keywords) { $result = []; // Get the service, which loads the required classes. $targetingIdeaService = $user->GetService('TargetingIdeaService', $adVersion); // Create selector. $selector = new \TargetingIdeaSelector(); $selector->requestType = 'STATS'; $selector->ideaType = 'KEYWORD'; $selector->requestedAttributeTypes = array('KEYWORD_TEXT', 'SEARCH_VOLUME', 'CATEGORY_PRODUCTS_AND_SERVICES'); $locationParameter = new \LocationSearchParameter(); $unitedStates = new \Location(); $unitedStates->id = 2840; $locationParameter->locations = [$unitedStates]; $networkParameter = new \NetworkSearchParameter(); $networdSettings = new \NetworkSetting(); $networdSettings->targetGoogleSearch = true; $networdSettings->targetSearchNetwork = false; $networdSettings->targetContentNetwork = false; $networdSettings->targetPartnerSearchNetwork = false; $networkParameter->networkSetting = $networdSettings; // Create related to query search parameter. $relatedToQuerySearchParameter = new \RelatedToQuerySearchParameter(); $relatedToQuerySearchParameter->queries = $keywords; $selector->searchParameters[] = $relatedToQuerySearchParameter; $selector->searchParameters[] = $locationParameter; $selector->searchParameters[] = $networkParameter; // Set selector paging (required by this service). $selector->paging = new \Paging(0, \AdWordsConstants::RECOMMENDED_PAGE_SIZE); do { // Make the get request. $page = $targetingIdeaService->get($selector); // Display results. if (isset($page->entries)) { foreach ($page->entries as $targetingIdea) { $data = \MapUtils::GetMap($targetingIdea->data); $saerchValue = isset($data['SEARCH_VOLUME']->value) ? $data['SEARCH_VOLUME']->value : 0; $result[] = ['keyword' => $data['KEYWORD_TEXT']->value, 'value' => $saerchValue]; } } else { print "No keywords ideas were found.\n"; } // Advance the paging index. $selector->paging->startIndex += \AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); return $result; }
/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function GetKeywordIdeasExample(AdWordsUser $user) { // Get the service, which loads the required classes. $targetingIdeaService = $user->GetService('TargetingIdeaService', 'v201109_1'); // Create seed keyword. $keyword = new Keyword(); $keyword->text = 'mars cruise'; $keyword->matchType = 'BROAD'; // Create selector. $selector = new TargetingIdeaSelector(); $selector->requestType = 'IDEAS'; $selector->ideaType = 'KEYWORD'; $selector->requestedAttributeTypes = array('CRITERION', 'AVERAGE_TARGETED_MONTHLY_SEARCHES', 'CATEGORY_PRODUCTS_AND_SERVICES'); // Create related to keyword search parameter. $selector->searchParameters[] = new RelatedToKeywordSearchParameter(array($keyword)); // Create keyword match type search parameter to ensure unique results. $selector->searchParameters[] = new KeywordMatchTypeSearchParameter(array('BROAD')); // Set selector paging (required by this service). $selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE); do { // Make the get request. $page = $targetingIdeaService->get($selector); // Display results. if (isset($page->entries)) { foreach ($page->entries as $targetingIdea) { $data = MapUtils::GetMap($targetingIdea->data); $keyword = $data['CRITERION']->value; $averageMonthlySearches = isset($data['AVERAGE_TARGETED_MONTHLY_SEARCHES']->value) ? $data['AVERAGE_TARGETED_MONTHLY_SEARCHES']->value : 0; $categoryIds = implode(', ', $data['CATEGORY_PRODUCTS_AND_SERVICES']->value); printf("Keyword idea with text '%s', match type '%s', category IDs " . "(%s) and average monthly search volume '%s' was found.\n", $keyword->text, $keyword->matchType, $categoryIds, $averageMonthlySearches); } } else { print "No keywords ideas were found.\n"; } // Advance the paging index. $selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); }
/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function GetPlacementIdeasExample(AdWordsUser $user) { // Get the service, which loads the required classes. $targetingIdeaService = $user->GetService('TargetingIdeaService', ADWORDS_VERSION); // Create seed url. $url = 'mars.google.com'; // Create selector. $selector = new TargetingIdeaSelector(); $selector->requestType = 'IDEAS'; $selector->ideaType = 'PLACEMENT'; $selector->requestedAttributeTypes = array('CRITERION', 'PLACEMENT_TYPE'); // Create related to url search parameter. $relatedToUrlSearchParameter = new RelatedToUrlSearchParameter(); $relatedToUrlSearchParameter->urls = array($url); $relatedToUrlSearchParameter->includeSubUrls = FALSE; $selector->searchParameters[] = $relatedToUrlSearchParameter; // Set selector paging (required by this service). $selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE); do { // Make the get request. $page = $targetingIdeaService->get($selector); // Display related placements. if (isset($page->entries)) { foreach ($page->entries as $targetingIdea) { $data = MapUtils::GetMap($targetingIdea->data); $placement = $data['CRITERION']->value; $placementType = $data['PLACEMENT_TYPE']->value; printf("Placement with url '%s' and type '%s' was found.\n", $placement->url, $placementType); } } else { print "No related placements were found.\n"; } // Advance the paging index. $selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); }
/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function GetKeywordIdeasExample(AdWordsUser $user) { // Get the service, which loads the required classes. $targetingIdeaService = $user->GetService('TargetingIdeaService', ADWORDS_VERSION); // Create seed keyword. $keyword = 'mars cruise'; // Create selector. $selector = new TargetingIdeaSelector(); $selector->requestType = 'IDEAS'; $selector->ideaType = 'KEYWORD'; $selector->requestedAttributeTypes = array('KEYWORD_TEXT', 'SEARCH_VOLUME', 'CATEGORY_PRODUCTS_AND_SERVICES'); // Create related to query search parameter. $relatedToQuerySearchParameter = new RelatedToQuerySearchParameter(); $relatedToQuerySearchParameter->queries = array($keyword); $selector->searchParameters[] = $relatedToQuerySearchParameter; // Set selector paging (required by this service). $selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE); do { // Make the get request. $page = $targetingIdeaService->get($selector); // Display results. if (isset($page->entries)) { foreach ($page->entries as $targetingIdea) { $data = MapUtils::GetMap($targetingIdea->data); $keyword = $data['KEYWORD_TEXT']->value; $search_volume = isset($data['SEARCH_VOLUME']->value) ? $data['SEARCH_VOLUME']->value : 0; $categoryIds = implode(', ', $data['CATEGORY_PRODUCTS_AND_SERVICES']->value); printf("Keyword idea with text '%s', category IDs (%s) and average " . "monthly search volume '%s' was found.\n", $keyword, $categoryIds, $search_volume); } } else { print "No keywords ideas were found.\n"; } // Advance the paging index. $selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); }
/** * Test getting a map from an array of map entries. * @param array $mapEntries an array of map entries * @param array $map the expected map * @covers MapUtils::GetMap * @dataProvider MapEntriesProvider */ public function testGetMap(array $mapEntries, array $map) { $result = MapUtils::GetMap($mapEntries); $this->assertEquals($map, $result); }
/** * @param string $adVersion * @param \AdWordsUser $user * @param array $keywords * @return array */ public static function getIdeasByKeywords($adVersion, \AdWordsUser $user, $keywords) { $result = []; // Get the service, which loads the required classes. $targetingIdeaService = $user->GetService('TargetingIdeaService', $adVersion); $selector = self::getIdeasSelector(); // Create related to query search parameter. $relatedToQuerySearchParameter = new \RelatedToQuerySearchParameter(); $relatedToQuerySearchParameter->queries = $keywords; $selector->searchParameters[] = $relatedToQuerySearchParameter; do { // Make the get request. $page = $targetingIdeaService->get($selector); // Display results. if (isset($page->entries)) { foreach ($page->entries as $targetingIdea) { $data = \MapUtils::GetMap($targetingIdea->data); $result[] = ['keyword' => $data[self::ATTRIBUTE_KEYWORD_TEXT]->value]; } } else { print "No keywords ideas were found.\n"; } // Advance the paging index. $selector->paging->startIndex += \AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); return $result; }
/** * @return array|Media\Media[] */ public function loadMedia() { $this->init(); /* @var $mediaService \MediaService */ $mediaService = $this->user->GetService('MediaService', self::ADWORDS_VERSION); // Create selector. $selector = new \Selector(['MediaId', 'Width', 'Height', 'MimeType', 'Name', 'Urls', 'SourceUrl']); $selector->ordering = array(new \OrderBy('Type', 'ASCENDING')); // Create predicates. $selector->predicates[] = new \Predicate('Type', 'IN', array('IMAGE', 'VIDEO')); // Create paging controls. $selector->paging = new \Paging(0, \AdWordsConstants::RECOMMENDED_PAGE_SIZE); $media = []; do { // Make the get request. $page = $mediaService->get($selector); // Display images. if (isset($page->entries)) { foreach ($page->entries as $mediaEntry) { $urls = $mediaEntry->urls ? \MapUtils::GetMap($mediaEntry->urls) : []; if ($mediaEntry->MediaType == 'Image') { $dimensions = \MapUtils::GetMap($mediaEntry->dimensions); $media[] = new Media\Image($mediaEntry->mediaId, $mediaEntry->name, $urls, $mediaEntry->sourceUrl, $mediaEntry->mimeType, $dimensions); } else { if ($mediaEntry->MediaType == 'Video') { $media[] = new Media\Video($mediaEntry->mediaId, $mediaEntry->name, $urls, $mediaEntry->sourceUrl); } } } } else { break; } // Advance the paging index. $selector->paging->startIndex += \AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); return $media; }