ppc 2.0.2 → 2.0.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 770db96f31a2d738d9f4918852017a4d9f2a6c30
4
- data.tar.gz: 6f4da699a833ac12ba58d62dfe9afffacf2be467
3
+ metadata.gz: 644d36e63a1131b4c40e51a9774a8fc3fcdce623
4
+ data.tar.gz: ec46a7efe0d2740a765e9bc2a13f6417bff8a439
5
5
  SHA512:
6
- metadata.gz: 0078aa233faf95529606a806343bdc53172e0feea53d090cac35553d2ea39a6083d36eacaa3407b64e829dee479564e01256a29b2a8bbb905f29738d3262ed16
7
- data.tar.gz: 8bdb1364278a17a5b313ce3a69761adef394140591848b4003d0ef3ff19bc68d4a136d307dd54cdf3f6fab08b30bbc6d87bdd2a2ab9951a6391e2886f9fc764e
6
+ metadata.gz: 9126d0b364445da25d82be3ae6fb14a4c1741d90f461d8d1826ff299d0d225f4f61c6f3291e3a0b91159c52ccbe6691ed913fa1294d352e5fcaf514be54134ee
7
+ data.tar.gz: 4097196b9a88796223fe0f830053630fdbb284941f2c4f060999840daaad1959571c0ee7fd64979c2ad979843e938ac21de029d13977ecd835d367ee5d7a91a6
data/README.md CHANGED
@@ -10,7 +10,7 @@ ppc
10
10
  #How to use it ?
11
11
 
12
12
  ### Create an objects:
13
-
13
+ ```ruby
14
14
  param = {
15
15
  se: 'baidu', # baidu,qihu,sogou,sm
16
16
  username: 'username',
@@ -32,17 +32,18 @@ ppc
32
32
  group = ::PPC::Operaion::Group.new(param)
33
33
  creative = ::PPC::Operaion::Creative.new(param)
34
34
  keyword = ::PPC::Operaion::Keyword.new(param)
35
-
35
+ ```
36
36
  ###Get objects info:
37
-
37
+ ```ruby
38
38
  # get info
39
39
  account.info[:result]
40
40
  plan.info[:result]
41
41
  group.info[:result]
42
42
  creative.info[:result]
43
43
  keyword.info[:result]
44
-
44
+ ```
45
45
  ###Add keywords:
46
+ ```ruby
46
47
  keyword1 = { keyword: 'ppc1', group_id: 123, price:0.6, match_type:'wide'}
47
48
  keyword2 = { keyword: 'ppc2', group_id: 123, price:0.6, match_type:'phrase'}
48
49
  keyword3 = { keyword: 'ppc3', group_id: 123, price:0.6, match_type:'exact'}
@@ -50,19 +51,20 @@ ppc
50
51
  account.add_keyword( [keyword1, keyword2, keyword3] )
51
52
  plan.add_keyword( [keyword1, keyword2, keyword3] )
52
53
  group.add_keyword( [keyword1, keyword2, keyword3] )
53
-
54
+ ```
54
55
  ###Delete keywords
56
+ ```ruby
55
57
  account.delete_keyword( [123, 234, 345] )
56
58
  plan.delete_keyword( [123, 234, 345] )
57
59
  adgroup.delete_keyword( [123, 234, 345] )
58
-
60
+ ```
59
61
  -----------------------------------------------
60
62
 
61
63
  #API:
62
64
 
63
65
  ### Return values:
64
66
  All mehtods return a hash:
65
-
67
+
66
68
  {
67
69
  succ: boolean, # true if operation success else false
68
70
  failure: Array, # failures info if operation false, else nil
@@ -74,7 +76,7 @@ All mehtods return a hash:
74
76
  ###API casting:
75
77
  In each service class ::PPC::API::#{SE}::#{Service} there is a member map casting PPC API to Search engine Service API,
76
78
  For example:
77
-
79
+ ```ruby
78
80
  ::PPC::API::Baidu::Keyword.map = [
79
81
  [:id,:keywordId],
80
82
  [:group_id,:adgroupId],
@@ -87,7 +89,7 @@ For example:
87
89
  [:status,:status],
88
90
  [:pause,:pause]
89
91
  ]
90
-
92
+ ```
91
93
  ppc API keys are at the left side while search engine API keys are at the right side.
92
94
 
93
95
  For more info please have a look into files in /ppc/api/
@@ -25,6 +25,7 @@ module PPC
25
25
  reg_domain: :regDomain,
26
26
  offline_time: :budgetOfflineTime,
27
27
  weekly_budget: :weeklyBudget,
28
+ user_level: :userLevel,
28
29
  }
29
30
  @map = AccountInfoType
30
31
 
@@ -65,6 +65,7 @@ module PPC
65
65
  requesttype[:idOnly] = param[:id_only] || false
66
66
  requesttype[:startDate] = Time.parse( param[:startDate] ) rescue Time.now - 86400
67
67
  requesttype[:endDate] = Time.parse( param[:endDate] ) rescue Time.now - 86400
68
+ requesttype[:statIds] = param[:statIds] if param[:statIds]
68
69
  requesttype
69
70
  end
70
71
 
@@ -97,7 +98,31 @@ module PPC
97
98
  param[:unit] ||= 'day'
98
99
  download_report( auth, param, debug )
99
100
  end
100
-
101
+
102
+ def self.account_report( auth, param = {}, debug = false )
103
+ param[:type] ||= 'account'
104
+ param[:fields] ||= %w(impression click cpc cost ctr cpm conversion)
105
+ param[:level] ||= 'account'
106
+ param[:unit] ||= 'day'
107
+ download_report( auth, param, debug )
108
+ end
109
+
110
+ def self.plan_report( auth, param = {}, debug = false )
111
+ param[:type] ||= 'plan'
112
+ param[:fields] ||= %w(impression click cpc cost ctr cpm conversion)
113
+ param[:level] ||= 'plan'
114
+ param[:unit] ||= 'day'
115
+ download_report( auth, param, debug )
116
+ end
117
+
118
+ def self.group_report( auth, param = {}, debug = false )
119
+ param[:type] ||= 'group'
120
+ param[:fields] ||= %w(impression click cpc cost ctr cpm conversion)
121
+ param[:level] ||= 'group'
122
+ param[:unit] ||= 'day'
123
+ download_report( auth, param, debug )
124
+ end
125
+
101
126
  def self.download_report( auth, param, debug = false )
102
127
  p param
103
128
  response = get_id( auth, param )
@@ -94,6 +94,30 @@ module PPC
94
94
  download_report( auth, param, debug )
95
95
  end
96
96
 
97
+ def self.account_report( auth, param = {}, debug = false )
98
+ param[:type] ||= 'account'
99
+ param[:fields] ||= %w(click impression cost cpc ctr)
100
+ param[:range] ||= 'account'
101
+ param[:unit] ||= 'day'
102
+ download_report( auth, param, debug )
103
+ end
104
+
105
+ def self.plan_report( auth, param = {}, debug = false )
106
+ param[:type] ||= 'plan'
107
+ param[:fields] ||= %w(click impression cost cpc ctr)
108
+ param[:range] ||= 'plan'
109
+ param[:unit] ||= 'day'
110
+ download_report( auth, param, debug )
111
+ end
112
+
113
+ def self.group_report( auth, param = {}, debug = false )
114
+ param[:type] ||= 'group'
115
+ param[:fields] ||= %w(click impression cost cpc ctr)
116
+ param[:range] ||= 'group'
117
+ param[:unit] ||= 'day'
118
+ download_report( auth, param, debug )
119
+ end
120
+
97
121
  def self.download_report( auth, param, debug = false )
98
122
  response = get_id( auth, param )
99
123
  if response[:succ]
@@ -57,6 +57,7 @@ module PPC
57
57
  requesttype[:idOnly] = param[:id_only] if param[:id_only]!=nil
58
58
  requesttype[:startDate] = (Time.parse( param[:startDate] ) rescue Time.now - 86400).utc.iso8601
59
59
  requesttype[:endDate] = (Time.parse( param[:endDate] ) rescue Time.now - 86400).utc.iso8601
60
+ requesttype[:statIds] = param[:statIds] if param[:statIds]
60
61
  return requesttype
61
62
  end
62
63
 
@@ -105,6 +106,27 @@ module PPC
105
106
  download_report( auth, param, debug )
106
107
  end
107
108
 
109
+ def self.account_report( auth, param = {}, debug = false )
110
+ param[:type] ||= 'account'
111
+ param[:fields] ||= %w( cost cpc click impression ctr )
112
+ param[:range] ||= 'account'
113
+ download_report( auth, param, debug )
114
+ end
115
+
116
+ def self.plan_report( auth, param = {}, debug = false )
117
+ param[:type] ||= 'plan'
118
+ param[:fields] ||= %w( cost cpc click impression ctr )
119
+ param[:range] ||= 'plan'
120
+ download_report( auth, param, debug )
121
+ end
122
+
123
+ def self.group_report( auth, param = {}, debug = false )
124
+ param[:type] ||= 'group'
125
+ param[:fields] ||= %w( cost cpc click impression ctr)
126
+ param[:range] ||= 'group'
127
+ download_report( auth, param, debug )
128
+ end
129
+
108
130
  end # Repost
109
131
  end # Baidu
110
132
  end # API
@@ -18,6 +18,18 @@ module PPC
18
18
  call( "report" ).keyword_report( @auth, param, debug )
19
19
  end
20
20
 
21
+ def account_report( param = {}, debug = false )
22
+ call( "report" ).account_report( @auth, param, debug )
23
+ end
24
+
25
+ def plan_report( param = {}, debug = false )
26
+ call( "report" ).plan_report( @auth, param, debug )
27
+ end
28
+
29
+ def group_report( param = {}, debug = false )
30
+ call( "report" ).group_report( @auth, param, debug )
31
+ end
32
+
21
33
  def rank_report( device = 0, debug = false )
22
34
  call( "bulk" ).rank_report( @auth, device, debug)
23
35
  end
data/lib/ppc.rb CHANGED
@@ -3,7 +3,7 @@ require 'ppc/operation'
3
3
  require 'ppc/ext'
4
4
  module PPC
5
5
 
6
- VERSION = "2.0.2"
6
+ VERSION = "2.0.3"
7
7
 
8
8
  protected
9
9
  def print_debug(var,varname=nil)
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.2
4
+ version: 2.0.3
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-09-20 00:00:00.000000000 Z
14
+ date: 2016-10-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: httparty