Thanks for the response. I took what you said into account and changed the
file as follows (Date,Cost,Impressions) and I'm getting the same result:
<?php
error_reporting(E_STRICT | E_ALL);
$path = dirname(__FILE__) . '/../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Api/Ads/AdWords/Lib/AdWordsUser.php';
try {
$user = new AdWordsUser();
$user->LogDefaults();
$reportDefinitionService = $user->GetReportDefinitionService('v201101');
$adGroupId = (float) 'HIDDEN';
$startDate = '20110501';
$endDate = '20110502';
$selector = new Selector();
$selector->fields = array(*'Date','Impressions','Cost'*);
$selector->dateRange = new DateRange($startDate, $endDate);
$adGroupIdPredicate = new Predicate('AdGroupId', 'EQUALS',
array($adGroupId));
$selector->predicates = array($adGroupIdPredicate);
// Create report definition.
$reportDefinition = new ReportDefinition();
$reportDefinition->reportName = "Test Report";
$reportDefinition->dateRangeType = 'YESTERDAY';
$reportDefinition->reportType = 'ACCOUNT_PERFORMANCE_REPORT';
$reportDefinition->downloadFormat = 'CSV';
$reportDefinition->selector = $selector;
// Create operations.
$operation = new ReportDefinitionOperation();
$operation->operand = $reportDefinition;
$operation->operator = 'ADD';
$operations = array($operation);
// Add report definition.
$result = $reportDefinitionService->mutate($operations);
// Display report definitions.
if ($result != null) {
foreach ($result as $reportDefinition) {
printf("Report definition with name '%s' and id '%s' was added.\n",
$reportDefinition->reportName, $reportDefinition->id);
}
} else {
print "No report definitions were added.\n";
}
} catch (Exception $e) {
print $e->getMessage();
}
v201101$ php AddAccountPerformanceReport.php
ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT @ AdGroupIdDev~14:48:18
v201101$
Any help would be appreciated
---------------------------------
On Thu, May 5, 2011 at 5:51 PM, Ron Jacobson <[email protected]> wrote:
> I run the following to see the available fields for an
> account_performance_report:
>
>
> php GetReportFields.php
> The report type 'ACCOUNT_PERFORMANCE_REPORT' contains the following
> fields:
> - AccountCurrencyCode (String)
> - AccountDescriptiveName (String)
> - AccountTimeZoneId (Integer)
> - AdNetworkType1 (AdNetworkType1) := [SEARCH, CONTENT]
> - AdNetworkType2 (AdNetworkType2) := [SEARCH, SEARCH_PARTNERS,
> CONTENT]
> - AverageCpc (Money)
> - AverageCpm (Money)
> - AveragePosition (Double)
> - BudgetLostImpressionShare (Double)
> - Clicks (Long)
> - ClickType (ClickType) := [URL_CLICKS, CALLS, OTHER,
> PRODUCT_EXTENSION_CLICKS, SITELINKS, PRODUCT_LISTING_AD_CLICKS,
> GET_DIRECTIONS, OFFER_PRINTS]
> - ConversionCategoryName (String)
> - ConversionRate (Double)
> - ConversionRateManyPerClick (Double)
> - Conversions (Long)
> - ConversionsManyPerClick (Long)
> - ConversionTypeName (String)
> - ConversionValue (Long)
> - Cost (Money)
> - CostPerConversion (Money)
> - CostPerConversionManyPerClick (Money)
> - Ctr (Double)
> - CustomerDescriptiveName (String)
> - Date (Date)
> - DayOfWeek (DayOfWeek) := [MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
> FRIDAY, SATURDAY, SUNDAY]
> - Device (DeviceType) := [DESKTOP, HIGH_END_MOBILE]
> - ExactMatchImpressionShare (Double)
> - ExternalCustomerId (Long)
> - HourOfDay (Integer)
>
> The ones I care about are Date,Cost and Impressions. I then make the
> following script to try to make a ACCOUNT_PERFORMANCE_REPORT with the
> above listed fields.
>
>
> <?php
> error_reporting(E_STRICT | E_ALL);
> $path = dirname(__FILE__) . '/../../src';
> set_include_path(get_include_path() . PATH_SEPARATOR . $path);
> require_once 'Google/Api/Ads/AdWords/Lib/AdWordsUser.php';
> try {
> $user = new AdWordsUser();
> $user->LogDefaults();
> $reportDefinitionService = $user-
> >GetReportDefinitionService('v201101');
> $adGroupId = (float) '(hiding number)';
> $startDate = '20110501';
> $endDate = '20110502';
> $selector = new Selector();
> $selector->fields = array('Date','Imps','Spend');
> $selector->dateRange = new DateRange($startDate, $endDate);
> var_dump($selector);
> $adGroupIdPredicate = new Predicate('AdGroupId', 'EQUALS',
> array($adGroupId));
> $selector->predicates = array($adGroupIdPredicate);
> // Create report definition.
> $reportDefinition = new ReportDefinition();
> $reportDefinition->reportName = "Test Report";
> $reportDefinition->dateRangeType = 'YESTERDAY';
> $reportDefinition->reportType = 'ACCOUNT_PERFORMANCE_REPORT';
> $reportDefinition->downloadFormat = 'CSV';
> $reportDefinition->selector = $selector;
>
> // Create operations.
> $operation = new ReportDefinitionOperation();
> $operation->operand = $reportDefinition;
> $operation->operator = 'ADD';
>
> $operations = array($operation);
>
> // Add report definition.
> $result = $reportDefinitionService->mutate($operations);
>
> // Display report definitions.
> if ($result != null) {
> foreach ($result as $reportDefinition) {
> printf("Report definition with name '%s' and id '%s' was added.
> \n",
> $reportDefinition->reportName, $reportDefinition->id);
> }
> } else {
> print "No report definitions were added.\n";
> }
> } catch (Exception $e) {
> print $e->getMessage();
> }
>
>
> When I run, I get the following output:
>
> Dev~21:49:55 v201101$ php AddAccountPerformanceReport.php
> ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT @ ;
> trigger:'Imps'Dev~21:49:58 v201101$
>
>
> I don't understand why the field names are invalid as the earlier
> GetReportFields output included the field names I'm loking for.
>
> Any help that anyone can provide would be great.
>
> Thanks!!
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en