Javier V
Javier V

Reputation: 31

Adwords api report without download

I'm working with Adwords API, I already can download reports like: all keywords with impressions, clics, ctr, conversions, etc...

The problem is, I need to show this report on our web tool when the user set the date range.

Now I'm doing this: The user selects Start Date 01/09/2014 End Date 15/09/2014, I call Adwords Api, download CSV, parsing it, and then show the results on the screen, but this way is not optimal and I would like to know how to call the API and get the results "at the moment", getting an XML or JSON without download a file.

Is it possible??

The only way I found was calling CampaignService class.. getting all campaigns, then for each campaign calling AdgroupService for get all Adgroups, then keywords.... It's really impractical.

How can I do it?

Thank you very much.

Upvotes: 3

Views: 1847

Answers (4)

Weihui Guo
Weihui Guo

Reputation: 3997

$reportAsString = $reportDownloadResult->getAsString();
$xml = simplexml_load_string($reportAsString);

Upvotes: 0

Shane N
Shane N

Reputation: 1742

It appears in recent versions of the libary they created a function (getAsString()) so we can achieve this:

$reportDownloader = new ReportDownloader($session);
$reportDownloadResult = $reportDownloader->downloadReport($reportDefinition);

//Normal way of downloading to file
//$reportDownloadResult->saveToFile($filePath);
//printf("Report with name '%s' was downloaded to '%s'.\n",
//    $reportDefinition->getReportName(), $filePath);

//New way by calling getAsString();
$reportAsString = $reportDownloadResult->getAsString();
echo $reportAsString;

Old suggestions about passing null as the $filePath no longer work.

Upvotes: 1

Adigami
Adigami

Reputation: 1

The AdWords API library (as of v201506) allows you to set the download_format to one of CSVFOREXCEL, CSV, TSV, XML, GZIPPED_CSV, or GZIPPED_XML. It unfortunately does not support JSON, even if you ask to download the report data (not as a file).

Upvotes: 0

Pavel Bondarev
Pavel Bondarev

Reputation: 69

Yes, you can get XML without downloading file. Just set $path to Null when calling ReportUtils::DownloadReport() and it returns you response without saving it to file.

Upvotes: 0

Related Questions