Java 通过Google Adwords API获取特定Adwords报表可用字段列表
是否有任何方法可以使用Google Adwords API获取特定报告的所有可用字段列表。我使用的是Adwords API版本201605 比如说,Java 通过Google Adwords API获取特定Adwords报表可用字段列表,java,google-ads-api,Java,Google Ads Api,是否有任何方法可以使用Google Adwords API获取特定报告的所有可用字段列表。我使用的是Adwords API版本201605 比如说, selector.getFields().addAll(Lists.newArrayList("CampaignId", "AdGroupId", "Id", "AdNetworkType2", "CriteriaType", "Criteria", "FinalUrls", "Imp
selector.getFields().addAll(Lists.newArrayList("CampaignId",
"AdGroupId",
"Id",
"AdNetworkType2",
"CriteriaType",
"Criteria",
"FinalUrls",
"Impressions",
"Clicks",
"Cost"));
这就是我在报告中选择所需字段的方式。但每个报告都有90多个字段可用。我需要选择案例中的所有字段。那么,adwords api中是否有类似于以下代码的内容:
selector.getFields().addAll(Report.getFields("ReportType")));
如果以后有人遇到这个问题,那么至少在v201708(也可能是更早的版本)中,您可以执行以下操作
public class GetReportFields {
public static void main(String[] args) throws Exception {
// Generate a refreshable OAuth2 credential.
Credential oAuth2Credential = new OfflineCredentials.Builder()
.forApi(Api.ADWORDS)
.fromFile()
.build()
.generateCredential();
// Construct an AdWordsSession.
AdWordsSession session = new AdWordsSession.Builder()
.fromFile()
.withOAuth2Credential(oAuth2Credential)
.build();
AdWordsServicesInterface adWordsServices = AdWordsServices.getInstance();
runExample(adWordsServices, session);
}
public static void runExample(
AdWordsServicesInterface adWordsServices, AdWordsSession session) throws Exception {
// Get the ReportDefinitionService.
ReportDefinitionServiceInterface reportDefinitionService =
adWordsServices.get(session, ReportDefinitionServiceInterface.class);
// Get report fields.
ReportDefinitionField[] reportDefinitionFields =
reportDefinitionService
.getReportFields(ReportDefinitionReportType.KEYWORDS_PERFORMANCE_REPORT);
// Display report fields.
System.out.println("Available fields for report:");
for (ReportDefinitionField reportDefinitionField : reportDefinitionFields) {
System.out.printf("\t %s(%s) := [", reportDefinitionField.getFieldName(),
reportDefinitionField.getFieldType());
if (reportDefinitionField.getEnumValues() != null) {
for (String enumValue : reportDefinitionField.getEnumValues()) {
System.out.printf("%s, ", enumValue);
}
}
System.out.println("]");
}
}
}