zuck 0.2.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.travis.yml +0 -1
- data/CHANGELOG.markdown +12 -1
- data/Gemfile +4 -4
- data/Gemfile.lock +40 -11
- data/README.markdown +6 -6
- data/VERSION +1 -1
- data/lib/zuck/facebook/ad_interest.rb +44 -0
- data/lib/zuck/facebook/targeting_spec.rb +23 -22
- data/spec/fixtures/ad_interest_search_disney.yml +54 -0
- data/spec/fixtures/ad_interest_search_moviepilot.yml +138 -0
- data/spec/fixtures/{ad_keyword_search_nonexistant.yml → ad_interest_search_nonexistant.yml} +12 -12
- data/spec/fixtures/reach_for_invalid_interest.yml +186 -0
- data/spec/fixtures/reach_for_valid_keywords.yml +56 -11
- data/spec/fixtures/reach_for_valid_keywords_male_young.yml +65 -14
- data/spec/lib/zuck/facebook/ad_interest_spec.rb +23 -0
- data/spec/lib/zuck/facebook/targeting_spec_spec.rb +35 -34
- data/zuck.gemspec +24 -23
- metadata +61 -102
- data/lib/zuck/facebook/ad_keyword.rb +0 -45
- data/spec/fixtures/ad_keyword_search_disney.yml +0 -53
- data/spec/fixtures/ad_keyword_search_moviepilot.yml +0 -48
- data/spec/fixtures/reach_for_invalid_keyword.yml +0 -48
- data/spec/lib/zuck/facebook/ad_keyword_spec.rb +0 -23
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://graph.facebook.com/search?access_token=
|
5
|
+
uri: https://graph.facebook.com/search?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&q=ick%20spickeby&type=adinterest
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -18,24 +18,24 @@ http_interactions:
|
|
18
18
|
code: 200
|
19
19
|
message: OK
|
20
20
|
headers:
|
21
|
+
Etag:
|
22
|
+
- ! '"1050253aec7b29caff644806927dabfa81406eee"'
|
23
|
+
Content-Type:
|
24
|
+
- application/json; charset=UTF-8
|
25
|
+
Pragma:
|
26
|
+
- no-cache
|
21
27
|
Access-Control-Allow-Origin:
|
22
28
|
- ! '*'
|
29
|
+
X-Fb-Rev:
|
30
|
+
- '1216101'
|
23
31
|
Cache-Control:
|
24
32
|
- private, no-cache, no-store, must-revalidate
|
25
|
-
Content-Type:
|
26
|
-
- application/json; charset=UTF-8
|
27
|
-
Etag:
|
28
|
-
- ! '"1050253aec7b29caff644806927dabfa81406eee"'
|
29
33
|
Expires:
|
30
34
|
- Sat, 01 Jan 2000 00:00:00 GMT
|
31
|
-
Pragma:
|
32
|
-
- no-cache
|
33
|
-
X-Fb-Rev:
|
34
|
-
- '934677'
|
35
35
|
X-Fb-Debug:
|
36
|
-
-
|
36
|
+
- QNmfkVe55l+0EhPmSprtl/3hWTHE0fyabyRpktddxtg=
|
37
37
|
Date:
|
38
|
-
-
|
38
|
+
- Tue, 22 Apr 2014 16:22:30 GMT
|
39
39
|
Connection:
|
40
40
|
- keep-alive
|
41
41
|
Content-Length:
|
@@ -44,5 +44,5 @@ http_interactions:
|
|
44
44
|
encoding: US-ASCII
|
45
45
|
string: ! '{"data":[]}'
|
46
46
|
http_version:
|
47
|
-
recorded_at:
|
47
|
+
recorded_at: Tue, 22 Apr 2014 16:22:32 GMT
|
48
48
|
recorded_with: VCR 2.3.0
|
@@ -0,0 +1,186 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://graph.facebook.com/search?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&keyword_list=Eminem,invalidsssssssssssssss&type=adkeywordvalid
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.8.7
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- ! '*/*'
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 400
|
19
|
+
message: Bad Request
|
20
|
+
headers:
|
21
|
+
Www-Authenticate:
|
22
|
+
- OAuth "Facebook Platform" "invalid_request" "This search type has been deprecated
|
23
|
+
for your app."
|
24
|
+
Content-Type:
|
25
|
+
- application/json; charset=UTF-8
|
26
|
+
Pragma:
|
27
|
+
- no-cache
|
28
|
+
Access-Control-Allow-Origin:
|
29
|
+
- ! '*'
|
30
|
+
X-Fb-Rev:
|
31
|
+
- '1216101'
|
32
|
+
Cache-Control:
|
33
|
+
- no-store
|
34
|
+
Expires:
|
35
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
36
|
+
X-Fb-Debug:
|
37
|
+
- 5YWQGv5UmUcgvCXSOo52+SA8r7cDrVuPgHIvhviZFdc=
|
38
|
+
Date:
|
39
|
+
- Tue, 22 Apr 2014 13:36:40 GMT
|
40
|
+
Connection:
|
41
|
+
- keep-alive
|
42
|
+
Content-Length:
|
43
|
+
- '115'
|
44
|
+
body:
|
45
|
+
encoding: US-ASCII
|
46
|
+
string: ! '{"error":{"message":"This search type has been deprecated for your
|
47
|
+
app.","type":"GraphMethodException","code":100}}'
|
48
|
+
http_version:
|
49
|
+
recorded_at: Tue, 22 Apr 2014 13:36:41 GMT
|
50
|
+
- request:
|
51
|
+
method: get
|
52
|
+
uri: https://graph.facebook.com/search?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&keyword_list=Eminem,invalidsssssssssssssss&type=adinterestvalid
|
53
|
+
body:
|
54
|
+
encoding: US-ASCII
|
55
|
+
string: ''
|
56
|
+
headers:
|
57
|
+
User-Agent:
|
58
|
+
- Faraday v0.8.7
|
59
|
+
Accept-Encoding:
|
60
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
61
|
+
Accept:
|
62
|
+
- ! '*/*'
|
63
|
+
response:
|
64
|
+
status:
|
65
|
+
code: 200
|
66
|
+
message: OK
|
67
|
+
headers:
|
68
|
+
Etag:
|
69
|
+
- ! '"1050253aec7b29caff644806927dabfa81406eee"'
|
70
|
+
Content-Type:
|
71
|
+
- application/json; charset=UTF-8
|
72
|
+
Pragma:
|
73
|
+
- no-cache
|
74
|
+
Access-Control-Allow-Origin:
|
75
|
+
- ! '*'
|
76
|
+
X-Fb-Rev:
|
77
|
+
- '1216101'
|
78
|
+
Cache-Control:
|
79
|
+
- private, no-cache, no-store, must-revalidate
|
80
|
+
Expires:
|
81
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
82
|
+
X-Fb-Debug:
|
83
|
+
- ojR7Y6RIT7GLVdCXuXQmUXCaTKnDob/Lcxk/NYR6FVE=
|
84
|
+
Date:
|
85
|
+
- Tue, 22 Apr 2014 15:53:05 GMT
|
86
|
+
Connection:
|
87
|
+
- keep-alive
|
88
|
+
Content-Length:
|
89
|
+
- '11'
|
90
|
+
body:
|
91
|
+
encoding: US-ASCII
|
92
|
+
string: ! '{"data":[]}'
|
93
|
+
http_version:
|
94
|
+
recorded_at: Tue, 22 Apr 2014 15:53:07 GMT
|
95
|
+
- request:
|
96
|
+
method: get
|
97
|
+
uri: https://graph.facebook.com/search?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&interest_list=Eminem,invalidsssssssssssssss&type=adinterestvalid
|
98
|
+
body:
|
99
|
+
encoding: US-ASCII
|
100
|
+
string: ''
|
101
|
+
headers:
|
102
|
+
User-Agent:
|
103
|
+
- Faraday v0.8.7
|
104
|
+
Accept-Encoding:
|
105
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
106
|
+
Accept:
|
107
|
+
- ! '*/*'
|
108
|
+
response:
|
109
|
+
status:
|
110
|
+
code: 400
|
111
|
+
message: Bad Request
|
112
|
+
headers:
|
113
|
+
Www-Authenticate:
|
114
|
+
- OAuth "Facebook Platform" "invalid_request" "(#100) param interest_list must
|
115
|
+
be an array."
|
116
|
+
Content-Type:
|
117
|
+
- application/json; charset=UTF-8
|
118
|
+
Pragma:
|
119
|
+
- no-cache
|
120
|
+
Access-Control-Allow-Origin:
|
121
|
+
- ! '*'
|
122
|
+
X-Fb-Rev:
|
123
|
+
- '1216101'
|
124
|
+
Cache-Control:
|
125
|
+
- no-store
|
126
|
+
Expires:
|
127
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
128
|
+
X-Fb-Debug:
|
129
|
+
- d4l2YYQRkv0eOtLLFGlS40LwTDqugSEc3O5ILobLc8E=
|
130
|
+
Date:
|
131
|
+
- Tue, 22 Apr 2014 15:55:06 GMT
|
132
|
+
Connection:
|
133
|
+
- keep-alive
|
134
|
+
Content-Length:
|
135
|
+
- '103'
|
136
|
+
body:
|
137
|
+
encoding: US-ASCII
|
138
|
+
string: ! '{"error":{"message":"(#100) param interest_list must be an array.","type":"OAuthException","code":100}}'
|
139
|
+
http_version:
|
140
|
+
recorded_at: Tue, 22 Apr 2014 15:55:07 GMT
|
141
|
+
- request:
|
142
|
+
method: get
|
143
|
+
uri: https://graph.facebook.com/search?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&interest_list%5B%5D=invalidsssssssssssssss&type=adinterestvalid
|
144
|
+
body:
|
145
|
+
encoding: US-ASCII
|
146
|
+
string: ''
|
147
|
+
headers:
|
148
|
+
User-Agent:
|
149
|
+
- Faraday v0.8.7
|
150
|
+
Accept-Encoding:
|
151
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
152
|
+
Accept:
|
153
|
+
- ! '*/*'
|
154
|
+
response:
|
155
|
+
status:
|
156
|
+
code: 200
|
157
|
+
message: OK
|
158
|
+
headers:
|
159
|
+
Etag:
|
160
|
+
- ! '"99b46c018fb5ff17aaa09a5f4c8cc1e39a023833"'
|
161
|
+
Content-Type:
|
162
|
+
- application/json; charset=UTF-8
|
163
|
+
Pragma:
|
164
|
+
- no-cache
|
165
|
+
Access-Control-Allow-Origin:
|
166
|
+
- ! '*'
|
167
|
+
X-Fb-Rev:
|
168
|
+
- '1216101'
|
169
|
+
Cache-Control:
|
170
|
+
- private, no-cache, no-store, must-revalidate
|
171
|
+
Expires:
|
172
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
173
|
+
X-Fb-Debug:
|
174
|
+
- pRnjXTFy5pPE54NjzHEgMQgm1715mvuGDsxzdtLib40=
|
175
|
+
Date:
|
176
|
+
- Tue, 22 Apr 2014 15:56:01 GMT
|
177
|
+
Connection:
|
178
|
+
- keep-alive
|
179
|
+
Content-Length:
|
180
|
+
- '269'
|
181
|
+
body:
|
182
|
+
encoding: US-ASCII
|
183
|
+
string: ! '{"data":[{"name":"Eminem","valid":true,"id":6003267925601,"audience_size":121735657,"path":[],"description":null},{"name":"em\u0131nem","valid":true,"id":6004151469695,"audience_size":44621,"path":[],"description":null},{"name":"invalidsssssssssssssss","valid":false}]}'
|
184
|
+
http_version:
|
185
|
+
recorded_at: Tue, 22 Apr 2014 15:56:03 GMT
|
186
|
+
recorded_with: VCR 2.3.0
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://graph.facebook.com/
|
5
|
+
uri: https://graph.facebook.com/act_1384977038406122/reachestimate?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&targeting_spec=%7B%22geo_locations%22:%7B%22countries%22:%5B%22US%22%5D%7D,%22interests%22:%5B%22Eminem%22,%22Sting%22%5D,%22age_min%22:13,%22countries%22:%5B%5D,%22connections%22:%5B%5D,%22broad_age%22:false%7D
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -18,31 +18,76 @@ http_interactions:
|
|
18
18
|
code: 200
|
19
19
|
message: OK
|
20
20
|
headers:
|
21
|
+
Etag:
|
22
|
+
- ! '"c1294c35226a3ed2f57509721e541bd19ab3a0ed"'
|
23
|
+
Content-Type:
|
24
|
+
- application/json; charset=UTF-8
|
25
|
+
Pragma:
|
26
|
+
- no-cache
|
21
27
|
Access-Control-Allow-Origin:
|
22
28
|
- ! '*'
|
29
|
+
X-Fb-Rev:
|
30
|
+
- '1216101'
|
23
31
|
Cache-Control:
|
24
32
|
- private, no-cache, no-store, must-revalidate
|
25
|
-
Content-Type:
|
26
|
-
- application/json; charset=UTF-8
|
27
|
-
Etag:
|
28
|
-
- ! '"9ac6d458b810272cafd8ce451a7f9f1f9530c83b"'
|
29
33
|
Expires:
|
30
34
|
- Sat, 01 Jan 2000 00:00:00 GMT
|
35
|
+
X-Fb-Debug:
|
36
|
+
- TKktKl3jf/UiEoF+94LZ687QmZePRbIbsuJtQAwSVYQ=
|
37
|
+
Date:
|
38
|
+
- Tue, 22 Apr 2014 13:31:34 GMT
|
39
|
+
Connection:
|
40
|
+
- keep-alive
|
41
|
+
Content-Length:
|
42
|
+
- '488'
|
43
|
+
body:
|
44
|
+
encoding: US-ASCII
|
45
|
+
string: ! '{"users":28000000,"bid_estimations":[{"unsupported":false,"location":3,"cpa_min":10,"cpa_median":16,"cpa_max":21,"cpc_min":10,"cpc_median":16,"cpc_max":21,"cpm_min":7,"cpm_median":93,"cpm_max":271}],"estimate_ready":true,"imp_estimates":[],"data":{"users":28000000,"bid_estimations":[{"unsupported":false,"location":3,"cpa_min":10,"cpa_median":16,"cpa_max":21,"cpc_min":10,"cpc_median":16,"cpc_max":21,"cpm_min":7,"cpm_median":93,"cpm_max":271}],"estimate_ready":true,"imp_estimates":[]}}'
|
46
|
+
http_version:
|
47
|
+
recorded_at: Tue, 22 Apr 2014 13:31:35 GMT
|
48
|
+
- request:
|
49
|
+
method: get
|
50
|
+
uri: https://graph.facebook.com/act_1384977038406122/reachestimate?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&targeting_spec=%7B%22geo_locations%22:%7B%22countries%22:%5B%22US%22%5D%7D,%22interests%22:%5B%22Eminem%22,%22Sting%20(Musician)%22%5D,%22age_min%22:13,%22countries%22:%5B%5D,%22connections%22:%5B%5D,%22broad_age%22:false%7D
|
51
|
+
body:
|
52
|
+
encoding: US-ASCII
|
53
|
+
string: ''
|
54
|
+
headers:
|
55
|
+
User-Agent:
|
56
|
+
- Faraday v0.8.7
|
57
|
+
Accept-Encoding:
|
58
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
59
|
+
Accept:
|
60
|
+
- ! '*/*'
|
61
|
+
response:
|
62
|
+
status:
|
63
|
+
code: 200
|
64
|
+
message: OK
|
65
|
+
headers:
|
66
|
+
Etag:
|
67
|
+
- ! '"a8f1384987b3c658b17a07155c2cc83b2a1701ce"'
|
68
|
+
Content-Type:
|
69
|
+
- application/json; charset=UTF-8
|
31
70
|
Pragma:
|
32
71
|
- no-cache
|
72
|
+
Access-Control-Allow-Origin:
|
73
|
+
- ! '*'
|
33
74
|
X-Fb-Rev:
|
34
|
-
- '
|
75
|
+
- '1216101'
|
76
|
+
Cache-Control:
|
77
|
+
- private, no-cache, no-store, must-revalidate
|
78
|
+
Expires:
|
79
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
35
80
|
X-Fb-Debug:
|
36
|
-
-
|
81
|
+
- ORocQtfaAdpNtxSIfrYYstW/EysQjQ78NX75OLnYKII=
|
37
82
|
Date:
|
38
|
-
-
|
83
|
+
- Tue, 22 Apr 2014 14:21:09 GMT
|
39
84
|
Connection:
|
40
85
|
- keep-alive
|
41
86
|
Content-Length:
|
42
|
-
- '
|
87
|
+
- '490'
|
43
88
|
body:
|
44
89
|
encoding: US-ASCII
|
45
|
-
string: ! '{"users":
|
90
|
+
string: ! '{"users":28000000,"bid_estimations":[{"unsupported":false,"location":3,"cpa_min":12,"cpa_median":19,"cpa_max":25,"cpc_min":11,"cpc_median":17,"cpc_max":22,"cpm_min":7,"cpm_median":124,"cpm_max":283}],"estimate_ready":true,"imp_estimates":[],"data":{"users":28000000,"bid_estimations":[{"unsupported":false,"location":3,"cpa_min":12,"cpa_median":19,"cpa_max":25,"cpc_min":11,"cpc_median":17,"cpc_max":22,"cpm_min":7,"cpm_median":124,"cpm_max":283}],"estimate_ready":true,"imp_estimates":[]}}'
|
46
91
|
http_version:
|
47
|
-
recorded_at:
|
92
|
+
recorded_at: Tue, 22 Apr 2014 14:21:11 GMT
|
48
93
|
recorded_with: VCR 2.3.0
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://graph.facebook.com/
|
5
|
+
uri: https://graph.facebook.com/act_1384977038406122/reachestimate?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&targeting_spec=%7B%22geo_locations%22:%7B%22countries%22:%5B%22US%22%5D%7D,%22interests%22:%5B%22Sting%22%5D,%22age_min%22:13,%22age_max%22:24,%22genders%22:%5B2%5D,%22countries%22:%5B%5D,%22connections%22:%5B%5D,%22broad_age%22:false%7D
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -15,34 +15,85 @@ http_interactions:
|
|
15
15
|
- ! '*/*'
|
16
16
|
response:
|
17
17
|
status:
|
18
|
-
code:
|
19
|
-
message:
|
18
|
+
code: 400
|
19
|
+
message: Bad Request
|
20
20
|
headers:
|
21
|
+
Www-Authenticate:
|
22
|
+
- ! 'OAuth "Facebook Platform" "invalid_request" "(#1487703) Invalid Interests
|
23
|
+
Targeting: You have selected invalid interests.,Invalid Interests Targeting:
|
24
|
+
You have selected invalid interests."'
|
25
|
+
Content-Type:
|
26
|
+
- application/json; charset=UTF-8
|
27
|
+
Pragma:
|
28
|
+
- no-cache
|
21
29
|
Access-Control-Allow-Origin:
|
22
30
|
- ! '*'
|
31
|
+
X-Fb-Rev:
|
32
|
+
- '1216101'
|
23
33
|
Cache-Control:
|
24
|
-
-
|
25
|
-
Content-Type:
|
26
|
-
- application/json; charset=UTF-8
|
27
|
-
Etag:
|
28
|
-
- ! '"ed45c65e395f6b7bcfd3dcbb4451e915b2ab464d"'
|
34
|
+
- no-store
|
29
35
|
Expires:
|
30
36
|
- Sat, 01 Jan 2000 00:00:00 GMT
|
37
|
+
X-Fb-Debug:
|
38
|
+
- OKnEh+SCMeuUtDeOx7uBgc2Y3+cP/ADtQmizuwCFbh4=
|
39
|
+
Date:
|
40
|
+
- Tue, 22 Apr 2014 13:31:34 GMT
|
41
|
+
Connection:
|
42
|
+
- keep-alive
|
43
|
+
Content-Length:
|
44
|
+
- '376'
|
45
|
+
body:
|
46
|
+
encoding: US-ASCII
|
47
|
+
string: ! '{"error":{"message":"(#1487703) Invalid Interests Targeting: You
|
48
|
+
have selected invalid interests.,Invalid Interests Targeting: You have selected
|
49
|
+
invalid interests.","type":"OAuthException","code":1487703,"error_data":{"showable_errors":["Invalid
|
50
|
+
Interests Targeting: You have selected invalid interests.","Invalid Interests
|
51
|
+
Targeting: You have selected invalid interests."]}}}'
|
52
|
+
http_version:
|
53
|
+
recorded_at: Tue, 22 Apr 2014 13:31:36 GMT
|
54
|
+
- request:
|
55
|
+
method: get
|
56
|
+
uri: https://graph.facebook.com/act_1384977038406122/reachestimate?access_token=CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh&targeting_spec=%7B%22geo_locations%22:%7B%22countries%22:%5B%22US%22%5D%7D,%22interests%22:%5B%22Sting%20(musician)%22%5D,%22age_min%22:13,%22age_max%22:24,%22genders%22:%5B2%5D,%22countries%22:%5B%5D,%22connections%22:%5B%5D,%22broad_age%22:false%7D
|
57
|
+
body:
|
58
|
+
encoding: US-ASCII
|
59
|
+
string: ''
|
60
|
+
headers:
|
61
|
+
User-Agent:
|
62
|
+
- Faraday v0.8.7
|
63
|
+
Accept-Encoding:
|
64
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
65
|
+
Accept:
|
66
|
+
- ! '*/*'
|
67
|
+
response:
|
68
|
+
status:
|
69
|
+
code: 200
|
70
|
+
message: OK
|
71
|
+
headers:
|
72
|
+
Etag:
|
73
|
+
- ! '"535b11b3cffda3c65a081209ee4ddf3835e6f914"'
|
74
|
+
Content-Type:
|
75
|
+
- application/json; charset=UTF-8
|
31
76
|
Pragma:
|
32
77
|
- no-cache
|
78
|
+
Access-Control-Allow-Origin:
|
79
|
+
- ! '*'
|
33
80
|
X-Fb-Rev:
|
34
|
-
- '
|
81
|
+
- '1216101'
|
82
|
+
Cache-Control:
|
83
|
+
- private, no-cache, no-store, must-revalidate
|
84
|
+
Expires:
|
85
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
35
86
|
X-Fb-Debug:
|
36
|
-
-
|
87
|
+
- 7bO34dIJWYBvK8cDwLDpgiq7ZexaDsJ9Ij4Qa/B1jFw=
|
37
88
|
Date:
|
38
|
-
-
|
89
|
+
- Tue, 22 Apr 2014 14:20:18 GMT
|
39
90
|
Connection:
|
40
91
|
- keep-alive
|
41
92
|
Content-Length:
|
42
|
-
- '
|
93
|
+
- '480'
|
43
94
|
body:
|
44
95
|
encoding: US-ASCII
|
45
|
-
string: ! '{"users":
|
96
|
+
string: ! '{"users":74000,"bid_estimations":[{"unsupported":false,"location":3,"cpa_min":10,"cpa_median":15,"cpa_max":20,"cpc_min":9,"cpc_median":14,"cpc_max":18,"cpm_min":6,"cpm_median":17,"cpm_max":136}],"estimate_ready":true,"imp_estimates":[],"data":{"users":74000,"bid_estimations":[{"unsupported":false,"location":3,"cpa_min":10,"cpa_median":15,"cpa_max":20,"cpc_min":9,"cpc_median":14,"cpc_max":18,"cpm_min":6,"cpm_median":17,"cpm_max":136}],"estimate_ready":true,"imp_estimates":[]}}'
|
46
97
|
http_version:
|
47
|
-
recorded_at:
|
98
|
+
recorded_at: Tue, 22 Apr 2014 14:20:20 GMT
|
48
99
|
recorded_with: VCR 2.3.0
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Zuck::AdInterest do
|
4
|
+
let(:graph){ Koala::Facebook::API.new('CAAEvJ5vzhl8BAPGZCZCPL4FxryEHXGxPCuCGeqe3PEWIjhIvJ00HB8PPpokFmUkemvmEUHirqdNMc7zIDLSTVnX6jTQjAgSlzcYrAYJRQ32fr6RM5ZAnKPdgFEwN5tgvswatXZAI4vu7ZBAQexRl9MU0CpwW7JDDBZAGo5XDrCKrBxkUUWJUvh')}
|
5
|
+
|
6
|
+
it "finds the best interest with a #" do
|
7
|
+
VCR.use_cassette('ad_interest_search_disney') do
|
8
|
+
Zuck::AdInterest.best_guess(graph, 'disney')[:interest].should == 'The Walt Disney Company'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
it "finds the best interest when no keyword with # is available" do
|
13
|
+
VCR.use_cassette('ad_interest_search_moviepilot') do
|
14
|
+
Zuck::AdInterest.best_guess(graph, 'moviepilot')[:interest].should == 'moviepilotcom'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns nil when nothing could be found" do
|
19
|
+
VCR.use_cassette('ad_interest_search_nonexistant') do
|
20
|
+
Zuck::AdInterest.best_guess(graph, 'ick spickeby').should be_nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|