google-api – 如何找出adwords中哪些列组合有效

我使用adwords api生成报告.

请耐心等待,因为我对此并不太熟悉.

我正在使用api的v201409版本.

我使用getReportFields获取KEYWORD_PERFORMANCE_REPORT的报告列.

然后,我尝试使用这些列的子集下载报告.

对于KEYWORD_PERFORMANCE_REPORT,我收到错误:

Cannot select a combination of Device and
AssistClicks,AssistClicksOverLastClicks,AssistImpressions,AssistImpressionsOverLastClicks,AveragePageviews,AverageTimeOnSite,BounceRate,Bounces,ClickAssistedConversionValue,ClickAssistedConversionValueLong,ClickAssistedConversionValueNonMoney,ClickAssistedConversions,ClickAssistedConversionsOverLastClickConversions,ImpressionAssistedConversionValue,ImpressionAssistedConversionValueLong,ImpressionAssistedConversionValueNonMoney,ImpressionAssistedConversions,ImpressionAssistedConversionsOverLastClickConversions,LastClickConversions,LastClicks,NewVisitors,Pageviews,PercentNewVisitors,VisitDuration,Visits,
Type: ReportDefinitionError.INVALID_FIELD_NAME_FOR_REPORT.

问题是:如何在不经过试错过程的情况下找到一组有效的列组合.是否有任何文档可以帮助我.

我在http://developers.guge.io/adwords/api/docs/appendix/reports中查看了KEYWORD_PERFORMANCE_REPORT的列,并排除了api所说的“不兼容”的列.得到了类似的错误.
谢谢

N.B>如果我使用在线示例中提供的列来尝试此代码,它可以正常工作并下载报告.
代码是:
    `
    String [] columnNames = {
                “ConversionRateManyPerClickSignificance”
                “ConversionRateSignificance”
                “ViewThroughConversionsSignificance”
                “AccountCurrencyCode”
                “AccountDescriptiveName”
                “AccountTimeZoneId”
                “AdGroupId”
                “AdGroupName”
                “AdGroupStatus”
                “AssistImpressions”
                “AssistImpressionsOverLastClicks”
                “AverageCpc”
                “AverageCpm”
                “AveragePageviews”
                “AveragePosition”
                “AverageTimeOnSite”
                “BiddingStrategyId”
                “BiddingStrategyName”
                “BiddingStrategyType”
                “CAMPAIGNID”
                “CAMPAIGNNAME”
                “CampaignStatus”
                “ClickAssistedConversionsOverLastClickConversions”
                “ClickAssistedConversionValue”
                “点击”
                “ClickSignificance”
                “点击类型”,
                “ConversionManyPerClickSignificance”
                “兑换率”,
                “ConversionRateManyPerClick”
                “转化”,
                “ConversionSignificance”
                “ConversionsManyPerClick”
                “ConversionTypeName”
                “ConversionValue”
                “成本”,
                “CostPerConversion”
                “CostPerConversionManyPerClick”
                “CostPerConversionManyPerClickSignificance”
                “CostPerConversionSignificance”
                “CostSignificance”
                “CpcBid”
                “CpcBidSource”
                “CpmBid取代”,
                “CpmSignificance”
                “CriteriaDestinationUrl”
                “点击率”,
                “CtrSignificance”
                “CustomerDescriptiveName”
                “CvrSignificance”
                “日期”,
                “星期几”,
                “设备”,
                “EXTERNALCUSTOMERID”
                “FinalAppUrls”
                “FinalMobileUrls”
                “FinalUrls”
                “有firstPageCpc”
                “ID”,
                “ImpressionAssistedConversions”
                “ImpressionAssistedConversionsOverLastClickConversions”
                “ImpressionAssistedConversionValue”
                “印象”
                “ImpressionSignificance”
                “IsNegative”
                “KeywordMatchType”
                “LabelIds”
                “标签”,
                “月”,
                “MonthOfYear”
                “PlacementUrl”
                “PositionSignificance”
                “PrimaryCompanyName”
                “的QualityScore”
                “25美分硬币”,
                “SearchExactMatchImpressionShare”
                “SearchImpressionShare”
                “SearchRankLostImpressionShare”
                “插槽”,
                “TrackingUrlTemplate”
                “UrlCustomParameters”
                “ValuePerConversion”
                “ValuePerConversionManyPerClick”
                “位viewThroughConversions”
                “周”,
                “年”

    };
 public static void downloadConsolidatedReportFile(String[] columnNames, final ReportDefinitionDateRangeType forDateRange, final ReportDefinitionReportType reportDefinitionReportType, final String to) throws Exception {
    com.google.api.ads.adwords.lib.jaxb.v201409.Selector selector = new com.google.api.ads.adwords.lib.jaxb.v201409.Selector();
    selector.getFields().addAll(Lists.newArrayList(columnNames));
    ReportDefinition reportDefinition = new ReportDefinition();
    reportDefinition.setReportName("Report " + reportDefinitionReportType.value() + " for dateRange " + forDateRange.value());
    reportDefinition.setDateRangeType(forDateRange);
    reportDefinition.setReportType(reportDefinitionReportType);
    reportDefinition.setDownloadFormat(DownloadFormat.CSV);

    ReportingConfiguration reportingConfiguration = new ReportingConfiguration.Builder()
            .skipReportHeader(true)
            .skipReportSummary(true)
            .build();
    session.setReportingConfiguration(reportingConfiguration);

    reportDefinition.setSelector(selector);

    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(to)));
    String mccId = session.getClientCustomerId(); //The id from ads.properties file
    Collection<Client> clientIds = getClientAccountIds(mccId);
    try {
        for (Client cl : clientIds) {
            BufferedReader reader = null;
            String customerId = cl.id;
            String name = cl.name;

            session.setClientCustomerId(cl.id);
            try {
                ReportDownloadResponse response =
                        new ReportDownloader(session).downloadReport(reportDefinition);
                if (response == null || response.getHttpStatus() != 200) {
                    handleError(response);
                }
                BufferedInputStream bs = new BufferedInputStream(response.getInputStream());
                reader = new BufferedReader(new InputStreamReader(bs));
                String line = null;
                log.info("getting " + reportDefinition.getReportType().value() + " for " + customerId+" "+name);
                reader.readLine(); //Skip the first line of column names
                while ((line = reader.readLine()) != null) {
                    bw.write(line + "\n");
                }
            } catch (DetailedReportDownloadResponseException e) {
                log.error("An error was thrown downloading report for Customer id: " + customerId+" "+name, e);
                //We have to do this as we have to filter out the mcc id. An exception is thrown by MCC id
                if (e.getType().equals("ReportDefinitionError." + ReportDefinitionErrorReason.CUSTOMER_SERVING_TYPE_REPORT_MISMATCH.getValue())) {
                    continue;
                } else {
                    throw e;
                }

            } catch (Exception e) {
                log.error("An error was thrown downloading report for Customer id: " + customerId+" "+name, e);
                throw e;
            } finally {
                if (reader != null) {
                    reader.close();
                }
            }

        }
    } finally {
        if (bw != null) {
            bw.flush();
            bw.close();
        }
    }
}

`

您在下面的评论中提到的所有列均未使用.

最佳答案 请查看以下文档.

https://developers.google.com/adwords/api/docs/appendix/reports/keywords-performance-report#activeviewcpm

对于某些字段“提供了与以下字段不兼容”选项.单击该选项以检查不兼容的组合

点赞