201109 keyword report - getting display data

268 views
Skip to first unread message

Ed-

unread,
Feb 8, 2012, 3:50:39 PM2/8/12
to adwor...@googlegroups.com
Hi,

I've been testing data imported and noted that an account that bids only on display network is not showing all campaigns, that's for keyword performance report.

So it is 1 account - 125-830-9378 - with lots of campaigns in it, but it brings only 2 on the keyword performance report.

Searching around I've read people saying I am not supposed to use keyword report to get what would be adgroup's data (as display network do not have a keyword), but then noticed the 2 campaigns downloading are display network data, the only difference I could find is that they have some keyword set inside those campaigns, although none of them are triggered (no impressions), all impressions are display network. I've even added the network info columns (wasnt really using it for anything) and all rows for this report are 'Display Network', and the pair (keyword - keyword id) seems to be a dummy keyword to stick the numbers in: Keyword ID = 3000000, and Keyword = Content

I am more than happy with that dummy keyword, can I have it for all campaigns please?

Does anybody know if it is a bogus behavior on the API or is there an option I should use on the request? Or an option that should be set on the campaigns themselves?

From what I could understand, I would have to ask the client to add 1 keyword inside each campaign just to have the data visible by the report... I don't think they will be really happy if I ask that though...

Using PHP lib, request as follows:

$user = new AdWordsUser(NULL, $email, $password, $developerToken, $applicationToken,
   $userAgent
, $iSeAccountId, $settingsIniPath, $authToken, $oauthInfo);


// Log SOAP XML request and response.
$user
->LogDefaults();


// Load ReportDefinitionService so that the required classes are available.
$user
->LoadService('ReportDefinitionService', 'v201109');




// Create selector.
$selector
= new Selector();
$selector
->fields =
 array
('Date', 'Id', 'KeywordText',
 
'CampaignId',
 
'CampaignName',
 
'AdGroupId', 'AdGroupName',
 
'AdNetworkType1',
 
'AdNetworkType2',
 
'Impressions',
 
'AveragePosition',
 
'Clicks',
 
'Cost',
 
'Conversions', 'ConversionsManyPerClick', 'CostPerConversionManyPerClick',
 
'QualityScore'
 
);
$selector
->predicates[] = new Predicate('Status', 'IN', 'ACTIVE');
/*
// tested with and without status, no change on report content
$selector->predicates[] = new Predicate('AdGroupStatus', 'IN', 'ENABLED');
$selector->predicates[] = new Predicate('CampaignStatus', 'IN', 'ACTIVE');
*/



// Create report definition.
$reportDefinition
= new ReportDefinition();
$reportDefinition
->selector = $selector;
$reportDefinition
->reportName = 'KW performance report #' . time();
$reportDefinition
->dateRangeType = 'LAST_7_DAYS';
$reportDefinition
->reportType = 'KEYWORDS_PERFORMANCE_REPORT';
$reportDefinition
->downloadFormat = 'GZIPPED_CSV';
$reportDefinition
->includeZeroImpressions = FALSE;


$path
= dirname(__FILE__) . '/' . $fileName;
$options
= array('version' => 'v201109', 'returnMoneyInMicros' => TRUE);


// Download report.
ReportUtils::DownloadReport($reportDefinition, $path, $user, $options);


First 2 lines of the resulting report (for marked cells, all rows have the same content):

KW performance report #1328731881 (Feb 1, 2012-Feb 7, 2012)
Day Keyword ID Keyword Campaign ID Campaign Ad group ID Ad group Network Network (with search partners) Impressions Avg. position Clicks Cost Conv. (1-per-click) Conv. (many-per-click) Cost / conv. (many-per-click) Quality score
04/02/2012 3000000 Content Ca Id Ca Name Adg Id Adg Name Display Network Display Network 324 2.78 1 300000 0 0 0 0
02/02/2012 3000000 Content Ca Id Ca Name Adg Id Adg Name Display Network Display Network 35 3.31 0 0 0 0 0 0

Thank you,
Ed

Ed-

unread,
Feb 9, 2012, 10:44:20 AM2/9/12
to adwor...@googlegroups.com
Hey,

I still need help with this one... actually asked account manager to add some kw on one of the affected campaigns, but it doesn't show up on reports (yet). So I'm in trouble, reports with no display clicks aint going to work :S

Ed-

unread,
Feb 10, 2012, 2:08:12 PM2/10/12
to adwor...@googlegroups.com
To add keywords on display network campaigns didn't help at all, and it seems there is another difference. They noticed the campaigns showing up on reports have text ads, and the ones missing only have image ads.

Can I please have an answer on what is causing this issue? It can be a harsh one, I don't mind. But I really need to know what am I doing wrong.

Anash P. Oommen

unread,
Feb 13, 2012, 1:30:46 AM2/13/12
to adwor...@googlegroups.com
Hi Ed,

Keyword ID 3000000 is the special "Content" keyword. It represents all the activity from automatic placements generated using the keywords in that ad group. Automatic placements aren't generated from a single keyword, but rather the aggregate of all the keywords in the ad group. That explains the extra rows you are getting. 

As for rows missing - you have a couple of options:
1. See if another report type suits your requirements. I could think of automatic placement reports (http://code.google.com/apis/adwords/docs/appendix/reports.html#automatic-placements) and criterion report (http://code.google.com/apis/adwords/docs/appendix/reports.html#criteria)
2. If your issue is about not getting stats because a keyword didn't have an impression, then you should try setting the includeZeroImpressions field. See http://code.google.com/apis/adwords/docs/reference/latest/ReportDefinitionService.ReportDefinition.html#includeZeroImpressions for details.

IMO, asking the user to add a keyword per ad group is not the right approach.

Cheers,
Anash P. Oommen,
AdWords API Advisor.

Ed-

unread,
Feb 13, 2012, 2:36:19 PM2/13/12
to adwor...@googlegroups.com
Thanks a lot Anash! That worked perfectly.

Anyone having the same issue, I used the following code to download complete data - search and display:

$user = new AdWordsUser(NULL, $email, $password, $developerToken, $applicationToken,
   $userAgent
, $iSeAccountId, $settingsIniPath, $authToken, $oauthInfo);


// Log SOAP XML request and response.
$user
->LogDefaults();


// Load ReportDefinitionService so that the required classes are available.
$user
->LoadService('ReportDefinitionService', 'v201109');




// Create selector.
$selector
= new Selector();
$selector
->fields =

 array
('Date', 'Id', 'Criteria', //'KeywordText', keywordtext is for keyword performance report, now using CRITERIA_PERFORMANCE_REPORT

 
'CampaignId',
 
'CampaignName',
 
'AdGroupId', 'AdGroupName',
 
'AdNetworkType1',
 
'AdNetworkType2',
 
'Impressions',
 
'AveragePosition',
 
'Clicks',
 
'Cost',
 
'Conversions', 'ConversionsManyPerClick', 'CostPerConversionManyPerClick',
 
'QualityScore'
 
);
$selector
->predicates[] = new Predicate('Status', 'IN', 'ACTIVE');
/*

$selector->predicates[] = new Predicate('AdGroupStatus', 'IN', 'ENABLED');
$selector->predicates[] = new Predicate('CampaignStatus', 'IN', 'ACTIVE');
*/



// Create report definition.
$reportDefinition
= new ReportDefinition();
$reportDefinition
->selector = $selector;
$reportDefinition
->reportName = 'KW performance report #' . time();
$reportDefinition
->dateRangeType = 'LAST_7_DAYS';

$reportDefinition
->reportType = 'CRITERIA_PERFORMANCE_REPORT';

$reportDefinition
->downloadFormat = 'GZIPPED_CSV';
$reportDefinition
->includeZeroImpressions = FALSE;


$path
= dirname(__FILE__) . '/' . $fileName;
$options
= array('version' => 'v201109', 'returnMoneyInMicros' => TRUE);


// Download report.
ReportUtils::DownloadReport($reportDefinition, $path, $user, $options);

Cheers,
Ed

Reply all
Reply to author
Forward
0 new messages