ppc 2.0.3 → 2.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/ppc.rb +1 -1
- data/lib/ppc/api.rb +1 -10
- data/lib/ppc/api/baidu/bulk.rb +3 -3
- data/lib/ppc/api/baidu/report.rb +15 -15
- data/lib/ppc/api/qihu/report.rb +5 -5
- data/lib/ppc/api/sm.rb +1 -1
- data/lib/ppc/api/sm/bulk.rb +1 -1
- data/lib/ppc/api/sm/report.rb +15 -15
- data/lib/ppc/api/sogou.rb +2 -2
- data/lib/ppc/api/sogou/bulk.rb +1 -1
- data/lib/ppc/api/sogou/report.rb +15 -15
- data/lib/ppc/operation/report.rb +16 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c1ffce2f8c4545b7ae1489322d55a0ef2c03511
|
4
|
+
data.tar.gz: 58e7f48a6389464bf1c9a68d5f01c6d27f4546d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e9518dd1d57f4dd9a053b8ba3fc1e18e5821eecc928421e360127d51b2e31203268d830fbd54741b00ab4141258c4baf36ccc084527453b08cdaeee2096f66d
|
7
|
+
data.tar.gz: e789f19103d66d2cac478bb27372b1c207b2a5b53eaeba1036d380b9d8afa47290d02b672fb7d5cd4d19d8b06559cf4a91f8f29b61c0c5eea5078859eaed9c83
|
data/README.md
CHANGED
@@ -9,6 +9,12 @@ ppc
|
|
9
9
|
----------
|
10
10
|
#How to use it ?
|
11
11
|
|
12
|
+
### Add ppc and savon(version3) to Gemfile
|
13
|
+
```ruby
|
14
|
+
gem "savon", git: "https://github.com/savonrb/savon", branch: "version3"
|
15
|
+
gem "ppc", "~>2.0.3"
|
16
|
+
```
|
17
|
+
|
12
18
|
### Create an objects:
|
13
19
|
```ruby
|
14
20
|
param = {
|
data/lib/ppc.rb
CHANGED
data/lib/ppc/api.rb
CHANGED
@@ -14,17 +14,8 @@ module PPC
|
|
14
14
|
module API
|
15
15
|
|
16
16
|
@map = nil
|
17
|
-
@debug = false
|
18
17
|
@match_types = nil
|
19
18
|
|
20
|
-
def debug_on
|
21
|
-
@debug = true
|
22
|
-
end
|
23
|
-
|
24
|
-
def debug_off
|
25
|
-
@debug = false
|
26
|
-
end
|
27
|
-
|
28
19
|
def request_uri(param = {})
|
29
20
|
raise 'you need build the uri'
|
30
21
|
end
|
@@ -62,7 +53,7 @@ module PPC
|
|
62
53
|
end
|
63
54
|
|
64
55
|
# 是否显示http通信输出
|
65
|
-
http.set_debug_output( $stdout ) if
|
56
|
+
http.set_debug_output( $stdout ) if ENV["DEBUG"]
|
66
57
|
http.use_ssl = true
|
67
58
|
if http_method == 'delete'
|
68
59
|
req = Net::HTTP::Delete.new(uri.path, http_header)
|
data/lib/ppc/api/baidu/bulk.rb
CHANGED
@@ -52,17 +52,17 @@ module PPC
|
|
52
52
|
raise file_id[:failure][0]['message']
|
53
53
|
end
|
54
54
|
|
55
|
-
puts "file_id: #{file_id}" if
|
55
|
+
puts "file_id: #{file_id}" if ENV["DEBUG"]
|
56
56
|
|
57
57
|
loop do
|
58
58
|
state = state( auth, file_id )[:result].to_s
|
59
59
|
raise "invalid file state: #{state}" unless %w(1 2 3 null).include? state
|
60
60
|
break if state == '3'
|
61
|
-
puts "waiting for #{file_id} to be ready. current state:#{state}" if
|
61
|
+
puts "waiting for #{file_id} to be ready. current state:#{state}" if ENV["DEBUG"]
|
62
62
|
sleep 3
|
63
63
|
end
|
64
64
|
|
65
|
-
puts "#{file_id} is ready" if
|
65
|
+
puts "#{file_id} is ready" if ENV["DEBUG"]
|
66
66
|
return path( auth, file_id )
|
67
67
|
|
68
68
|
rescue => e
|
data/lib/ppc/api/baidu/report.rb
CHANGED
@@ -72,67 +72,67 @@ module PPC
|
|
72
72
|
#################################
|
73
73
|
# useful function for operation #
|
74
74
|
#################################
|
75
|
-
def self.query_report( auth, param = {}
|
75
|
+
def self.query_report( auth, param = {} )
|
76
76
|
param[:type] ||= 'query'
|
77
77
|
param[:fields] ||= %w(click impression)
|
78
78
|
param[:level] ||= 'pair'
|
79
79
|
param[:range] ||= 'account'
|
80
80
|
param[:unit] ||= 'day'
|
81
|
-
download_report( auth, param
|
81
|
+
download_report( auth, param )
|
82
82
|
end
|
83
83
|
|
84
|
-
def self.creative_report( auth, param = {}
|
84
|
+
def self.creative_report( auth, param = {} )
|
85
85
|
param[:type] ||= 'creative'
|
86
86
|
param[:fields] ||= %w(impression click cpc cost ctr cpm position conversion)
|
87
87
|
param[:level] ||= 'creative'
|
88
88
|
param[:range] ||= 'creative'
|
89
89
|
param[:unit] ||= 'day'
|
90
|
-
download_report( auth, param
|
90
|
+
download_report( auth, param )
|
91
91
|
end
|
92
92
|
|
93
|
-
def self.keyword_report( auth, param = {}
|
93
|
+
def self.keyword_report( auth, param = {} )
|
94
94
|
param[:type] ||= 'keyword'
|
95
95
|
param[:fields] ||= %w(impression click cpc cost ctr cpm position conversion)
|
96
96
|
param[:level] ||= 'keywordid'
|
97
97
|
param[:range] ||= 'keywordid'
|
98
98
|
param[:unit] ||= 'day'
|
99
|
-
download_report( auth, param
|
99
|
+
download_report( auth, param )
|
100
100
|
end
|
101
101
|
|
102
|
-
def self.account_report( auth, param = {}
|
102
|
+
def self.account_report( auth, param = {} )
|
103
103
|
param[:type] ||= 'account'
|
104
104
|
param[:fields] ||= %w(impression click cpc cost ctr cpm conversion)
|
105
105
|
param[:level] ||= 'account'
|
106
106
|
param[:unit] ||= 'day'
|
107
|
-
download_report( auth, param
|
107
|
+
download_report( auth, param )
|
108
108
|
end
|
109
109
|
|
110
|
-
def self.plan_report( auth, param = {}
|
110
|
+
def self.plan_report( auth, param = {} )
|
111
111
|
param[:type] ||= 'plan'
|
112
112
|
param[:fields] ||= %w(impression click cpc cost ctr cpm conversion)
|
113
113
|
param[:level] ||= 'plan'
|
114
114
|
param[:unit] ||= 'day'
|
115
|
-
download_report( auth, param
|
115
|
+
download_report( auth, param )
|
116
116
|
end
|
117
117
|
|
118
|
-
def self.group_report( auth, param = {}
|
118
|
+
def self.group_report( auth, param = {} )
|
119
119
|
param[:type] ||= 'group'
|
120
120
|
param[:fields] ||= %w(impression click cpc cost ctr cpm conversion)
|
121
121
|
param[:level] ||= 'group'
|
122
122
|
param[:unit] ||= 'day'
|
123
|
-
download_report( auth, param
|
123
|
+
download_report( auth, param )
|
124
124
|
end
|
125
125
|
|
126
|
-
def self.download_report( auth, param
|
126
|
+
def self.download_report( auth, param )
|
127
127
|
p param
|
128
128
|
response = get_id( auth, param )
|
129
129
|
if response[:succ]
|
130
130
|
id = response[:result]
|
131
|
-
p "Got report id:" + id.to_s if
|
131
|
+
p "Got report id:" + id.to_s if ENV["DEBUG"]
|
132
132
|
loop do
|
133
133
|
sleep 2
|
134
134
|
break if get_state( auth, id )[:result].to_s[/(Finished|3)/]
|
135
|
-
p "Report is not generated, waiting..." if
|
135
|
+
p "Report is not generated, waiting..." if ENV["DEBUG"]
|
136
136
|
end
|
137
137
|
|
138
138
|
url = get_url( auth, id )[:result]
|
data/lib/ppc/api/qihu/report.rb
CHANGED
@@ -57,15 +57,15 @@ module PPC
|
|
57
57
|
############################
|
58
58
|
# Interfaces for operation #
|
59
59
|
############################
|
60
|
-
def self.keyword_report( auth, param
|
61
|
-
download_report(auth, 'keyword', param
|
60
|
+
def self.keyword_report( auth, param )
|
61
|
+
download_report(auth, 'keyword', param )
|
62
62
|
end
|
63
63
|
|
64
|
-
def self.creative_report( auth, param
|
65
|
-
download_report(auth, 'creative', param
|
64
|
+
def self.creative_report( auth, param )
|
65
|
+
download_report(auth, 'creative', param )
|
66
66
|
end
|
67
67
|
|
68
|
-
def self.download_report(auth, type, param
|
68
|
+
def self.download_report(auth, type, param )
|
69
69
|
# deal_with time
|
70
70
|
is_now = Date.today == Date.parse(param[:startDate])
|
71
71
|
|
data/lib/ppc/api/sm.rb
CHANGED
@@ -28,7 +28,7 @@ module PPC
|
|
28
28
|
result is the processed response body.
|
29
29
|
'''
|
30
30
|
result = {}
|
31
|
-
result[:succ] = response['header']['desc']
|
31
|
+
result[:succ] = response['header']['desc'][/(success|执行成功)/] ? true : false
|
32
32
|
result[:failure] = response['header']['failures']
|
33
33
|
result[:result] = func[ response['body'][key] ] rescue nil
|
34
34
|
result[:no_quota] = (response['header']['failures']['code'] == '8501') rescue false
|
data/lib/ppc/api/sm/bulk.rb
CHANGED
data/lib/ppc/api/sm/report.rb
CHANGED
@@ -70,63 +70,63 @@ module PPC
|
|
70
70
|
#################################
|
71
71
|
# useful function for operation #
|
72
72
|
#################################
|
73
|
-
def self.query_report( auth, param = {}
|
73
|
+
def self.query_report( auth, param = {} )
|
74
74
|
param[:type] ||= 'query'
|
75
75
|
param[:fields] ||= %w(click impression)
|
76
76
|
param[:range] ||= 'account'
|
77
77
|
param[:unit] ||= 'day'
|
78
|
-
download_report( auth, param
|
78
|
+
download_report( auth, param )
|
79
79
|
end
|
80
80
|
|
81
|
-
def self.creative_report( auth, param = {}
|
81
|
+
def self.creative_report( auth, param = {} )
|
82
82
|
param[:type] ||= 'creative'
|
83
83
|
param[:fields] ||= %w(click impression)
|
84
84
|
param[:range] ||= 'account'
|
85
85
|
param[:unit] ||= 'day'
|
86
|
-
download_report( auth, param
|
86
|
+
download_report( auth, param )
|
87
87
|
end
|
88
88
|
|
89
|
-
def self.keyword_report( auth, param = {}
|
89
|
+
def self.keyword_report( auth, param = {} )
|
90
90
|
param[:type] ||= 'keyword'
|
91
91
|
param[:fields] ||= %w(click impression cost cpc ctr)
|
92
92
|
param[:range] ||= 'account'
|
93
93
|
param[:unit] ||= 'day'
|
94
|
-
download_report( auth, param
|
94
|
+
download_report( auth, param )
|
95
95
|
end
|
96
96
|
|
97
|
-
def self.account_report( auth, param = {}
|
97
|
+
def self.account_report( auth, param = {} )
|
98
98
|
param[:type] ||= 'account'
|
99
99
|
param[:fields] ||= %w(click impression cost cpc ctr)
|
100
100
|
param[:range] ||= 'account'
|
101
101
|
param[:unit] ||= 'day'
|
102
|
-
download_report( auth, param
|
102
|
+
download_report( auth, param )
|
103
103
|
end
|
104
104
|
|
105
|
-
def self.plan_report( auth, param = {}
|
105
|
+
def self.plan_report( auth, param = {} )
|
106
106
|
param[:type] ||= 'plan'
|
107
107
|
param[:fields] ||= %w(click impression cost cpc ctr)
|
108
108
|
param[:range] ||= 'plan'
|
109
109
|
param[:unit] ||= 'day'
|
110
|
-
download_report( auth, param
|
110
|
+
download_report( auth, param )
|
111
111
|
end
|
112
112
|
|
113
|
-
def self.group_report( auth, param = {}
|
113
|
+
def self.group_report( auth, param = {} )
|
114
114
|
param[:type] ||= 'group'
|
115
115
|
param[:fields] ||= %w(click impression cost cpc ctr)
|
116
116
|
param[:range] ||= 'group'
|
117
117
|
param[:unit] ||= 'day'
|
118
|
-
download_report( auth, param
|
118
|
+
download_report( auth, param )
|
119
119
|
end
|
120
120
|
|
121
|
-
def self.download_report( auth, param
|
121
|
+
def self.download_report( auth, param )
|
122
122
|
response = get_id( auth, param )
|
123
123
|
if response[:succ]
|
124
124
|
id = response[:result]
|
125
|
-
p "Got report id:" + id.to_s if
|
125
|
+
p "Got report id:" + id.to_s if ENV["DEBUG"]
|
126
126
|
loop do
|
127
127
|
sleep 2
|
128
128
|
break if get_state( auth, id )[:result] == 'FINISHED'
|
129
|
-
p "Report is not generated, waiting..." if
|
129
|
+
p "Report is not generated, waiting..." if ENV["DEBUG"]
|
130
130
|
end
|
131
131
|
fileId = get_fileId(auth, id)[:result]
|
132
132
|
return get_file(auth, fileId).force_encoding("utf-8")
|
data/lib/ppc/api/sogou.rb
CHANGED
@@ -31,14 +31,14 @@ module PPC
|
|
31
31
|
}
|
32
32
|
operation.body = { (method+'Request').to_sym => params }
|
33
33
|
# debug print
|
34
|
-
debug_print( operation ) if
|
34
|
+
debug_print( operation ) if ENV["DEBUG"]
|
35
35
|
result = operation.call.hash[:envelope]
|
36
36
|
#extract header and body
|
37
37
|
response = { }
|
38
38
|
response[:header] = result[:header][:res_header]
|
39
39
|
response[:body] = result[:body][ (method + "Response").snake_case.to_sym ]
|
40
40
|
# debug print
|
41
|
-
puts response if
|
41
|
+
puts response if ENV["DEBUG"]
|
42
42
|
return response
|
43
43
|
end
|
44
44
|
|
data/lib/ppc/api/sogou/bulk.rb
CHANGED
@@ -67,7 +67,7 @@ module PPC
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
def self.rank_report(auth, device = 0
|
70
|
+
def self.rank_report(auth, device = 0 )
|
71
71
|
url = download_cpc_rank(auth, device)[:result]
|
72
72
|
file = "sogou_rank_#{Time.now.to_i}.zip"
|
73
73
|
File.open(file, "w"){|f| f.puts open(url).read}
|
data/lib/ppc/api/sogou/report.rb
CHANGED
@@ -64,16 +64,16 @@ module PPC
|
|
64
64
|
###########################
|
65
65
|
# intreface for Operation #
|
66
66
|
###########################
|
67
|
-
def self.download_report( auth, param
|
67
|
+
def self.download_report( auth, param )
|
68
68
|
response = get_id( auth, param )
|
69
69
|
if response[:succ]
|
70
70
|
id = response[:result]
|
71
|
-
p "Got report id:" + id.to_s if
|
71
|
+
p "Got report id:" + id.to_s if ENV["DEBUG"]
|
72
72
|
times = 0
|
73
73
|
loop do
|
74
74
|
raise "The speed of get_status is too slow." if (times += 1) > 10
|
75
75
|
break if get_state( auth, id )[:result] == 'Finished'
|
76
|
-
p "Report is not generated, waiting..." if
|
76
|
+
p "Report is not generated, waiting..." if ENV["DEBUG"]
|
77
77
|
sleep 5
|
78
78
|
end
|
79
79
|
|
@@ -84,47 +84,47 @@ module PPC
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
-
def self.query_report( auth, param = {}
|
87
|
+
def self.query_report( auth, param = {} )
|
88
88
|
param[:type] ||= 'query'
|
89
89
|
param[:fields] ||= %w(click)
|
90
90
|
param[:range] ||= 'account'
|
91
91
|
param[:unit] ||= 'day'
|
92
|
-
download_report( auth, param
|
92
|
+
download_report( auth, param )
|
93
93
|
end
|
94
94
|
|
95
|
-
def self.creative_report( auth, param = {}
|
95
|
+
def self.creative_report( auth, param = {} )
|
96
96
|
param[:type] ||= 'creative'
|
97
97
|
param[:fields] ||= %w( cost cpc click impression ctr )
|
98
98
|
param[:range] ||= 'account'
|
99
|
-
download_report( auth, param
|
99
|
+
download_report( auth, param )
|
100
100
|
end
|
101
101
|
|
102
|
-
def self.keyword_report( auth, param = {}
|
102
|
+
def self.keyword_report( auth, param = {} )
|
103
103
|
param[:type] ||= 'keyword'
|
104
104
|
param[:fields] ||= %w( cost cpc click impression ctr )
|
105
105
|
param[:range] ||= 'account'
|
106
|
-
download_report( auth, param
|
106
|
+
download_report( auth, param )
|
107
107
|
end
|
108
108
|
|
109
|
-
def self.account_report( auth, param = {}
|
109
|
+
def self.account_report( auth, param = {} )
|
110
110
|
param[:type] ||= 'account'
|
111
111
|
param[:fields] ||= %w( cost cpc click impression ctr )
|
112
112
|
param[:range] ||= 'account'
|
113
|
-
download_report( auth, param
|
113
|
+
download_report( auth, param )
|
114
114
|
end
|
115
115
|
|
116
|
-
def self.plan_report( auth, param = {}
|
116
|
+
def self.plan_report( auth, param = {} )
|
117
117
|
param[:type] ||= 'plan'
|
118
118
|
param[:fields] ||= %w( cost cpc click impression ctr )
|
119
119
|
param[:range] ||= 'plan'
|
120
|
-
download_report( auth, param
|
120
|
+
download_report( auth, param )
|
121
121
|
end
|
122
122
|
|
123
|
-
def self.group_report( auth, param = {}
|
123
|
+
def self.group_report( auth, param = {} )
|
124
124
|
param[:type] ||= 'group'
|
125
125
|
param[:fields] ||= %w( cost cpc click impression ctr)
|
126
126
|
param[:range] ||= 'group'
|
127
|
-
download_report( auth, param
|
127
|
+
download_report( auth, param )
|
128
128
|
end
|
129
129
|
|
130
130
|
end # Repost
|
data/lib/ppc/operation/report.rb
CHANGED
@@ -2,36 +2,36 @@ module PPC
|
|
2
2
|
module Operation
|
3
3
|
module Report
|
4
4
|
|
5
|
-
def download_report( param = {}
|
6
|
-
call( "report" ).download_report( @auth, param
|
5
|
+
def download_report( param = {} )
|
6
|
+
call( "report" ).download_report( @auth, param )
|
7
7
|
end
|
8
8
|
|
9
|
-
def query_report( param = {}
|
10
|
-
call( "report" ).query_report( @auth, param
|
9
|
+
def query_report( param = {} )
|
10
|
+
call( "report" ).query_report( @auth, param )
|
11
11
|
end
|
12
12
|
|
13
|
-
def creative_report( param = {}
|
14
|
-
call( "report" ).creative_report( @auth, param
|
13
|
+
def creative_report( param = {} )
|
14
|
+
call( "report" ).creative_report( @auth, param )
|
15
15
|
end
|
16
16
|
|
17
|
-
def keyword_report( param = {}
|
18
|
-
call( "report" ).keyword_report( @auth, param
|
17
|
+
def keyword_report( param = {} )
|
18
|
+
call( "report" ).keyword_report( @auth, param )
|
19
19
|
end
|
20
20
|
|
21
|
-
def account_report( param = {}
|
22
|
-
call( "report" ).account_report( @auth, param
|
21
|
+
def account_report( param = {} )
|
22
|
+
call( "report" ).account_report( @auth, param )
|
23
23
|
end
|
24
24
|
|
25
|
-
def plan_report( param = {}
|
26
|
-
call( "report" ).plan_report( @auth, param
|
25
|
+
def plan_report( param = {} )
|
26
|
+
call( "report" ).plan_report( @auth, param )
|
27
27
|
end
|
28
28
|
|
29
|
-
def group_report( param = {}
|
30
|
-
call( "report" ).group_report( @auth, param
|
29
|
+
def group_report( param = {} )
|
30
|
+
call( "report" ).group_report( @auth, param )
|
31
31
|
end
|
32
32
|
|
33
|
-
def rank_report( device = 0
|
34
|
-
call( "bulk" ).rank_report( @auth, device
|
33
|
+
def rank_report( device = 0 )
|
34
|
+
call( "bulk" ).rank_report( @auth, device )
|
35
35
|
end
|
36
36
|
|
37
37
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ppc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chienli Ma
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-11-28 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|