sklik-api 0.0.15 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/sklik-api/campaign.rb +7 -1
- data/lib/sklik-api/campaign_parts/adgroup.rb +43 -28
- data/sklik-api.gemspec +1 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.16
|
data/lib/sklik-api/campaign.rb
CHANGED
@@ -130,7 +130,11 @@ Example of input hash
|
|
130
130
|
@campaign_data
|
131
131
|
else
|
132
132
|
@campaign_data = @args
|
133
|
-
@
|
133
|
+
if @args[:status] != :stopped
|
134
|
+
@campaign_data[:ad_groups] = Adgroup.find(self).collect{|a| a.to_hash}
|
135
|
+
else
|
136
|
+
@campaign_data[:ad_groups] = []
|
137
|
+
end
|
134
138
|
@campaign_data
|
135
139
|
end
|
136
140
|
end
|
@@ -259,6 +263,8 @@ Example of input hash
|
|
259
263
|
#remove it if new status is stopped or status doesn't changed and before it was stopped
|
260
264
|
remove if (@args[:status] == :stopped) || (@args[:status].nil? && before_status == :stopped)
|
261
265
|
|
266
|
+
raise ArgumentError, "Problem with updating campaign datas #{@errors}" unless @errors.size == 0
|
267
|
+
|
262
268
|
return true
|
263
269
|
else #do save
|
264
270
|
#create campaign
|
@@ -100,8 +100,13 @@ Example of input hash
|
|
100
100
|
@adgroup_data
|
101
101
|
else
|
102
102
|
@adgroup_data = @args
|
103
|
-
@
|
104
|
-
|
103
|
+
if @args[:status] != :stopped
|
104
|
+
@adgroup_data[:ads] = Adtext.find(self).collect{|a| a.to_hash}
|
105
|
+
@adgroup_data[:keywords] = Keyword.find(self).collect{|k| k.to_hash}
|
106
|
+
else
|
107
|
+
@adgroup_data[:ads] = []
|
108
|
+
@adgroup_data[:keywords] = []
|
109
|
+
end
|
105
110
|
@adgroup_data
|
106
111
|
end
|
107
112
|
end
|
@@ -169,24 +174,21 @@ Example of input hash
|
|
169
174
|
############
|
170
175
|
## KEYWORDS
|
171
176
|
############
|
172
|
-
#create new keyowrds and delete old
|
173
|
-
@saved_keywords = keywords.inject({}){|o,k| o[k.args[:keyword]] = k ; o}
|
174
|
-
@new_keywords = @keywords.inject({}){|o,k| o[k.args[:keyword]] = k ; o}
|
175
|
-
|
176
|
-
#keywords to be deleted
|
177
|
-
(@saved_keywords.keys - @new_keywords.keys).each do |k|
|
178
|
-
#don't try to remove already removed keyword
|
179
|
-
@saved_keywords[k].remove unless @saved_keywords[k].args[:status] == :stopped
|
180
|
-
end
|
181
|
-
|
182
|
-
#keywords to be created
|
183
|
-
(@new_keywords.keys - @saved_keywords.keys).each do |k|
|
184
|
-
@new_keywords[k].save
|
185
|
-
end
|
186
177
|
|
187
|
-
#
|
188
|
-
|
189
|
-
|
178
|
+
#update keywords
|
179
|
+
keywords_error = []
|
180
|
+
@new_keywords = @keywords.clone
|
181
|
+
delete_first = true
|
182
|
+
while @new_keywords && @new_keywords.size > 0 do
|
183
|
+
begin
|
184
|
+
connection.call('keywords.set', @args[:adgroup_id], @new_keywords[0..199].collect{|k| k.create_args.last }, delete_first) do |params|
|
185
|
+
@campaign.errors << params[:statusMessage] if params[:statusMessage] != "OK"
|
186
|
+
end
|
187
|
+
rescue Exception => e
|
188
|
+
@campaign.errors << e.message
|
189
|
+
end
|
190
|
+
@new_keywords = @new_keywords[200..-1]
|
191
|
+
delete_first = false
|
190
192
|
end
|
191
193
|
|
192
194
|
############
|
@@ -199,13 +201,24 @@ Example of input hash
|
|
199
201
|
|
200
202
|
#adtexts to be deleted
|
201
203
|
(@saved_adtexts.keys - @new_adtexts.keys).each do |k|
|
204
|
+
puts "deleting adtext #{@saved_adtexts[k]} in #{@args[:name]}"
|
202
205
|
#don't try to remove already removed adtext
|
203
206
|
@saved_adtexts[k].remove unless @saved_adtexts[k].args[:status] == :stopped
|
204
207
|
end
|
205
208
|
|
206
209
|
#adtexts to be created
|
207
210
|
(@new_adtexts.keys - @saved_adtexts.keys).each do |k|
|
208
|
-
@
|
211
|
+
puts "creating new adtext #{k} in #{@args[:name]}"
|
212
|
+
begin
|
213
|
+
@new_adtexts[k].save
|
214
|
+
rescue Exception => e
|
215
|
+
#take care about error message -> do it nicer
|
216
|
+
if /There is error from sklik ad.create: Invalid parameters/ =~ e.message
|
217
|
+
@campaign.errors << "Problem with creating #{@new_adtexts[k].args} in adgroup #{@args[:name]}"
|
218
|
+
else
|
219
|
+
@campaign.errors << e.message
|
220
|
+
end
|
221
|
+
end
|
209
222
|
end
|
210
223
|
|
211
224
|
#check status to be running
|
@@ -235,18 +248,20 @@ Example of input hash
|
|
235
248
|
|
236
249
|
#create keywords
|
237
250
|
keywords_error = []
|
238
|
-
@keywords.
|
251
|
+
@new_keywords = @keywords.clone
|
252
|
+
delete_first = true
|
253
|
+
while @new_keywords && @new_keywords.size > 0 do
|
239
254
|
begin
|
240
|
-
|
241
|
-
|
242
|
-
#take care about error message -> do it nicer
|
243
|
-
if /Sklik returned: keyword.create: Invalid data in request/ =~ e.message
|
244
|
-
keywords_error << e.message.split("{:name=>\"").last.split("\", :matchType").first
|
245
|
-
else
|
246
|
-
@campaign.errors << e.message
|
255
|
+
connection.call('keywords.set', @args[:adgroup_id], @new_keywords[0..199].collect{|k| k.create_args.last }, delete_first) do |params|
|
256
|
+
@campaign.errors << params[:statusMessage] if params[:statusMessage] != "OK"
|
247
257
|
end
|
258
|
+
rescue Exception => e
|
259
|
+
@campaign.errors << e.message
|
248
260
|
end
|
261
|
+
@new_keywords = @new_keywords[200..-1]
|
262
|
+
delete_first = false
|
249
263
|
end
|
264
|
+
|
250
265
|
if keywords_error.size > 0
|
251
266
|
@campaign.errors << "Problem with creating keywords: #{keywords_error.join(", ")} in adgroup #{@args[:name]}"
|
252
267
|
end
|
data/sklik-api.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sklik-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -296,7 +296,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
296
296
|
version: '0'
|
297
297
|
segments:
|
298
298
|
- 0
|
299
|
-
hash: -
|
299
|
+
hash: -3350698988788175861
|
300
300
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
301
301
|
none: false
|
302
302
|
requirements:
|