Class: Bing::Ads::API::V11::Services::CampaignManagement
- Inherits:
-
Base
- Object
- Base
- Bing::Ads::API::V11::Services::CampaignManagement
show all
- Defined in:
- lib/bing/ads/api/v11/services/campaign_management.rb
Overview
Bing::Ads::API::V11::Services::CampaignManagement
Instance Attribute Summary
Attributes inherited from Base
#environment, #retry_attempts, #soap_client
Instance Method Summary
collapse
-
#add_ad_groups(campaign_id, ad_groups) ⇒ Object
-
#add_ads(ad_group_id, ads) ⇒ Object
-
#add_campaigns(account_id, campaigns) ⇒ Object
-
#add_keywords(ad_group_id, keywords) ⇒ Object
-
#delete_ad_groups(campaign_id, ad_group_ids) ⇒ Object
-
#delete_ads(ad_group_id, ad_ids) ⇒ Object
-
#delete_campaigns(account_id, campaign_ids) ⇒ Object
-
#delete_keywords(ad_group_id, keyword_ids) ⇒ Object
-
#get_ad_groups_by_campaign_id(campaign_id) ⇒ Object
-
#get_ad_groups_by_ids(campaign_id, ad_groups_ids) ⇒ Object
-
#get_ads_by_ad_group_id(ad_group_id) ⇒ Object
-
#get_ads_by_ids(ad_group_id, ad_ids) ⇒ Object
-
#get_campaigns_by_account_id(account_id = nil) ⇒ Object
-
#get_campaigns_by_ids(account_id, campaign_ids) ⇒ Object
-
#get_keywords_by_ad_group_id(ad_group_id) ⇒ Object
-
#get_keywords_by_ids(ad_group_id, keyword_ids) ⇒ Object
-
#initialize(options = {}) ⇒ CampaignManagement
constructor
A new instance of CampaignManagement.
-
#update_ad_groups(campaign_id, ad_groups) ⇒ Object
-
#update_ads(ad_group_id, ads) ⇒ Object
-
#update_campaigns(account_id, campaigns) ⇒ Object
-
#update_keywords(ad_group_id, keywords) ⇒ Object
Methods inherited from Base
#call, #response_body
Constructor Details
Returns a new instance of CampaignManagement.
8
9
10
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 8
def initialize(options = {})
super(options)
end
|
Instance Method Details
#add_ad_groups(campaign_id, ad_groups) ⇒ Object
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 79
def add_ad_groups(campaign_id, ad_groups)
validate_limits!(:ad_group, :add, ad_groups)
ad_groups = ad_groups.map { |ad_group| Bing::Ads::API::V11::Data::AdGroup.prepare(ad_group) }
payload = {
campaign_id: campaign_id,
ad_groups: { ad_group: ad_groups }
}
response = call(:add_ad_groups, payload)
response_body(response, __method__)
end
|
#add_ads(ad_group_id, ads) ⇒ Object
143
144
145
146
147
148
149
150
151
152
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 143
def add_ads(ad_group_id, ads)
validate_limits!(:ad, :add, ads)
ads = ads.map { |ad| Bing::Ads::API::V11::Data::ExpandedTextAd.prepare(ad) }
payload = {
ad_group_id: ad_group_id,
ads: { ad: ads }
}
response = call(:add_ads, payload)
response_body(response, __method__)
end
|
#add_campaigns(account_id, campaigns) ⇒ Object
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 30
def add_campaigns(account_id, campaigns)
validate_limits!(:campaign, :add, campaigns)
campaigns = campaigns.map { |campaign| Bing::Ads::API::V11::Data::Campaign.prepare(campaign) }
payload = {
account_id: account_id,
campaigns: { campaign: campaigns }
}
response = call(:add_campaigns, payload)
response_body(response, __method__)
end
|
#add_keywords(ad_group_id, keywords) ⇒ Object
191
192
193
194
195
196
197
198
199
200
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 191
def add_keywords(ad_group_id, keywords)
validate_limits!(:keyword, :add, keywords)
keywords = keywords.map { |keyword| Bing::Ads::API::V11::Data::Keyword.prepare(keyword) }
payload = {
ad_group_id: ad_group_id,
keywords: { keyword: keywords }
}
response = call(:add_keywords, payload)
response_body(response, __method__)
end
|
#delete_ad_groups(campaign_id, ad_group_ids) ⇒ Object
101
102
103
104
105
106
107
108
109
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 101
def delete_ad_groups(campaign_id, ad_group_ids)
validate_limits!(:ad_group, :delete, ad_group_ids)
payload = {
campaign_id: campaign_id,
ad_group_ids: { 'ins1:long' => ad_group_ids }
}
response = call(:delete_ad_groups, payload)
response_body(response, __method__)
end
|
#delete_ads(ad_group_id, ad_ids) ⇒ Object
165
166
167
168
169
170
171
172
173
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 165
def delete_ads(ad_group_id, ad_ids)
validate_limits!(:ad, :delete, ad_ids)
payload = {
ad_group_id: ad_group_id,
ad_ids: { 'ins1:long' => ad_ids }
}
response = call(:delete_ads, payload)
response_body(response, __method__)
end
|
#delete_campaigns(account_id, campaign_ids) ⇒ Object
52
53
54
55
56
57
58
59
60
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 52
def delete_campaigns(account_id, campaign_ids)
validate_limits!(:campaign, :delete, campaign_ids)
payload = {
account_id: account_id,
campaign_ids: { 'ins1:long' => campaign_ids }
}
response = call(:delete_campaigns, payload)
response_body(response, __method__)
end
|
#delete_keywords(ad_group_id, keyword_ids) ⇒ Object
213
214
215
216
217
218
219
220
221
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 213
def delete_keywords(ad_group_id, keyword_ids)
validate_limits!(:keyword, :delete, keyword_ids)
payload = {
ad_group_id: ad_group_id,
keyword_ids: { 'ins1:long' => keyword_ids }
}
response = call(:delete_keywords, payload)
response_body(response, __method__)
end
|
#get_ad_groups_by_campaign_id(campaign_id) ⇒ Object
62
63
64
65
66
67
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 62
def get_ad_groups_by_campaign_id(campaign_id)
response = call(:get_ad_groups_by_campaign_id,
campaign_id: campaign_id)
response_body = response_body(response, __method__)
[response_body[:ad_groups][:ad_group]].flatten.compact
end
|
#get_ad_groups_by_ids(campaign_id, ad_groups_ids) ⇒ Object
69
70
71
72
73
74
75
76
77
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 69
def get_ad_groups_by_ids(campaign_id, ad_groups_ids)
payload = {
campaign_id: campaign_id,
ad_group_ids: { 'ins1:long' => ad_groups_ids }
}
response = call(:get_ad_groups_by_ids, payload)
response_body = response_body(response, __method__)
[response_body[:ad_groups][:ad_group]].flatten
end
|
#get_ads_by_ad_group_id(ad_group_id) ⇒ Object
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 111
def get_ads_by_ad_group_id(ad_group_id)
payload = {
ad_group_id: ad_group_id,
ad_types: all_ad_types
}
response = call(:get_ads_by_ad_group_id, payload)
response_body = response_body(response, __method__)
response_ads = [response_body[:ads][:ad]].flatten.compact
response_ads.each_with_object({}) do |ad, obj|
type = ad['@i:type'.to_sym]
obj[type] ||= []
obj[type] << ad
end
end
|
#get_ads_by_ids(ad_group_id, ad_ids) ⇒ Object
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 126
def get_ads_by_ids(ad_group_id, ad_ids)
payload = {
ad_group_id: ad_group_id,
ad_ids: { 'ins1:long' => ad_ids },
ad_types: all_ad_types
}
response = call(:get_ads_by_ids, payload)
response_body = response_body(response, __method__)
response_ads = [response_body[:ads][:ad]].flatten
response_ads.each_with_object({}) do |ad, obj|
type = ad['@i:type'.to_sym]
obj[type] ||= []
obj[type] << ad
end
end
|
#get_campaigns_by_account_id(account_id = nil) ⇒ Object
12
13
14
15
16
17
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 12
def get_campaigns_by_account_id(account_id=nil)
account_id ||= @account_id
response = call(:get_campaigns_by_account_id, account_id: account_id)
response_body = response_body(response, __method__)
[response_body[:campaigns][:campaign]].flatten.compact
end
|
#get_campaigns_by_ids(account_id, campaign_ids) ⇒ Object
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 19
def get_campaigns_by_ids(account_id, campaign_ids)
account_id ||= @account_id
payload = {
account_id: account_id,
campaign_ids: { 'ins1:long' => campaign_ids }
}
response = call(:get_campaigns_by_ids, payload)
response_body = response_body(response, __method__)
[response_body[:campaigns][:campaign]].flatten.compact
end
|
#get_keywords_by_ad_group_id(ad_group_id) ⇒ Object
175
176
177
178
179
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 175
def get_keywords_by_ad_group_id(ad_group_id)
response = call(:get_keywords_by_ad_group_id, ad_group_id: ad_group_id)
response_body = response_body(response, __method__)
[response_body[:keywords][:keyword]].flatten.compact
end
|
#get_keywords_by_ids(ad_group_id, keyword_ids) ⇒ Object
181
182
183
184
185
186
187
188
189
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 181
def get_keywords_by_ids(ad_group_id, keyword_ids)
payload = {
ad_group_id: ad_group_id,
keyword_ids: { 'ins1:long' => keyword_ids }
}
response = call(:get_keywords_by_ids, payload)
response_body = response_body(response, __method__)
[response_body[:keywords][:keyword]].flatten
end
|
#update_ad_groups(campaign_id, ad_groups) ⇒ Object
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 90
def update_ad_groups(campaign_id, ad_groups)
validate_limits!(:ad_group, :update, ad_groups)
ad_groups = ad_groups.map { |ad_group| Bing::Ads::API::V11::Data::AdGroup.prepare(ad_group) }
payload = {
campaign_id: campaign_id,
ad_groups: { ad_group: ad_groups }
}
response = call(:update_ad_groups, payload)
response_body(response, __method__)
end
|
#update_ads(ad_group_id, ads) ⇒ Object
154
155
156
157
158
159
160
161
162
163
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 154
def update_ads(ad_group_id, ads)
validate_limits!(:ad, :update, ads)
ads = ads.map { |ad| Bing::Ads::API::V11::Data::ExpandedTextAd.prepare(ad) }
payload = {
ad_group_id: ad_group_id,
ads: { ad: ads }
}
response = call(:update_ads, payload)
response_body(response, __method__)
end
|
#update_campaigns(account_id, campaigns) ⇒ Object
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 41
def update_campaigns(account_id, campaigns)
validate_limits!(:campaign, :update, campaigns)
campaigns = campaigns.map { |campaign| Bing::Ads::API::V11::Data::Campaign.prepare(campaign) }
payload = {
account_id: account_id,
campaigns: { campaign: campaigns }
}
response = call(:update_campaigns, payload)
response_body(response, __method__)
end
|
#update_keywords(ad_group_id, keywords) ⇒ Object
202
203
204
205
206
207
208
209
210
211
|
# File 'lib/bing/ads/api/v11/services/campaign_management.rb', line 202
def update_keywords(ad_group_id, keywords)
validate_limits!(:keyword, :update, keywords)
keywords = keywords.map { |keyword| Bing::Ads::API::V11::Data::Keyword.prepare(keyword) }
payload = {
ad_group_id: ad_group_id,
keywords: { keyword: keywords }
}
response = call(:update_keywords, payload)
response_body(response, __method__)
end
|