public static void main(String[] args) {
AdWordsSession session;
try {
// Generate a refreshable OAuth2 credential.
Credential oAuth2Credential =
new OfflineCredentials.Builder()
.forApi(Api.ADWORDS)
.withClientSecrets("XXXXXXXXXXXXXXXX", "YYYYYYYYYYYYYYYY")
.withRefreshToken("ZZZZZZZZZZZZZZZ")
.build()
.generateCredential();
AdWordsServicesInterface adWordsServices = AdWordsServices.getInstance();
List<String> ids = new ArrayList<>(Arrays.asList(
"123-456-7890",
"234-567-8901",
));
for (String id : ids) {
// Construct an AdWordsSession.
try {
session =
new AdWordsSession.Builder()
.withDeveloperToken("WWWWWWWWWWWWWWWWWW")
.withOAuth2Credential(oAuth2Credential)
.withClientCustomerId(id)
.build();
runExample(adWordsServices, session);
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (OAuthException e) {
e.printStackTrace();
} catch (ValidationException e) {
e.printStackTrace();
}
}
public static void runExample(AdWordsServicesInterface adWordsServices, AdWordsSession session)
throws ReportDownloadResponseException, ReportException, IOException {
ReportQuery query =
new ReportQuery.Builder()
.fields("AccountDescriptiveName", "Conversions", "Clicks", "Impressions", "Cost", "CountryCriteriaId")
.from(ReportDefinitionReportType.GEO_PERFORMANCE_REPORT)
.during(ReportDefinitionDateRangeType.LAST_30_DAYS)
.build();
ReportingConfiguration reportingConfiguration =
new ReportingConfiguration.Builder()
.build();
session.setReportingConfiguration(reportingConfiguration);
ReportDownloaderInterface reportDownloader =
adWordsServices.getUtility(session, ReportDownloaderInterface.class);
reportDownloader.setReportDownloadTimeout(60000);
BufferedReader reader = null;
try {
final ReportDownloadResponse response =
reportDownloader.downloadReport(query.toString(), DownloadFormat.CSV);
reader = new BufferedReader(new InputStreamReader(response.getInputStream(), UTF_8));
String line;
Splitter splitter = Splitter.on(',');
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} finally {
if (reader != null) {
reader.close();
}
}
}
Sep 16, 2019 5:20:21 PM com.google.api.ads.common.lib.utils.logging.RemoteCallLoggerDelegate logRequestSummaryINFO: Request made: Service: reportdownload Method: POST clientCustomerId: XXX-XXX-XXXX URL: https://adwords.google.com//api/adwords/reportdownload/v201809 Request ID: null ResponseTime(ms): null OperationsCount: null IsFault: false FaultMessage: null"GEO_PERFORMANCE_REPORT (Aug 18, 2019-Sep 16, 2019)"Account,Conversions,Clicks,Impressions,Cost,Country/TerritoryTotal,0.00,0,0,0, --
Total impressions by ad network type 1:
Sep 16, 2019 5:20:23 PM com.google.api.ads.common.lib.utils.logging.RemoteCallLoggerDelegate logRequestSummaryINFO: Request made: Service: reportdownload Method: POST clientCustomerId: XXX-XXX-XXXX URL: https://adwords.google.com//api/adwords/reportdownload/v201809 Request ID: null ResponseTime(ms): null OperationsCount: null IsFault: false FaultMessage: null"GEO_PERFORMANCE_REPORT (Aug 17, 2019-Sep 15, 2019)"Account,Conversions,Clicks,Impressions,Cost,Country/TerritoryTotal,0.00,0,0,0, --
Total impressions by ad network type 1: