Closed puerile22 closed 5 years ago
@puerile22
CORRECTED per discussion below..
I used this snippet, modified from this example:
aggregation = 'Daily'
exclude_column_headers=False
exclude_report_footer=False
exclude_report_header=False
time=reporting_service.factory.create('ReportTime')
# You can either use a custom date range or predefined time.
time.PredefinedTime='Yesterday'
time.ReportTimeZone='PacificTimeUSCanadaTijuana'
return_only_complete_data=False
report_request=reporting_service.factory.create('KeywordPerformanceReportRequest')
report_request.Aggregation=aggregation
report_request.ExcludeColumnHeaders=exclude_column_headers
report_request.ExcludeReportFooter=exclude_report_footer
report_request.ExcludeReportHeader=exclude_report_header
report_request.Format=report_file_format
report_request.ReturnOnlyCompleteData=return_only_complete_data
report_request.Time=time
report_request.ReportName="My Keyword Performance Report"
scope=reporting_service.factory.create('AccountThroughAdGroupReportScope')
scope.AccountIds={'long': [account_id] }
scope.Campaigns=None
scope.AdGroups=None
report_request.Scope=scope
filter=reporting_service.factory.create('KeywordPerformanceReportFilter')
filter.KeywordStatus=['Paused Deleted']
report_request.Filter=filter
report_columns=reporting_service.factory.create('ArrayOfKeywordPerformanceReportColumn')
report_columns.KeywordPerformanceReportColumn.append([
'TimePeriod',
'AccountId',
'CampaignId',
'Keyword',
'KeywordId',
'DeviceType',
'Network',
'Impressions',
'Clicks',
'Spend',
'BidMatchType',
'Ctr',
'AverageCpc',
'QualityScore'
])
report_request.Columns=report_columns
Here is the resulting SOAP request:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:tns="https://bingads.microsoft.com/Reporting/v13" xmlns:ns0="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="https://bingads.microsoft.com/Reporting/v13" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<tns:AuthenticationToken>***</tns:AuthenticationToken>
<tns:CustomerAccountId>***</tns:CustomerAccountId>
<tns:CustomerId>***</tns:CustomerId>
<tns:DeveloperToken>***</tns:DeveloperToken>
</SOAP-ENV:Header>
<ns1:Body>
<ns2:SubmitGenerateReportRequest>
<ns2:ReportRequest xsi:type="ns2:KeywordPerformanceReportRequest">
<ns2:ExcludeColumnHeaders>false</ns2:ExcludeColumnHeaders>
<ns2:ExcludeReportFooter>false</ns2:ExcludeReportFooter>
<ns2:ExcludeReportHeader>false</ns2:ExcludeReportHeader>
<ns2:Format>Csv</ns2:Format>
<ns2:ReportName>My Keyword Performance Report</ns2:ReportName>
<ns2:ReturnOnlyCompleteData>false</ns2:ReturnOnlyCompleteData>
<ns2:Aggregation>Daily</ns2:Aggregation>
<ns2:Columns>
<ns2:KeywordPerformanceReportColumn>TimePeriod</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>AccountId</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>CampaignId</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>Keyword</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>KeywordId</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>DeviceType</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>Network</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>Impressions</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>Clicks</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>Spend</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>BidMatchType</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>Ctr</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>AverageCpc</ns2:KeywordPerformanceReportColumn>
<ns2:KeywordPerformanceReportColumn>QualityScore</ns2:KeywordPerformanceReportColumn>
</ns2:Columns>
<ns2:Filter>
<ns2:KeywordStatus>Paused Deleted</ns2:KeywordStatus>
</ns2:Filter>
<ns2:Scope>
<ns2:AccountIds>
<ns0:long>***</ns0:long>
</ns2:AccountIds>
</ns2:Scope>
<ns2:Time>
<ns2:PredefinedTime>Yesterday</ns2:PredefinedTime>
<ns2:ReportTimeZone>PacificTimeUSCanadaTijuana</ns2:ReportTimeZone>
</ns2:Time>
</ns2:ReportRequest>
</ns2:SubmitGenerateReportRequest>
</ns1:Body>
</SOAP-ENV:Envelope>
I tried the same thing, but it only gives me Paused keywords. And if I set filter.KeywordStatus=['Deleted','Paused'], it only gives me Deleted keywords. Then I tried filter.KeywordStatus='Paused Deleted', and I got both Pause and Deleted keywords back, not sure if this is a bug.
@puerile22 ah, yes your way i.e., filter.KeywordStatus='Paused Deleted'
is correct. Sorry for the confusion. The service defines a list type so the filter XML should be as follows:
<ns2:Filter>
<ns2:KeywordStatus>Paused Deleted</ns2:KeywordStatus>
</ns2:Filter>
Trying to get a Keyword Performance Report with only Deleted and Paused keywords but I can't get the status report filter to work, thanks!