sklik-api 0.1.4 → 0.1.5
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_parts/adgroup.rb +48 -41
- data/lib/sklik-api/campaign_parts/keyword.rb +3 -2
- data/sklik-api.gemspec +2 -2
- data/test/helper.rb +2 -0
- data/test/unit/adgroup_test.rb +4 -3
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
@@ -59,7 +59,7 @@ Example of input hash
|
|
59
59
|
#initialize adgroups
|
60
60
|
@adtexts = []
|
61
61
|
if args[:ads] && args[:ads].size > 0
|
62
|
-
args[:ads].each do |adtext|
|
62
|
+
args[:ads].select{|a| !a.nil? }.each do |adtext|
|
63
63
|
@adtexts << SklikApi::Adtext.new(adtext.merge(:adgroup => self))
|
64
64
|
end
|
65
65
|
end
|
@@ -67,9 +67,11 @@ Example of input hash
|
|
67
67
|
#initialize adgroups
|
68
68
|
@keywords = []
|
69
69
|
if args[:keywords] && args[:keywords].size > 0
|
70
|
-
args[:keywords].each do |keyword|
|
70
|
+
args[:keywords].select{|k| !k.nil? }.each do |keyword|
|
71
71
|
if keyword.is_a?(Hash)
|
72
72
|
@keywords << SklikApi::Keyword.new(keyword.merge(:adgroup => self))
|
73
|
+
elsif keyword.is_a?(SklikApi::Keyword)
|
74
|
+
@keywords << SklikApi::Keyword.new(:keyword => keyword.args[:keyword] || keyword.args[:name], :adgroup => self)
|
73
75
|
else
|
74
76
|
@keywords << SklikApi::Keyword.new(:keyword => keyword, :adgroup => self)
|
75
77
|
end
|
@@ -324,57 +326,62 @@ Example of input hash
|
|
324
326
|
## KEYWORDS
|
325
327
|
############
|
326
328
|
|
327
|
-
#update keywords
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
329
|
+
#update keywords only when setted
|
330
|
+
if @keywords.size > 0
|
331
|
+
#update keywords
|
332
|
+
keywords_error = []
|
333
|
+
@new_keywords = @keywords.clone
|
334
|
+
delete_first = true
|
335
|
+
while @new_keywords && @new_keywords.size > 0 do
|
336
|
+
begin
|
337
|
+
connection.call('keywords.set', @args[:adgroup_id], @new_keywords[0..199].collect{|k| k.create_args.last }, delete_first) do |params|
|
338
|
+
log_error params[:statusMessage] if params[:statusMessage] != "OK"
|
339
|
+
end
|
340
|
+
rescue Exception => e
|
341
|
+
log_error e.message
|
335
342
|
end
|
336
|
-
|
337
|
-
|
343
|
+
@new_keywords = @new_keywords[200..-1]
|
344
|
+
delete_first = false
|
338
345
|
end
|
339
|
-
@new_keywords = @new_keywords[200..-1]
|
340
|
-
delete_first = false
|
341
346
|
end
|
342
347
|
|
343
348
|
############
|
344
349
|
## ADTEXTS
|
345
350
|
############
|
351
|
+
|
352
|
+
#update adtexts only when setted
|
353
|
+
if @adtexts.size > 0
|
354
|
+
#create new adtexts and delete old
|
355
|
+
@saved_adtexts = adtexts.inject({}){|o,a| o[a.uniq_identifier] = a ; o}
|
356
|
+
@new_adtexts = @adtexts.inject({}){|o,a| o[a.uniq_identifier] = a ; o}
|
357
|
+
|
358
|
+
#adtexts to be deleted
|
359
|
+
(@saved_adtexts.keys - @new_adtexts.keys).each do |k|
|
360
|
+
puts "deleting adtext #{@saved_adtexts[k]} in #{@args[:name]}"
|
361
|
+
#don't try to remove already removed adtext
|
362
|
+
@saved_adtexts[k].remove unless @saved_adtexts[k].args[:status] == :stopped
|
363
|
+
end
|
346
364
|
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
(@new_adtexts.keys - @saved_adtexts.keys).each do |k|
|
360
|
-
puts "creating new adtext #{k} in #{@args[:name]}"
|
361
|
-
begin
|
362
|
-
@new_adtexts[k].save
|
363
|
-
rescue Exception => e
|
364
|
-
#take care about error message -> do it nicer
|
365
|
-
if /There is error from sklik ad.create: Invalid parameters/ =~ e.message
|
366
|
-
log_error "Problem with creating #{@new_adtexts[k].args} in adgroup #{@args[:name]}"
|
367
|
-
else
|
368
|
-
log_error e.message
|
365
|
+
#adtexts to be created
|
366
|
+
(@new_adtexts.keys - @saved_adtexts.keys).each do |k|
|
367
|
+
puts "creating new adtext #{k} in #{@args[:name]}"
|
368
|
+
begin
|
369
|
+
@new_adtexts[k].save
|
370
|
+
rescue Exception => e
|
371
|
+
#take care about error message -> do it nicer
|
372
|
+
if /There is error from sklik ad.create: Invalid parameters/ =~ e.message
|
373
|
+
log_error "Problem with creating #{@new_adtexts[k].args} in adgroup #{@args[:name]}"
|
374
|
+
else
|
375
|
+
log_error e.message
|
376
|
+
end
|
369
377
|
end
|
370
378
|
end
|
371
|
-
end
|
372
379
|
|
373
|
-
|
374
|
-
|
375
|
-
|
380
|
+
#check status to be running
|
381
|
+
(@new_adtexts.keys & @saved_adtexts.keys).each do |k|
|
382
|
+
@saved_adtexts[k].restore if @saved_adtexts[k].args[:status] == :stopped
|
383
|
+
end
|
376
384
|
end
|
377
|
-
|
378
385
|
rescue Exception => e
|
379
386
|
log_error e.message
|
380
387
|
end
|
@@ -95,7 +95,7 @@ Example of input hash
|
|
95
95
|
end
|
96
96
|
|
97
97
|
def strip_match_type keyword
|
98
|
-
keyword.gsub(/(\[|\]|\")/, "").gsub(/^-/, "")
|
98
|
+
"#{keyword}".gsub(/(\[|\]|\")/, "").gsub(/^-/, "")
|
99
99
|
end
|
100
100
|
|
101
101
|
def get_math_type keyword
|
@@ -203,7 +203,8 @@ Example of input hash
|
|
203
203
|
if @keyword_data
|
204
204
|
@keyword_data
|
205
205
|
else
|
206
|
-
@keyword_data = @args
|
206
|
+
@keyword_data = @args
|
207
|
+
end
|
207
208
|
end
|
208
209
|
|
209
210
|
|
data/sklik-api.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "sklik-api"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ondrej Bartas"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-07-16"
|
13
13
|
s.description = "Sklik advertising PPC api for creating campaigns and updating them when they runs"
|
14
14
|
s.email = "ondrej@bartas.cz"
|
15
15
|
s.extra_rdoc_files = [
|
data/test/helper.rb
CHANGED
data/test/unit/adgroup_test.rb
CHANGED
@@ -56,15 +56,16 @@ class AdgroupTest < Test::Unit::TestCase
|
|
56
56
|
end
|
57
57
|
|
58
58
|
should "be found/get by id" do
|
59
|
-
|
59
|
+
adgroup_id = SklikApi::Campaign.find(@campaign.args[:campaign_id]).adgroups.first.args[:adgroup_id]
|
60
|
+
adgroup = SklikApi::Adgroup.get(adgroup_id)
|
60
61
|
assert_not_nil adgroup
|
61
62
|
assert adgroup.is_a?(SklikApi::Adgroup), "return SklikApi::Adgroup"
|
62
63
|
|
63
|
-
adgroup = SklikApi::Adgroup.find(adgroup_id:
|
64
|
+
adgroup = SklikApi::Adgroup.find(adgroup_id: adgroup_id).first
|
64
65
|
assert_not_nil adgroup
|
65
66
|
assert adgroup.is_a?(SklikApi::Adgroup), "return SklikApi::Adgroup"
|
66
67
|
|
67
|
-
adgroup = SklikApi::Adgroup.find(campaign_id: 'doesnt matter', adgroup_id:
|
68
|
+
adgroup = SklikApi::Adgroup.find(campaign_id: 'doesnt matter', adgroup_id: adgroup_id).first
|
68
69
|
assert_not_nil adgroup
|
69
70
|
assert adgroup.is_a?(SklikApi::Adgroup), "return SklikApi::Adgroup"
|
70
71
|
end
|
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.1.
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -304,7 +304,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
304
304
|
version: '0'
|
305
305
|
segments:
|
306
306
|
- 0
|
307
|
-
hash:
|
307
|
+
hash: 4110349452567973535
|
308
308
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
309
309
|
none: false
|
310
310
|
requirements:
|