Actually I am using ad hoc report to download all the AdWord's objects like Campaign, Ad Groups, Advertises, and Keywords.
I am only requesting for campaign's attributes, not metrics.
<reportDefinition><selector><fields>CampaignId</fields><fields>CampaignName</fields><fields>ExactMatchImpressionShare</fields><fields>BudgetLostImpressionShare</fields><fields>ImpressionShare</fields><fields>QualityLostImpressionShare</fields><fields>Date</fields><dateRange><min>{min.date}</min><max>{max.date}</max></dateRange></selector><reportName>Custom Campaign Report</reportName><reportType>CAMPAIGN_PERFORMANCE_REPORT</reportType><dateRangeType>CUSTOM_DATE</dateRangeType><downloadFormat>GZIPPED_XML</downloadFormat></reportDefinition>
<reportDefinition><selector><fields>AdGroupId</fields><fields>CampaignId</fields><fields>Id</fields><fields>KeywordId</fields><fields>Clicks</fields><fields>Impressions</fields><fields>Cost</fields><fields>AverageCpc</fields><fields>AverageCpm</fields><fields>AveragePosition</fields><fields>Ctr</fields><fields>Conversions</fields><fields>CostPerConversion</fields><fields>ConversionRate</fields><dateRange><min>{min.date}</min><max>{max.date}</max></dateRange></selector><reportName>Custom Ads Stats Report</reportName><reportType>AD_PERFORMANCE_REPORT</reportType><dateRangeType>CUSTOM_DATE</dateRangeType><downloadFormat>GZIPPED_XML</downloadFormat></reportDefinition>
When I join both results and make a group by campaign id.I get the metrics for all the campaigns and this works great with Campaigns and AdGroups. But when I try this with Ads or Keywords it does not work. In case of Advertises I get less Ads than the AdWord's Platform (
adwords.google.com) and in case of Keywords, my keywords does not join with my stats. In addition I get one keyword named 'Content', which it does not appear in the platform. If my campaign have 60 keywords, i get 61 with that keyword and that have a lot of stats/metrics.
Why does it work with campaign, adgroup but doesn't with the rest of the reports? Is there any other way to get these reports ?
Thanks in advance
Regards
Ad Peformance Request:
<reportDefinition><selector><fields>AdGroupId</fields><fields>CampaignId</fields><fields>KeywordId</fields><fields>Id</fields><fields>Cost</fields><fields>AdNetworkType1</fields><fields>Headline</fields><fields>Status</fields><fields>CreativeDestinationUrl</fields><fields>DisplayUrl</fields><fields>ImageAdUrl</fields><fields>Description1</fields><fields>Description2</fields><fields>ImageCreativeName</fields><fields>AdType</fields><fields>CreativeApprovalStatus</fields><dateRange><min>{min.date}</min><max>{max.date}</max></dateRange></selector><reportName>Custom AD Report</reportName><reportType>AD_PERFORMANCE_REPORT</reportType><dateRangeType>CUSTOM_DATE</dateRangeType><downloadFormat>GZIPPED_XML</downloadFormat><includeZeroImpressions>true</includeZeroImpressions></reportDefinition>
Query :
ad.head_line as 'head_line',
ad.description_line1 as 'description_line1',
ad.description_line2 as 'description_line2',
ad.display_url as 'display_url',
ad.ad_approval_status as 'adApprovalStatus',
ad.image_url as 'image_url',
SUM(s.impressions) as 'impressions',
SUM(clicks) as 'clicks',
SUM(s.clicks)/SUM(s.impressions) as 'ctr',
(SUM(s.avg_position * s.impressions)/SUM(s.impressions)) as 'position',
SUM (s.cost) as 'cost'
from adwords_advertises ad inner join adwords_stats s on s.ad_id = ad.ad_id and s.adgroup_id = ad.adgroup_id and s.campaign_id = ad.campaign_id and s.keyword_id = ad.keyword_id and s.date between @from and @to
inner join adwords_adgroups ag on s.adgroup_id = ag.adgroup_id and s.campaign_id = ag.campaign_id
inner join adwords_campaign_detail c on s.campaign_id = c.campaign_id AND c.fox_intelligence_id = @fox_id
group by
ag.name, ad.ad_approval_status, ad.image_url,ad.head_line,ad.description_line1,ad.description_line2,ad.display_url
KeyWord Request:
<reportDefinition><selector><fields>Id</fields><fields>AdGroupId</fields><fields>CampaignId</fields><fields>KeywordText</fields><fields>Status</fields><fields>DestinationUrl</fields><dateRange><min>{min.date}</min><max>{max.date}</max></dateRange></selector><reportName>Custom Keywords Report</reportName><reportType>KEYWORDS_PERFORMANCE_REPORT</reportType><dateRangeType>CUSTOM_DATE</dateRangeType><downloadFormat>GZIPPED_XML</downloadFormat></reportDefinition>
Keyword Query:
select
acd.fox_intelligence_id as 'fox_id',
ak.keyword as 'keyword',
acd.campaign_status as 'campaignStatus',
COALESCE(SUM(astats.impressions),0) as 'impressions',
COALESCE(SUM(astats.clicks),0) as 'clicks',
COALESCE(SUM(astats.clicks)/SUM(astats.impressions) ,0) as 'ctr',
COALESCE(AVG(astats.avg_cpc),0) as 'cpc',
COALESCE(AVG(astats.avg_cpm),0) as 'cpm',
COALESCE(AVG(astats.conv1_per_click) ,0) as 'convertion',
COALESCE(SUM(astats.cost),0) as 'cost',
COALESCE(SUM(astats.avg_position * astats.impressions)/sum(astats.impressions) ,0) as 'position',
ak.keyword_state as 'keywordStatus',
ag.status as 'adgroupStatus'
from adwords_campaign_detail acd inner join adwords_adgroups ag on acd.campaign_id=ag.campaign_id
inner join adwords_keywords ak on ak.adgroup_id = ag.adgroup_id and ak.campaign_id = acd.campaign_id
left outer join adwords_stats astats on astats.campaign_id=acd.campaign_id and astats.keyword_id=ak.keyword_id and astats.adgroup_id=ag.adgroup_id and astats.date between @from and @to
where acd.fox_intelligence_id = @fox_id
group by acd.fox_intelligence_id,ak.keyword,acd.campaign_status,ak.keyword_state,
ag.name,ag.status