soapy_bing 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.env +6 -0
  3. data/.gitignore +6 -0
  4. data/.rspec +2 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +6 -0
  7. data/README.md +63 -0
  8. data/Rakefile +7 -0
  9. data/circle.yml +6 -0
  10. data/lib/soapy_bing/account.rb +12 -0
  11. data/lib/soapy_bing/ads/reports/base.rb +83 -0
  12. data/lib/soapy_bing/ads/reports/campaign_performance_report.rb +23 -0
  13. data/lib/soapy_bing/ads/reports/parsers/csv_parser.rb +45 -0
  14. data/lib/soapy_bing/ads/reports/parsers.rb +1 -0
  15. data/lib/soapy_bing/ads/reports.rb +3 -0
  16. data/lib/soapy_bing/ads.rb +22 -0
  17. data/lib/soapy_bing/helpers/class_name.rb +9 -0
  18. data/lib/soapy_bing/helpers.rb +1 -0
  19. data/lib/soapy_bing/oauth_credentials.rb +43 -0
  20. data/lib/soapy_bing/param_guard.rb +26 -0
  21. data/lib/soapy_bing/soap/request/base.rb +37 -0
  22. data/lib/soapy_bing/soap/request/poll_generate_report_request.rb +33 -0
  23. data/lib/soapy_bing/soap/request/submit_generate_report_request.rb +16 -0
  24. data/lib/soapy_bing/soap/request.rb +3 -0
  25. data/lib/soapy_bing/soap/response/base.rb +16 -0
  26. data/lib/soapy_bing/soap/response/payload.rb +15 -0
  27. data/lib/soapy_bing/soap/response/poll_generate_report_response.rb +13 -0
  28. data/lib/soapy_bing/soap/response/report_status.rb +33 -0
  29. data/lib/soapy_bing/soap/response/submit_generate_report_response.rb +11 -0
  30. data/lib/soapy_bing/soap/response.rb +5 -0
  31. data/lib/soapy_bing/soap/template_renderer.rb +21 -0
  32. data/lib/soapy_bing/soap/templates/poll_generate_report.erb.xml +18 -0
  33. data/lib/soapy_bing/soap/templates/submit_generate_report.erb.xml +46 -0
  34. data/lib/soapy_bing/soap.rb +3 -0
  35. data/lib/soapy_bing/version.rb +3 -0
  36. data/lib/soapy_bing.rb +11 -0
  37. data/lib/tasks/console.rake +5 -0
  38. data/lib/tasks/coverage.rake +6 -0
  39. data/lib/tasks/spec.rake +4 -0
  40. data/soapy_bing.gemspec +34 -0
  41. data/spec/fixtures/reports/campaign_performance_report.csv +37 -0
  42. data/spec/fixtures/reports/campaign_performance_report.json +146 -0
  43. data/spec/fixtures/soap_templates/simple.erb.xml +2 -0
  44. data/spec/fixtures/vcr_cassettes/campaign_performance_report/with_pending_status.yml +168 -0
  45. data/spec/fixtures/vcr_cassettes/campaign_performance_report/with_successful_status.yml +284 -0
  46. data/spec/fixtures/vcr_cassettes/oauth_credentials/access_token/with_successful_status.yml +42 -0
  47. data/spec/integration/soapy_bing/ads/reports/campaign_performance_report_spec.rb +39 -0
  48. data/spec/integration/soapy_bing/oauth_credentials_spec.rb +10 -0
  49. data/spec/simplecov_setup.rb +9 -0
  50. data/spec/soapy_bing/account_spec.rb +80 -0
  51. data/spec/soapy_bing/ads/reports/campaign_performance_report_spec.rb +41 -0
  52. data/spec/soapy_bing/ads/reports/parsers/csv_parser_spec.rb +31 -0
  53. data/spec/soapy_bing/ads_spec.rb +32 -0
  54. data/spec/soapy_bing/helpers/class_name_spec.rb +14 -0
  55. data/spec/soapy_bing/oauth_credentials_spec.rb +108 -0
  56. data/spec/soapy_bing/param_guard_spec.rb +43 -0
  57. data/spec/soapy_bing/soap/request/base_spec.rb +54 -0
  58. data/spec/soapy_bing/soap/request/poll_generate_report_request_spec.rb +59 -0
  59. data/spec/soapy_bing/soap/response/base_spec.rb +12 -0
  60. data/spec/soapy_bing/soap/response/payload_spec.rb +25 -0
  61. data/spec/soapy_bing/soap/response/poll_generate_report_response_spec.rb +25 -0
  62. data/spec/soapy_bing/soap/response/report_status_spec.rb +91 -0
  63. data/spec/soapy_bing/soap/response/submit_generate_report_response_spec.rb +19 -0
  64. data/spec/soapy_bing/soap/template_renderer_spec.rb +24 -0
  65. data/spec/spec_helper.rb +32 -0
  66. data/spec/support/dotenv.rb +3 -0
  67. data/spec/support/vcr.rb +101 -0
  68. metadata +305 -0
@@ -0,0 +1,46 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xmlns:tns="https://bingads.microsoft.com/Reporting/v9"
5
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
6
+ xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
7
+ <env:Header>
8
+ <tns:CustomerAccountId><%= account.account_id %></tns:CustomerAccountId>
9
+ <tns:CustomerId><%= account.customer_id %></tns:CustomerId>
10
+ <tns:DeveloperToken><%= account.developer_token %></tns:DeveloperToken>
11
+ <tns:AuthenticationToken><%= authentication_token %></tns:AuthenticationToken>
12
+ </env:Header>
13
+ <env:Body>
14
+ <tns:SubmitGenerateReportRequest>
15
+ <tns:ReportRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="tns:<%= report_class %>Request">
16
+ <tns:Format><%= settings.format %></tns:Format>
17
+ <tns:Language><%= settings.language %></tns:Language>
18
+ <tns:ReportName><%= settings.name %></tns:ReportName>
19
+ <tns:ReturnOnlyCompleteData>false</tns:ReturnOnlyCompleteData>
20
+ <tns:Aggregation><%= settings.aggregation %></tns:Aggregation>
21
+ <tns:Columns>
22
+ <% settings.columns.each do |column| %>
23
+ <tns:<%= report_class %>Column><%= column %></tns:<%= report_class %>Column>
24
+ <% end %>
25
+ </tns:Columns>
26
+ <tns:Scope>
27
+ <tns:AccountIds>
28
+ <arr:long><%= account.account_id %></arr:long>
29
+ </tns:AccountIds>
30
+ </tns:Scope>
31
+ <tns:Time>
32
+ <tns:CustomDateRangeEnd>
33
+ <tns:Day><%= date_range.end.day %></tns:Day>
34
+ <tns:Month><%= date_range.end.month %></tns:Month>
35
+ <tns:Year><%= date_range.end.year %></tns:Year>
36
+ </tns:CustomDateRangeEnd>
37
+ <tns:CustomDateRangeStart>
38
+ <tns:Day><%= date_range.begin.day %></tns:Day>
39
+ <tns:Month><%= date_range.begin.month %></tns:Month>
40
+ <tns:Year><%= date_range.begin.year %></tns:Year>
41
+ </tns:CustomDateRangeStart>
42
+ </tns:Time>
43
+ </tns:ReportRequest>
44
+ </tns:SubmitGenerateReportRequest>
45
+ </env:Body>
46
+ </env:Envelope>
@@ -0,0 +1,3 @@
1
+ require 'soapy_bing/soap/template_renderer'
2
+ require 'soapy_bing/soap/request'
3
+ require 'soapy_bing/soap/response'
@@ -0,0 +1,3 @@
1
+ module SoapyBing
2
+ VERSION = '0.0.1'.freeze
3
+ end
data/lib/soapy_bing.rb ADDED
@@ -0,0 +1,11 @@
1
+ require 'httparty'
2
+ require 'retryable'
3
+ require 'active_support'
4
+ require 'active_support/core_ext/string/inflections'
5
+
6
+ require 'soapy_bing/helpers'
7
+ require 'soapy_bing/param_guard'
8
+ require 'soapy_bing/account'
9
+ require 'soapy_bing/oauth_credentials'
10
+ require 'soapy_bing/soap'
11
+ require 'soapy_bing/ads'
@@ -0,0 +1,5 @@
1
+ desc 'Start the IRB console (short-cut alias: "c")'
2
+ task :console do
3
+ sh 'irb -I . -I ./lib -I ./spec -r ./spec/spec_helper.rb'
4
+ end
5
+ task c: :console
@@ -0,0 +1,6 @@
1
+ desc 'Run specs and collect code coverage'
2
+ task :coverage do
3
+ ENV['COVERAGE'] = 'true'
4
+ Rake::Task['spec'].invoke
5
+ end
6
+ task cov: :coverage
@@ -0,0 +1,4 @@
1
+ require 'rspec/core/rake_task'
2
+ RSpec::Core::RakeTask.new(:spec)
3
+
4
+ task default: :spec
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'soapy_bing/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'soapy_bing'
8
+ spec.version = SoapyBing::VERSION
9
+ spec.authors = ['ad2games GmbH']
10
+ spec.email = ['developers@ad2games.com']
11
+ spec.summary = 'Simple client for the Bing Ads APIs'
12
+ spec.description = "#{spec.summary} (https://developers.bingads.microsoft.com)"
13
+ spec.homepage = 'http://ad2games.com'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_dependency 'erubis'
22
+ spec.add_dependency 'activesupport'
23
+ spec.add_dependency 'httparty'
24
+ spec.add_dependency 'retryable', '>= 2.0.0'
25
+ spec.add_dependency 'rubyzip', '>= 1.0.0'
26
+
27
+ spec.add_development_dependency 'bundler'
28
+ spec.add_development_dependency 'rake'
29
+ spec.add_development_dependency 'rspec', '>= 3.0.0'
30
+ spec.add_development_dependency 'pry'
31
+ spec.add_development_dependency 'vcr'
32
+ spec.add_development_dependency 'webmock'
33
+ spec.add_development_dependency 'dotenv'
34
+ end
@@ -0,0 +1,37 @@
1
+ "Report Name: MyReport"
2
+ "Report Time: 10/14/2015"
3
+ "Time Zone: Various"
4
+ "Last Completed Available Day: 11/16/2015 2:40:00 AM (GMT)"
5
+ "Last Completed Available Hour: 11/16/2015 2:40:00 AM (GMT)"
6
+ "Report Aggregation: Hour of day"
7
+ "Report Filter: "
8
+ "Potential Incomplete Data: true"
9
+ "Rows: 24"
10
+
11
+ "HourOfDay","Impressions","Clicks","Spend"
12
+ "0","3793","1599","72.65"
13
+ "1","3560","1429","65.38"
14
+ "2","3177","1275","57.92"
15
+ "3","2194","849","38.68"
16
+ "4","1393","531","24.14"
17
+ "5","765","247","11.07"
18
+ "6","393","141","6.31"
19
+ "7","152","55","2.46"
20
+ "8","86","25","1.12"
21
+ "9","16","6","0.27"
22
+ "10","6","3","0.13"
23
+ "11","6","2","0.09"
24
+ "12","36","18","0.80"
25
+ "13","115","58","2.58"
26
+ "14","754","332","14.89"
27
+ "15","934","434","19.63"
28
+ "16","1177","525","23.63"
29
+ "17","1127","528","23.80"
30
+ "18","1107","509","22.88"
31
+ "19","1281","615","27.77"
32
+ "20","1718","789","35.56"
33
+ "21","2472","1207","54.23"
34
+ "22","3660","1621","73.08"
35
+ "23","3843","1754","79.54"
36
+
37
+ "©2015 Microsoft Corporation. All rights reserved. "
@@ -0,0 +1,146 @@
1
+ [
2
+ {
3
+ "HourOfDay": "0",
4
+ "Impressions": "3793",
5
+ "Clicks": "1599",
6
+ "Spend": "72.65"
7
+ },
8
+ {
9
+ "HourOfDay": "1",
10
+ "Impressions": "3560",
11
+ "Clicks": "1429",
12
+ "Spend": "65.38"
13
+ },
14
+ {
15
+ "HourOfDay": "2",
16
+ "Impressions": "3177",
17
+ "Clicks": "1275",
18
+ "Spend": "57.92"
19
+ },
20
+ {
21
+ "HourOfDay": "3",
22
+ "Impressions": "2194",
23
+ "Clicks": "849",
24
+ "Spend": "38.68"
25
+ },
26
+ {
27
+ "HourOfDay": "4",
28
+ "Impressions": "1393",
29
+ "Clicks": "531",
30
+ "Spend": "24.14"
31
+ },
32
+ {
33
+ "HourOfDay": "5",
34
+ "Impressions": "765",
35
+ "Clicks": "247",
36
+ "Spend": "11.07"
37
+ },
38
+ {
39
+ "HourOfDay": "6",
40
+ "Impressions": "393",
41
+ "Clicks": "141",
42
+ "Spend": "6.31"
43
+ },
44
+ {
45
+ "HourOfDay": "7",
46
+ "Impressions": "152",
47
+ "Clicks": "55",
48
+ "Spend": "2.46"
49
+ },
50
+ {
51
+ "HourOfDay": "8",
52
+ "Impressions": "86",
53
+ "Clicks": "25",
54
+ "Spend": "1.12"
55
+ },
56
+ {
57
+ "HourOfDay": "9",
58
+ "Impressions": "16",
59
+ "Clicks": "6",
60
+ "Spend": "0.27"
61
+ },
62
+ {
63
+ "HourOfDay": "10",
64
+ "Impressions": "6",
65
+ "Clicks": "3",
66
+ "Spend": "0.13"
67
+ },
68
+ {
69
+ "HourOfDay": "11",
70
+ "Impressions": "6",
71
+ "Clicks": "2",
72
+ "Spend": "0.09"
73
+ },
74
+ {
75
+ "HourOfDay": "12",
76
+ "Impressions": "36",
77
+ "Clicks": "18",
78
+ "Spend": "0.80"
79
+ },
80
+ {
81
+ "HourOfDay": "13",
82
+ "Impressions": "115",
83
+ "Clicks": "58",
84
+ "Spend": "2.58"
85
+ },
86
+ {
87
+ "HourOfDay": "14",
88
+ "Impressions": "754",
89
+ "Clicks": "332",
90
+ "Spend": "14.89"
91
+ },
92
+ {
93
+ "HourOfDay": "15",
94
+ "Impressions": "934",
95
+ "Clicks": "434",
96
+ "Spend": "19.63"
97
+ },
98
+ {
99
+ "HourOfDay": "16",
100
+ "Impressions": "1177",
101
+ "Clicks": "525",
102
+ "Spend": "23.63"
103
+ },
104
+ {
105
+ "HourOfDay": "17",
106
+ "Impressions": "1127",
107
+ "Clicks": "528",
108
+ "Spend": "23.80"
109
+ },
110
+ {
111
+ "HourOfDay": "18",
112
+ "Impressions": "1107",
113
+ "Clicks": "509",
114
+ "Spend": "22.88"
115
+ },
116
+ {
117
+ "HourOfDay": "19",
118
+ "Impressions": "1281",
119
+ "Clicks": "615",
120
+ "Spend": "27.77"
121
+ },
122
+ {
123
+ "HourOfDay": "20",
124
+ "Impressions": "1718",
125
+ "Clicks": "789",
126
+ "Spend": "35.56"
127
+ },
128
+ {
129
+ "HourOfDay": "21",
130
+ "Impressions": "2472",
131
+ "Clicks": "1207",
132
+ "Spend": "54.23"
133
+ },
134
+ {
135
+ "HourOfDay": "22",
136
+ "Impressions": "3660",
137
+ "Clicks": "1621",
138
+ "Spend": "73.08"
139
+ },
140
+ {
141
+ "HourOfDay": "23",
142
+ "Impressions": "3843",
143
+ "Clicks": "1754",
144
+ "Spend": "79.54"
145
+ }
146
+ ]
@@ -0,0 +1,2 @@
1
+ <%= greeting %>, <%= target %>!
2
+ <%= provocation %>
@@ -0,0 +1,168 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://login.live.com/oauth20_token.srf
6
+ body:
7
+ encoding: UTF-8
8
+ string: client_id=bing-ads-oauth-client-id&client_secret=bing-ads-oauth-client-secret&grant_type=refresh_token&refresh_token=bing-ads-oauth-refresh-token
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Cache-Control:
16
+ - no-store
17
+ Pragma:
18
+ - no-cache
19
+ Content-Length:
20
+ - '1317'
21
+ Content-Type:
22
+ - application/json
23
+ Server:
24
+ - Microsoft-IIS/8.5
25
+ X-Content-Type-Options:
26
+ - nosniff
27
+ Date:
28
+ - Fri, 13 Nov 2015 14:23:43 GMT
29
+ Connection:
30
+ - close
31
+ body:
32
+ encoding: UTF-8
33
+ string: '{"token_type":"bearer","expires_in":3600,"scope":"bingads.manage","access_token":"bing-ads-oauth-authentication-token","refresh_token":"bing-ads-oauth-refresh-token","user_id":"bing-ads-oauth-user-id"}'
34
+ http_version:
35
+ recorded_at: Fri, 13 Nov 2015 14:23:44 GMT
36
+ - request:
37
+ method: post
38
+ uri: https://reporting.api.bingads.microsoft.com/Api/Advertiser/Reporting/V9/ReportingService.svc
39
+ body:
40
+ encoding: UTF-8
41
+ string: |
42
+ <?xml version="1.0" encoding="UTF-8"?>
43
+ <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
44
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
45
+ xmlns:tns="https://bingads.microsoft.com/Reporting/v9"
46
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
47
+ xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
48
+ <env:Header>
49
+ <tns:CustomerAccountId>bing-ads-account-id</tns:CustomerAccountId>
50
+ <tns:CustomerId>bing-ads-customer-id</tns:CustomerId>
51
+ <tns:DeveloperToken>bing-ads-developer-token</tns:DeveloperToken>
52
+ <tns:AuthenticationToken>bing-ads-oauth-authentication-token</tns:AuthenticationToken>
53
+ </env:Header>
54
+ <env:Body>
55
+ <tns:SubmitGenerateReportRequest>
56
+ <tns:ReportRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="tns:CampaignPerformanceReportRequest">
57
+ <tns:Format>Csv</tns:Format>
58
+ <tns:Language>English</tns:Language>
59
+ <tns:ReportName>MyReport</tns:ReportName>
60
+ <tns:ReturnOnlyCompleteData>false</tns:ReturnOnlyCompleteData>
61
+ <tns:Aggregation>HourOfDay</tns:Aggregation>
62
+ <tns:Columns>
63
+ <tns:CampaignPerformanceReportColumn>TimePeriod</tns:CampaignPerformanceReportColumn>
64
+ <tns:CampaignPerformanceReportColumn>Impressions</tns:CampaignPerformanceReportColumn>
65
+ <tns:CampaignPerformanceReportColumn>Clicks</tns:CampaignPerformanceReportColumn>
66
+ <tns:CampaignPerformanceReportColumn>Spend</tns:CampaignPerformanceReportColumn>
67
+ </tns:Columns>
68
+ <tns:Scope>
69
+ <tns:AccountIds>
70
+ <arr:long>bing-ads-account-id</arr:long>
71
+ </tns:AccountIds>
72
+ </tns:Scope>
73
+ <tns:Time>
74
+ <tns:CustomDateRangeEnd>
75
+ <tns:Day>14</tns:Day>
76
+ <tns:Month>10</tns:Month>
77
+ <tns:Year>2015</tns:Year>
78
+ </tns:CustomDateRangeEnd>
79
+ <tns:CustomDateRangeStart>
80
+ <tns:Day>14</tns:Day>
81
+ <tns:Month>10</tns:Month>
82
+ <tns:Year>2015</tns:Year>
83
+ </tns:CustomDateRangeStart>
84
+ </tns:Time>
85
+ </tns:ReportRequest>
86
+ </tns:SubmitGenerateReportRequest>
87
+ </env:Body>
88
+ </env:Envelope>
89
+ headers:
90
+ Content-Type:
91
+ - text/xml;charset=UTF-8
92
+ Soapaction:
93
+ - SubmitGenerateReport
94
+ response:
95
+ status:
96
+ code: 200
97
+ message: OK
98
+ headers:
99
+ Content-Length:
100
+ - '396'
101
+ Content-Type:
102
+ - text/xml; charset=utf-8
103
+ Server:
104
+ - Microsoft-IIS/8.0
105
+ X-Powered-By:
106
+ - ASP.NET
107
+ Date:
108
+ - Fri, 13 Nov 2015 14:23:44 GMT
109
+ body:
110
+ encoding: UTF-8
111
+ string: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:TrackingId
112
+ xmlns:h="https://bingads.microsoft.com/Reporting/v9">bing-ads-report-tracking-id</h:TrackingId></s:Header><s:Body><SubmitGenerateReportResponse
113
+ xmlns="https://bingads.microsoft.com/Reporting/v9"><ReportRequestId>bing-ads-report-request-id</ReportRequestId></SubmitGenerateReportResponse></s:Body></s:Envelope>
114
+ http_version:
115
+ recorded_at: Fri, 13 Nov 2015 14:23:45 GMT
116
+ - request:
117
+ method: post
118
+ uri: https://reporting.api.bingads.microsoft.com/Api/Advertiser/Reporting/V9/ReportingService.svc
119
+ body:
120
+ encoding: UTF-8
121
+ string: |
122
+ <?xml version="1.0" encoding="UTF-8"?>
123
+ <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
124
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
125
+ xmlns:tns="https://bingads.microsoft.com/Reporting/v9"
126
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
127
+ xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
128
+ <env:Header>
129
+ <tns:CustomerAccountId>bing-ads-account-id</tns:CustomerAccountId>
130
+ <tns:CustomerId>bing-ads-customer-id</tns:CustomerId>
131
+ <tns:DeveloperToken>bing-ads-developer-token</tns:DeveloperToken>
132
+ <tns:AuthenticationToken>bing-ads-oauth-authentication-token</tns:AuthenticationToken>
133
+ </env:Header>
134
+ <env:Body>
135
+ <tns:PollGenerateReportRequest>
136
+ <tns:ReportRequestId xsi:nil="false">bing-ads-report-request-id</tns:ReportRequestId>
137
+ </tns:PollGenerateReportRequest>
138
+ </env:Body>
139
+ </env:Envelope>
140
+ headers:
141
+ Content-Type:
142
+ - text/xml;charset=UTF-8
143
+ Soapaction:
144
+ - PollGenerateReport
145
+ response:
146
+ status:
147
+ code: 200
148
+ message: OK
149
+ headers:
150
+ Content-Length:
151
+ - '493'
152
+ Content-Type:
153
+ - text/xml; charset=utf-8
154
+ Server:
155
+ - Microsoft-IIS/8.0
156
+ X-Powered-By:
157
+ - ASP.NET
158
+ Date:
159
+ - Fri, 13 Nov 2015 14:23:45 GMT
160
+ body:
161
+ encoding: UTF-8
162
+ string: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:TrackingId
163
+ xmlns:h="https://bingads.microsoft.com/Reporting/v9">bing-ads-report-tracking-id</h:TrackingId></s:Header><s:Body><PollGenerateReportResponse
164
+ xmlns="https://bingads.microsoft.com/Reporting/v9"><ReportRequestStatus xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ReportDownloadUrl
165
+ i:nil="true"/><Status>Pending</Status></ReportRequestStatus></PollGenerateReportResponse></s:Body></s:Envelope>
166
+ http_version:
167
+ recorded_at: Fri, 13 Nov 2015 14:23:46 GMT
168
+ recorded_with: VCR 3.0.0