/**
 * 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;
 }
Exemple #11
0
 /**
  * @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;
 }