2016-06-29 2 views
1

Есть ли способ получить список всех полей, доступных для конкретного отчета, используя API Google Adwords. Я использую Adwords API версии 201605.Получение списка полей для конкретного отчета Adwords через API Google Adwords

Например,

selector.getFields().addAll(Lists.newArrayList("CampaignId", 
    "AdGroupId", 
    "Id", 
    "AdNetworkType2", 
    "CriteriaType", 
    "Criteria", 
    "FinalUrls", 
    "Impressions", 
    "Clicks", 
    "Cost")); 

Это, как я выбрать, какие поля мне нужно в докладе. Но для каждого отчета доступно более 90 полей. Мне нужно выбрать все поля в моем случае. Итак, есть ли что в Adwords API похож на код ниже:

selector.getFields().addAll(Report.getFields("ReportType"))); 

ответ

1

В случае, если кто приходит через это позже, так как, по крайней мере, (возможно более ранние версии, а) v201708 вы можете сделать следующее.

https://developers.google.com/adwords/api/docs/samples/java/reporting#get-report-fields

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("]"); 
    } 
    } 
}