Hi Ian,

In regards to the CampaignStatus predicate, that does appear to be a
bug.  There is a problem with the backend logic that comes up when you
filter on that field but don't include it in your selector.  It
doesn't appear to affect the ADGROUP report however, which is why I
couldn't reproduce it before.  I've opened an issue with the core
engineering team, but I don't know when it will be resolved.

In regards to the AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT fields, I'm
not seeing those in getReportFields():

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/
envelope/" xmlns:v20="https://adwords.google.com/api/adwords/cm/
v201008">
   <soapenv:Header>
      <v20:RequestHeader>
         ...
      </v20:RequestHeader>
   </soapenv:Header>
   <soapenv:Body>
      <v20:getReportFields>
         <v20:reportType>AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT</
v20:reportType>
      </v20:getReportFields>
   </soapenv:Body>
</soapenv:Envelope>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
   <soap:Header>
      <ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/
v201008">
         ...
      </ResponseHeader>
   </soap:Header>
   <soap:Body>
      <getReportFieldsResponse xmlns="https://adwords.google.com/api/
adwords/cm/v201008">
         <rval>
            <fieldName>AdGroupId</fieldName>
            <displayFieldName>Ad group ID</displayFieldName>
            <xmlAttributeName>adGroupID</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>AdGroupName</fieldName>
            <displayFieldName>Ad group</displayFieldName>
            <xmlAttributeName>adGroup</xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>AdGroupStatus</fieldName>
            <displayFieldName>Ad group state</displayFieldName>
            <xmlAttributeName>adGroupState</xmlAttributeName>
            <fieldType>AdGroupStatus</fieldType>
            <enumValues>ENABLED</enumValues>
            <enumValues>PAUSED</enumValues>
            <enumValues>DELETED</enumValues>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>AdNetworkType1</fieldName>
            <displayFieldName>Network</displayFieldName>
            <xmlAttributeName>network</xmlAttributeName>
            <fieldType>AdNetworkType1</fieldType>
            <enumValues>SEARCH</enumValues>
            <enumValues>CONTENT</enumValues>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>AdNetworkType2</fieldName>
            <displayFieldName>Network (with search partners)</
displayFieldName>
            <xmlAttributeName>networkWithSearchPartners</
xmlAttributeName>
            <fieldType>AdNetworkType2</fieldType>
            <enumValues>SEARCH</enumValues>
            <enumValues>SEARCH_PARTNERS</enumValues>
            <enumValues>CONTENT</enumValues>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>AverageCpc</fieldName>
            <displayFieldName>Avg. CPC</displayFieldName>
            <xmlAttributeName>avgCPC</xmlAttributeName>
            <fieldType>Money</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>AverageCpm</fieldName>
            <displayFieldName>Avg. CPM</displayFieldName>
            <xmlAttributeName>avgCPM</xmlAttributeName>
            <fieldType>Money</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>CampaignId</fieldName>
            <displayFieldName>Campaign ID</displayFieldName>
            <xmlAttributeName>campaignID</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>CampaignName</fieldName>
            <displayFieldName>Campaign</displayFieldName>
            <xmlAttributeName>campaign</xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>CampaignStatus</fieldName>
            <displayFieldName>Campaign state</displayFieldName>
            <xmlAttributeName>campaignState</xmlAttributeName>
            <fieldType>CampaignStatus</fieldType>
            <enumValues>ACTIVE</enumValues>
            <enumValues>DELETED</enumValues>
            <enumValues>PAUSED</enumValues>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Clicks</fieldName>
            <displayFieldName>Clicks</displayFieldName>
            <xmlAttributeName>clicks</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ConversionCategoryName</fieldName>
            <displayFieldName>Conversion tracking purpose</
displayFieldName>
            <xmlAttributeName>conversionTrackingPurpose</
xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ConversionRate</fieldName>
            <displayFieldName>Conv. rate (1-per-click)</
displayFieldName>
            <xmlAttributeName>convRate1PerClick</xmlAttributeName>
            <fieldType>Double</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ConversionRateManyPerClick</fieldName>
            <displayFieldName>Conv. rate (many-per-click)</
displayFieldName>
            <xmlAttributeName>convRateManyPerClick</xmlAttributeName>
            <fieldType>Double</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Conversions</fieldName>
            <displayFieldName>Conv. (1-per-click)</displayFieldName>
            <xmlAttributeName>conv1PerClick</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ConversionsManyPerClick</fieldName>
            <displayFieldName>Conv. (many-per-click)</
displayFieldName>
            <xmlAttributeName>convManyPerClick</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ConversionTypeName</fieldName>
            <displayFieldName>Conversion action name</
displayFieldName>
            <xmlAttributeName>conversionActionName</xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ConversionValue</fieldName>
            <displayFieldName>Total conv. value</displayFieldName>
            <xmlAttributeName>totalConvValue</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Cost</fieldName>
            <displayFieldName>Cost</displayFieldName>
            <xmlAttributeName>cost</xmlAttributeName>
            <fieldType>Money</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>CostPerConversion</fieldName>
            <displayFieldName>Cost / conv. (1-per-click)</
displayFieldName>
            <xmlAttributeName>costConv1PerClick</xmlAttributeName>
            <fieldType>Money</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>CostPerConversionManyPerClick</fieldName>
            <displayFieldName>Cost / conv. (many-per-click)</
displayFieldName>
            <xmlAttributeName>costConvManyPerClick</xmlAttributeName>
            <fieldType>Money</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Ctr</fieldName>
            <displayFieldName>CTR</displayFieldName>
            <xmlAttributeName>ctr</xmlAttributeName>
            <fieldType>Double</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Date</fieldName>
            <displayFieldName>Day</displayFieldName>
            <xmlAttributeName>day</xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>DayOfWeek</fieldName>
            <displayFieldName>Day of week</displayFieldName>
            <xmlAttributeName>dayOfWeek</xmlAttributeName>
            <fieldType>DayOfWeek</fieldType>
            <enumValues>MONDAY</enumValues>
            <enumValues>TUESDAY</enumValues>
            <enumValues>WEDNESDAY</enumValues>
            <enumValues>THURSDAY</enumValues>
            <enumValues>FRIDAY</enumValues>
            <enumValues>SATURDAY</enumValues>
            <enumValues>SUNDAY</enumValues>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Domain</fieldName>
            <displayFieldName>Domain</displayFieldName>
            <xmlAttributeName>domain</xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Impressions</fieldName>
            <displayFieldName>Impressions</displayFieldName>
            <xmlAttributeName>impressions</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>IsAutoOptimized</fieldName>
            <displayFieldName>Targeting Mode</displayFieldName>
            <xmlAttributeName>targetingMode</xmlAttributeName>
            <fieldType>boolean</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Month</fieldName>
            <displayFieldName>Month</displayFieldName>
            <xmlAttributeName>month</xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>MonthOfYear</fieldName>
            <displayFieldName>Month of Year</displayFieldName>
            <xmlAttributeName>monthOfYear</xmlAttributeName>
            <fieldType>MonthOfYearType</fieldType>
            <enumValues>JANUARY</enumValues>
            <enumValues>FEBRUARY</enumValues>
            <enumValues>MARCH</enumValues>
            <enumValues>APRIL</enumValues>
            <enumValues>MAY</enumValues>
            <enumValues>JUNE</enumValues>
            <enumValues>JULY</enumValues>
            <enumValues>AUGUST</enumValues>
            <enumValues>SEPTEMBER</enumValues>
            <enumValues>OCTOBER</enumValues>
            <enumValues>NOVEMBER</enumValues>
            <enumValues>DECEMBER</enumValues>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Quarter</fieldName>
            <displayFieldName>Quarter</displayFieldName>
            <xmlAttributeName>quarter</xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>TotalConvValue</fieldName>
            <displayFieldName>Total conv. value</displayFieldName>
            <xmlAttributeName>totalConvValue</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ValuePerConv</fieldName>
            <displayFieldName>Value / conv. (1-per-click)</
displayFieldName>
            <xmlAttributeName>valueConv1PerClick</xmlAttributeName>
            <fieldType>Double</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ValuePerConversion</fieldName>
            <displayFieldName>Value / conv. (1-per-click)</
displayFieldName>
            <xmlAttributeName>valueConv1PerClick</xmlAttributeName>
            <fieldType>Double</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ValuePerConversionManyPerClick</fieldName>
            <displayFieldName>Value / conv. (many-per-click)</
displayFieldName>
            <xmlAttributeName>valueConvManyPerClick</xmlAttributeName>
            <fieldType>Double</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ValuePerConvManyPerClick</fieldName>
            <displayFieldName>Value / conv. (many-per-click)</
displayFieldName>
            <xmlAttributeName>valueConvManyPerClick</xmlAttributeName>
            <fieldType>Double</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>ViewThroughConversions</fieldName>
            <displayFieldName>View-through conv.</displayFieldName>
            <xmlAttributeName>viewThroughConv</xmlAttributeName>
            <fieldType>Long</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Week</fieldName>
            <displayFieldName>Week</displayFieldName>
            <xmlAttributeName>week</xmlAttributeName>
            <fieldType>String</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
         <rval>
            <fieldName>Year</fieldName>
            <displayFieldName>Year</displayFieldName>
            <xmlAttributeName>year</xmlAttributeName>
            <fieldType>Integer</fieldType>
            <canSelect>true</canSelect>
            <canFilter>true</canFilter>
         </rval>
      </getReportFieldsResponse>
   </soap:Body>
</soap:Envelope>

Best,
- Eric

On Dec 22, 7:14 pm, Ian <perig...@gmail.com> wrote:
> So I just checked it with our production account and the behavior is
> the same.
> Here is the report error, for the Ad_Performance_Report w/o any
> campaign fields:
> !!!1|||9531640|||Unexpected exception???
>
> If you add any of the campaign fields back--it works fine. The
> predicate is defined thus (C#):
> new Predicate
> {
>     field = "CampaignStatus",
>     @operator = PredicateOperator.NOT_EQUALS,
>     operatorSpecified = true,
>     values = new string[]{ "DELETED" }
>
> }
>
> Then for the AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT the fields below
> _ARE_ included in the getReportFields() with canSelect = true --
>   Id,
>   Status,
>   PlacementUrl
>
> However, if I include any of them in my ReportDefinition, then at
> validation I get a SOAP fault similar to this:
>
> <detail>
>   <ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/cm/
> v201008">
>     <message>ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT @ ;
> trigger:'Id'</message>
>     <ApplicationException.Type>ApiException</
> ApplicationException.Type>
>     <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:type="ReportDefinitionError">
>       <fieldPath>
>       </fieldPath>
>       <trigger>Id</trigger>
>
> <errorString>ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT</
> errorString>
>       <ApiError.Type>ReportDefinitionError</ApiError.Type>
>       <reason>INVALID_FIELD_NAME_FOR_REPORT</reason>
>     </errors>
>   </ApiExceptionFault>
> </detail>
>
> On Dec 22, 11:55 am, AdWords API Advisor
>
>
>
>
>
>
>
> <adwordsapiadvi...@google.com> wrote:
> > Hi Ian,
>
> > I'm only able to look up information about reports in the production
> > environment, so I'm not able to dig into the error you got.  There
> > shouldn't be any requirement that a field needs to be in the report to
> > be filtered on.  I tried this myself and it worked fine.  There is a
> > known issue around filtering on CampaignStatus using PAUSED, and that
> > should be fixed within a few weeks after the holidays.  We are working
> > to add more validation before the report is downloaded, but currently
> > some of these errors are only caught at download time.
>
> > Regarding the fields in AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT, as I
> > mentioned the online documentation is a little out of date, and you
> > should use the fields returned by getReportFields().
>
> > Best,
> > - Eric
>
> > On Dec 20, 6:36 pm, Ian <perig...@gmail.com> wrote:
>
> > > I figured out the issue:
> > > The a sandbox version of the report: ID - 13961.
> > > ReportType = ReportDefinitionReportType.AD_PERFORMANCE_REPORT
>
> > > I was thinking/hoping that like SQL you could filter on fields that you
> > > didn't appear in the result set. But this appears at least partially not 
> > > to
> > > be the case. If you do not include any of the Campaign fields (CampaignId,
> > > CampaignName, CampaignStatus) then you cannot set a predicate on
> > > CampaignStatus. The odd part--at least to me--is that this passes the
> > > validateOnly, but fails when attempting the download. Is there any
> > > documentation available for these types of relationships--i.e., you must
> > > select fields a/b/c to filter on b?
>
> > > The other issue we are running into is several fields that are listed in 
> > > the
> > > getReportFields methods, fail validation when included in the selector
> > > despite being listed as selectable, specifically:
> > > For AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT --
> > >   Id,
> > >   Status,
> > >   PlacementUrl
>
> > > These fields also happen to be missing from the previously linked 
> > > ReportType
> > > appendix page. Again this is against the Sandbox so perhaps Production is
> > > different--I haven't really checked.
>
> > > Anyway thanks for any assistance.
>
> > > -Ian

-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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