Thank's for your answer, but I still cannot solve it.

The following is my whole code, which I get the error message
"Unmarshalling Error: cvc-type.2: The type definition cannot be
abstract for element ns1:searchParameters."


<?php
// require_once 'aw-api/src/Google/Api/Ads/AdWords/Lib/
AdWordsUser.php';

/**
 * This example gets keywords related to a seed keyword.
 *
 * Tags: TargetingIdeaService.get
 * Restriction: adwords-only
 *
 * PHP version 5
 *
 * Copyright 2011, Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @package    GoogleApiAdsAdWords
 * @subpackage v201109
 * @category   WebServices
 * @copyright  2011, Google Inc. All Rights Reserved.
 * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache
License,
 *             Version 2.0
 * @author     Eric Koleda <api.ekol...@gmail.com>
 */

error_reporting(E_ALL);

// You can set the include path to src directory or reference
// AdWordsUser.php directly via require_once.
// $path = '/path/to/aw_api_php_lib/src';
$path = dirname(__FILE__) . '/../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

require_once 'aw-api/src/Google/Api/Ads/AdWords/Lib/AdWordsUser.php';
require_once 'aw-api/src/Google/Api/Ads/Common/Util/MapUtils.php';

try {
  // Get AdWordsUser from credentials in "../auth.ini"
  // relative to the AdWordsUser.php file's directory.
  $user = new AdWordsUser();

  // Log SOAP XML request and response.
  $user->LogDefaults();

  // Get the TargetingIdeaService.
  $targetingIdeaService = $user->GetService('TargetingIdeaService',
'v201109');

  // Create seed keyword.
  $keyword = new Keyword();
  $keyword->text = 'mars cruise';
  $keyword->matchType = 'BROAD';

  // START CHANGES

  $locations = array();
  $location = new Location();
  $location->id = 2840; //Id can be found with examples/v201109/
GetLocationCriteria.php

  $locations[] = $location;
  $locationTargetParameter = new
LocationSearchParameter($locations); // Expects arra of locations
  $selector->searchParameters =
  array($relatedToKeywordSearchParameter,
  $keywordMatchTypeSearchParameter, $locationTargetParameter);

  // END CHANGES

  // Get related keywords.
  $page = $targetingIdeaService->get($selector);

  // Display related keywords.
  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;
      printf("Keyword with text '%s', match type '%s', and average
monthly "
          . "search volume '%s' was found.\n", $keyword->text,
          $keyword->matchType, $averageMonthlySearches);
    }
  } else {
    print "No related keywords were found.\n";
  }
} catch (Exception $e) {
  print $e->getMessage();
}
?>




On 29 Dez., 19:29, Evgeniy Bogdanov <bogda...@tagan.ru> wrote:
> My code were outdated. For not last version of API (which is currently
> v201109).
> I've researched this issue and this is new version of code that you
> need, it's based on examples/v201109/GetRelatedKeywords.php, changes
> are commented:
>
> try {
>   // Get AdWordsUser from credentials in "../auth.ini"
>   // relative to the AdWordsUser.php file's directory.
>   $user = new AdWordsUser();
>
>   // Log SOAP XML request and response.
>   $user->LogDefaults();
>
>   // Get the TargetingIdeaService.
>   $targetingIdeaService = $user->GetService('TargetingIdeaService',
> 'v201109');
>
>   // 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');
>
>   // Set selector paging (required for targeting idea service).
>   $paging = new Paging();
>   $paging->startIndex = 0;
>   $paging->numberResults = 10;
>   $selector->paging = $paging;
>
>   // Create related to keyword search parameter.
>   $relatedToKeywordSearchParameter = new
> RelatedToKeywordSearchParameter();
>   $relatedToKeywordSearchParameter->keywords = array($keyword);
>
>   // Create keyword match type search parameter to ensure unique
> results.
>   $keywordMatchTypeSearchParameter = new
> KeywordMatchTypeSearchParameter();
>   $keywordMatchTypeSearchParameter->keywordMatchTypes =
> array('BROAD');
>
>   // Start changes
>   $locations = array();
>   $location = new Location();
>   $location->id = 2840; //Id can be found with examples/v201109/
> GetLocationCriteria.php
>                                                 // I've selected whole United 
> States
>   $locations[] = $location;
>
>   $locationTargetParameter = new
> LocationSearchParameter($locations); // Expects arra of locations
>
>   $selector->searchParameters =
>       array($relatedToKeywordSearchParameter,
> $keywordMatchTypeSearchParameter, $locationTargetParameter);
>   // End changes
>
>   // Get related keywords.
>   $page = $targetingIdeaService->get($selector);
>
>   // Display related keywords.
>   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;
>       printf("Keyword with text '%s', match type '%s', and average
> monthly "
>           . "search volume '%s' was found.\n", $keyword->text,
>           $keyword->matchType, $averageMonthlySearches);
>     }
>   } else {
>     print "No related keywords were found.\n";
>   }} catch (Exception $e) {
>
>   print $e->getMessage();
>
>
>
>
>
>
>
> }

-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en

Reply via email to