bluekai 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/lib/bluekai/category.rb +145 -0
- data/lib/bluekai/client.rb +20 -321
- data/lib/bluekai/rule.rb +165 -0
- data/lib/bluekai/user_data.rb +90 -0
- data/lib/bluekai/version.rb +1 -1
- data/lib/bluekai.rb +3 -0
- data/spec/fixtures/signatures/0e01a80ff1ca77f4fd32b58ff48310168539a9a26e4ef527042b7bab78d4648a +1 -0
- data/spec/fixtures/signatures/7fe2b3662915bf82890e1fe870480885e0744b12832569c5d7017a0fc42d5527 +1 -0
- data/spec/fixtures/signatures/8cd7ba76199d2b34be042841a2dd69310619dcac0f3dd4f24bae6b5fb5f9e302 +1 -0
- data/spec/fixtures/signatures/95768bffa5416007061da13a2a0368e52a4bea3451ac2dfede43f6a6841ac402 +1 -0
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Category}/creates_a_category.yml +10 -10
- data/spec/fixtures/vcr_cassettes/Bluekai_Category/lists_4_categories.yml +104 -0
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Category}/reads_a_category_and_its_reach.yml +1616 -1610
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Category}/updates_a_category.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Bluekai_Client/lists_Bluekai_taxonomy_nodes.yml +28225 -27370
- data/spec/fixtures/vcr_cassettes/Bluekai_Client/performs_a_ping.yml +4 -4
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Rule}/creates_a_rule.yml +11 -11
- data/spec/fixtures/vcr_cassettes/Bluekai_Rule/lists_10_phint_rules.yml +234 -0
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Rule}/reads_a_rule.yml +12 -10
- data/spec/fixtures/vcr_cassettes/{Bluekai_Client → Bluekai_Rule}/updates_a_rule.yml +7 -7
- data/spec/fixtures/vcr_cassettes/Bluekai_UserData/reads_user_information_given_bkuuid.yml +44 -0
- data/spec/lib/bluekai/category_integration_spec.rb +56 -0
- data/spec/lib/bluekai/client_integration_spec.rb +1 -141
- data/spec/lib/bluekai/client_spec.rb +0 -3
- data/spec/lib/bluekai/rule_integration_spec.rb +73 -0
- data/spec/lib/bluekai/user_data_integration_spec.rb +12 -0
- data/spec/spec_helper.rb +3 -2
- data/spec/support/signature_mock.rb +13 -0
- metadata +40 -19
- data/spec/fixtures/vcr_cassettes/Bluekai_Client/lists_10_phint_rules.yml +0 -194
- data/spec/fixtures/vcr_cassettes/Bluekai_Client/lists_4_categories.yml +0 -3569
data/lib/bluekai/rule.rb
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
module Bluekai
|
2
|
+
class Rule < Client
|
3
|
+
####
|
4
|
+
#### Classification Rules
|
5
|
+
#### API definition can be found here
|
6
|
+
#### https://kb.bluekai.com/display/PD/Self-Classification+Rule+API
|
7
|
+
####
|
8
|
+
|
9
|
+
# Public: List the self-classification rules in your private
|
10
|
+
# taxonomy
|
11
|
+
#
|
12
|
+
# sort_by:string - Enter 'status', 'id', 'created_at', 'updated_at',
|
13
|
+
# or 'type' to sort the returned self-classification
|
14
|
+
# rules by the specified option.
|
15
|
+
#
|
16
|
+
# sorting_order:string - Enter 'asc' or 'desc' to list the returned
|
17
|
+
# self-classification rules in ascending or descending
|
18
|
+
# order based on the specified sort option.
|
19
|
+
#
|
20
|
+
# ids:integer - Returns the self-classification rule matching the specified
|
21
|
+
# rule ID, or returns all the self-classification rules matching
|
22
|
+
# the specified list of rule IDs. Syntax for passing multiple rule IDs:
|
23
|
+
# ruleId1&id=ruleId2 Example: 123&id=125
|
24
|
+
#
|
25
|
+
# type:enum - Enter 'phint' or 'url' to return only the phint or
|
26
|
+
# URL-based self-classification rules.
|
27
|
+
#
|
28
|
+
# site_ids:string - Returns all the self-classification rules under the
|
29
|
+
# specified site ID or list of site IDs. Syntax for
|
30
|
+
# passing multiple site IDs: site_id_1&site_ids=site_id_2
|
31
|
+
# Example: 1234&site_ids=1235
|
32
|
+
#
|
33
|
+
# category_ids:string - Returns all the self-classification rules used
|
34
|
+
# to map the specified catgeory ID or list of category IDs.
|
35
|
+
# Syntax for passing multiple category
|
36
|
+
# IDs: category_id_1&category_ids=category_id_2
|
37
|
+
# Example: 1234&category_ids=1235
|
38
|
+
#
|
39
|
+
# offset:integer - Specify the starting index from which to return the
|
40
|
+
# self-classification rules.
|
41
|
+
#
|
42
|
+
# size:integer - Specify the maximum number of rules to be included in
|
43
|
+
# the response. This filter requires the offset filter
|
44
|
+
# to be specified.
|
45
|
+
#
|
46
|
+
# created_date_range:string - Returns all the self-classification rules
|
47
|
+
# created within the specified list of dates.
|
48
|
+
# Syntax: YYYY-MM-DD&created_date_range=YYYY-MM-DD
|
49
|
+
# Example: 2014-01-01&created_date_range=2014-31-01
|
50
|
+
#
|
51
|
+
# updated_date_range:string - Returns all the self-classification rules updated
|
52
|
+
# within the specified list of dates.
|
53
|
+
# Syntax: YYYY-MM-DD&updated_date_range=YYYY-MM-DD
|
54
|
+
# Example: 2014-01-01&updated_date_range=2014-31-01
|
55
|
+
#
|
56
|
+
# status:string - Enter 'Active' or 'Creating' to return the
|
57
|
+
# self-classification rules based on the specified status referrer
|
58
|
+
# boolean Returns all URL-based self-classification rules that
|
59
|
+
# classify the site URL (False) or the referrer URL (True) in
|
60
|
+
# the collected URL.
|
61
|
+
#
|
62
|
+
# exact:boolean - Returns all URL-based self-classification rules that classify
|
63
|
+
# an exact URL (True) or a top-level URL (False) in the collected URL.
|
64
|
+
# Returns: hash of Bluekai rules
|
65
|
+
def rule_list(query)
|
66
|
+
request('GET', '/Services/WS/classificationRules', query)[:rules]
|
67
|
+
end
|
68
|
+
|
69
|
+
# Public: Reads a self-classification rule
|
70
|
+
#
|
71
|
+
# rule_id:integer - The unique ID assigned to the
|
72
|
+
# self-classification rule to be retrieved
|
73
|
+
#
|
74
|
+
# Returns: hash of Blukkai rule parameters
|
75
|
+
def rule_read(rule_id)
|
76
|
+
request('GET', "/Services/WS/classificationRules/#{rule_id}", {})
|
77
|
+
end
|
78
|
+
|
79
|
+
# Public: Creates a new self-classification rule
|
80
|
+
#
|
81
|
+
# name:string - Enter a string specifying the name of the self-classification rule.
|
82
|
+
#
|
83
|
+
# type:string - {'phint', 'url'} Specify the type of classification rule.
|
84
|
+
#
|
85
|
+
# phints:[{phint}] - If you are creating a phint-based rule,
|
86
|
+
# enter a list of your phint definitions.
|
87
|
+
# Each phint requires the following properties:
|
88
|
+
# key - The phint key operator - The criteria
|
89
|
+
# used for determining how the phint value
|
90
|
+
# is applied ('is' or 'contains')
|
91
|
+
# value - The full or partial phint value,
|
92
|
+
# depending on the specified operator.
|
93
|
+
#
|
94
|
+
# urls:[string(s)] - Provide a list of your URL definitions
|
95
|
+
# if you are creating for URL-based rules.
|
96
|
+
#
|
97
|
+
# referrer:string - {'True','False'} If you are creating a
|
98
|
+
# URL-based rule, specify whether the URL to
|
99
|
+
# be classified is the site URL (False) or
|
100
|
+
# the referrer URL (True).
|
101
|
+
#
|
102
|
+
# exact:string - {'True','False'} If you are creating a
|
103
|
+
# URL-based rule, specify whether the URL collected
|
104
|
+
# from your site must match the URL in your
|
105
|
+
# rule (True) or match a top-level URL (False) so
|
106
|
+
# that you can target users visiting the child pages
|
107
|
+
# without specifying them.
|
108
|
+
#
|
109
|
+
# partner_id:integer - Enter the unique ID assigned to your BlueKai DMP seat.
|
110
|
+
#
|
111
|
+
# site_ids (optional):[interger(s)] - Enter a list of containers/site IDs to which
|
112
|
+
# the self-classification rule applies. If
|
113
|
+
# you do not include this parameter, the
|
114
|
+
# rule is applicable to ALL the
|
115
|
+
# container/site IDs in your seat.
|
116
|
+
#
|
117
|
+
# category_ids:[integer(s)] - a list of category IDs to which
|
118
|
+
# the self-classification rule applies.
|
119
|
+
#
|
120
|
+
# JSON example for Phint-based self-classification rule
|
121
|
+
# {
|
122
|
+
# "name": "Phint Example",
|
123
|
+
# "type": "phint",
|
124
|
+
# "phints": [
|
125
|
+
# {
|
126
|
+
# "key": "x",
|
127
|
+
# "value": "123",
|
128
|
+
# "operator": "is"
|
129
|
+
# }
|
130
|
+
# ],
|
131
|
+
# "partner_id": 123,
|
132
|
+
# "site_ids": [1234],
|
133
|
+
# "category_ids": [12345]
|
134
|
+
# }
|
135
|
+
#
|
136
|
+
# JSON example for URL-based self-classiifcation rule
|
137
|
+
# {
|
138
|
+
# "name": "URL Example",
|
139
|
+
# "type": "url",
|
140
|
+
# "urls": ["http://shop.yoursite.com"],
|
141
|
+
# "referrer": false,
|
142
|
+
# "exact": false,
|
143
|
+
# "partner_id": 123,
|
144
|
+
# "site_ids": [1234],
|
145
|
+
# "category_ids": [123456]
|
146
|
+
# }
|
147
|
+
# Returns: hash of created self-classification rule
|
148
|
+
def rule_create(body)
|
149
|
+
body = { partner_id: @partner_id }.merge(body)
|
150
|
+
request('POST', '/Services/WS/classificationRules', {}, body)
|
151
|
+
end
|
152
|
+
|
153
|
+
# Public: Update a self-classification rule
|
154
|
+
#
|
155
|
+
# rule_id:integer (MANDATORY) - id of classification rule to be updated
|
156
|
+
#
|
157
|
+
# for other parameters refer to documentation of rule_create(body)
|
158
|
+
#
|
159
|
+
# Returns: hash of updated self-classification rule
|
160
|
+
def rule_update(rule_id, body)
|
161
|
+
body = { partner_id: @partner_id }.merge(body)
|
162
|
+
request('PUT', "/Services/WS/classificationRules/#{rule_id}", {}, body)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
module Bluekai
|
2
|
+
class UserData < Client
|
3
|
+
####
|
4
|
+
#### User Data
|
5
|
+
####
|
6
|
+
#### API definition can be found here
|
7
|
+
#### https://kb.bluekai.com/display/PD/User+Data+API
|
8
|
+
####
|
9
|
+
|
10
|
+
# Public: method to add attributes to a user's online profile,
|
11
|
+
# and to return the categories for which they qualified in one
|
12
|
+
# or more campaigns.
|
13
|
+
#
|
14
|
+
# siteid:integer - Enter the site ID associated with the
|
15
|
+
# BlueKai Container you deployed on your site. If you are sending data
|
16
|
+
# to BlueKai, the specified site ID must be included in the
|
17
|
+
# classification rules used to map your phints (user attributes)
|
18
|
+
# to categories in your taxonomy. If you are getting data, the
|
19
|
+
# specified site ID must be in the pixel URL of the campaign
|
20
|
+
# targeting the user.
|
21
|
+
#
|
22
|
+
# userid:string - Enter the encrypted BlueKai UUID (BKUUID) for the user. The BKUUID may
|
23
|
+
# be returned by the ID swap tag you deployed on your site.
|
24
|
+
#
|
25
|
+
# puserid:string - Enter your Partner-based UUID (PUUID) for the user.
|
26
|
+
#
|
27
|
+
# pfield:string - If you entered a puserid that was ID swapped with BlueKai via
|
28
|
+
# phints (for example, you used the BlueKai CoreTag to send the
|
29
|
+
# puserid to BlueKai), you must do the following in order to use it for
|
30
|
+
# sending and getting user data: 1. In the pfield parameter, enter the
|
31
|
+
# type of key (fieldname) associated with the puserid you are passing.
|
32
|
+
# The pfield is used to uniquely identify your puserid(s) in the
|
33
|
+
# BlueKai platform. 2. Contact your BlueKai Account Manager to
|
34
|
+
# enable your pfield in the BlueKai system.
|
35
|
+
#
|
36
|
+
# idfa:string - If you are sending or getting data on an iOS mobile app user, enter the
|
37
|
+
# Identifier for Advertising (IDFA) of the mobile iOS device.
|
38
|
+
# Note: The data you are sending or getting is linked exclusively to the
|
39
|
+
# IDFA, which operates in a primary ID space (the data is not linked to
|
40
|
+
# a BKUUID). You do not need to pass the userid or puserid when passing the
|
41
|
+
# idfa.If you pass both an idfa and a userid/puserid, the user will be
|
42
|
+
# looked up based on the userid/puserid.
|
43
|
+
#
|
44
|
+
# adid:string - If you are sending or getting data on an Android mobile app user,
|
45
|
+
# enter the Google Advertising ID of the mobile Android device. Note: The
|
46
|
+
# data you are sending or getting is linked exclusively to the AdID,
|
47
|
+
# which operates in a primary ID space (the data is not linked to a
|
48
|
+
# BKUUID). You do not need to pass the userid or puserid when
|
49
|
+
# passing the adid.If you pass both an adid and a userid/puserid,
|
50
|
+
# the user will be looked up based on the userid/puserid.
|
51
|
+
#
|
52
|
+
# useragent:string - If you are sending or getting data on a mobile user (via their
|
53
|
+
# BlueKai statistical ID), enter the user agent of the mobile device
|
54
|
+
# and the ipaddress.
|
55
|
+
#
|
56
|
+
# ipaddress:string - If you are sending or getting data on a mobile user (via their
|
57
|
+
# BlueKai statistical ID), enter the IP address of the user's
|
58
|
+
# mobile device and the useragent.
|
59
|
+
#
|
60
|
+
# create_profile:string - Enter 1 to create a new user profile in the BlueKai Profile
|
61
|
+
# Store, and add the categories specified in the phint field to it.
|
62
|
+
#
|
63
|
+
# phint:string - Enter a phint or a list of phints (key-value pairs that represent user
|
64
|
+
# attributes) to tag the user with. The maximum number of phints you
|
65
|
+
# can pass is restricted by the maximum size of the HTTP GET
|
66
|
+
# request, which is 2,048 bytes.
|
67
|
+
# Syntax for passing multiple phints: category1=value&phint=category2=value
|
68
|
+
# Example: v=123&phint=v=345
|
69
|
+
#
|
70
|
+
# filterbycampids:string - Enter a campaign ID or a comma-separated list of campaign IDs
|
71
|
+
# to filter the categories returned by the
|
72
|
+
# User Data API based on the campaigns that won the user.
|
73
|
+
#
|
74
|
+
# Syntax for passing multiple campaign IDs: campaignId1=value&filterbycampids=campaignId2=value
|
75
|
+
# Example: 44966&filterbycampids=41674
|
76
|
+
#
|
77
|
+
# target:integer - By default, this flag is set to 1, which means that the User Data
|
78
|
+
# API returns the categories that user has been tagged with. Enter 0
|
79
|
+
# to disable user targeting and not return any user categories.
|
80
|
+
def user_data(site_id, query)
|
81
|
+
request('GET', "/getdata/#{site_id}/v1.2", query, nil)
|
82
|
+
end
|
83
|
+
|
84
|
+
private
|
85
|
+
|
86
|
+
def domain
|
87
|
+
'http://api.tags.bluekai.com'
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
data/lib/bluekai/version.rb
CHANGED
data/lib/bluekai.rb
CHANGED
data/spec/fixtures/signatures/0e01a80ff1ca77f4fd32b58ff48310168539a9a26e4ef527042b7bab78d4648a
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
6yKY4ELmcOD1mWIoiTNkfeNKtA6P6UlUH0tnW2DuYvk%3D
|
data/spec/fixtures/signatures/7fe2b3662915bf82890e1fe870480885e0744b12832569c5d7017a0fc42d5527
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1CzTegZKodeBp5tYeJoYsPvFcd75MOWRz5SV%2FZrVB1w%3D
|
data/spec/fixtures/signatures/8cd7ba76199d2b34be042841a2dd69310619dcac0f3dd4f24bae6b5fb5f9e302
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
%2FOMmOpBsb88KpnipB5og6HaMrTjXEjNPDYuwLoTEgT0%3D
|
data/spec/fixtures/signatures/95768bffa5416007061da13a2a0368e52a4bea3451ac2dfede43f6a6841ac402
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
PcRmnygfAQ2726R%2BkEJekFp5rmBboLgbhbcxrq3iCfQ%3D
|
@@ -2,11 +2,11 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: https://bluekai
|
5
|
+
uri: https://services.bluekai.com/Services/WS/classificationCategories?bksig=1CzTegZKodeBp5tYeJoYsPvFcd75MOWRz5SV/ZrVB1w=&bkuid=bluekai-api-user-key
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"analytics_excluded":"false","description":"an example category","mutex_children":"false","name":"Test
|
9
|
-
Category 123","navigation_only":"false","notes":"Just an API test","parent_id":"
|
9
|
+
Category 123","navigation_only":"false","notes":"Just an API test","parent_id":"424547"}'
|
10
10
|
headers:
|
11
11
|
Accept:
|
12
12
|
- application/json
|
@@ -18,9 +18,9 @@ http_interactions:
|
|
18
18
|
message: OK
|
19
19
|
headers:
|
20
20
|
Date:
|
21
|
-
- Wed,
|
21
|
+
- Wed, 15 Apr 2015 09:55:23 GMT
|
22
22
|
Set-Cookie:
|
23
|
-
- JSESSIONID=
|
23
|
+
- JSESSIONID=BFC398D84CD7A9F2E28DA873A55047CF; Path=/Services; HttpOnly
|
24
24
|
Content-Type:
|
25
25
|
- application/json
|
26
26
|
Cneonction:
|
@@ -32,18 +32,18 @@ http_interactions:
|
|
32
32
|
string: |-
|
33
33
|
{
|
34
34
|
"name" : "Test Category 123",
|
35
|
-
"id" :
|
35
|
+
"id" : 426057,
|
36
36
|
"description" : "an example category",
|
37
37
|
"leaf" : true,
|
38
38
|
"notes" : "Just an API test",
|
39
|
-
"parent_id" :
|
40
|
-
"created_at" : "2015-04-
|
41
|
-
"updated_at" : "2015-04-
|
39
|
+
"parent_id" : 424547,
|
40
|
+
"created_at" : "2015-04-15 04:55:23-0500",
|
41
|
+
"updated_at" : "2015-04-15 04:55:23-0500",
|
42
|
+
"navigation_only" : false,
|
42
43
|
"analytics_excluded" : false,
|
43
44
|
"mutex_children" : false,
|
44
|
-
"navigation_only" : false,
|
45
45
|
"rules" : [ ]
|
46
46
|
}
|
47
47
|
http_version:
|
48
|
-
recorded_at: Wed,
|
48
|
+
recorded_at: Wed, 15 Apr 2015 09:55:24 GMT
|
49
49
|
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,104 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://services.bluekai.com/Services/WS/classificationCategories?bksig=UBH5ABTZ0lJteX19/H5SxV7R70l9pT4Uf5UFFzdFyrE=&bkuid=bluekai-api-user-key&offset=0&size=4&sort_by=name&sorting_order=asc
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Tue, 14 Apr 2015 11:56:26 GMT
|
23
|
+
Set-Cookie:
|
24
|
+
- JSESSIONID=762114A14F8B1C4D0769EA1354B105A8; Path=/Services; HttpOnly
|
25
|
+
Content-Type:
|
26
|
+
- application/json
|
27
|
+
Cneonction:
|
28
|
+
- close
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: |-
|
34
|
+
{
|
35
|
+
"categories" : [ {
|
36
|
+
"name" : "Accessories",
|
37
|
+
"id" : 424261,
|
38
|
+
"description" : "Accessories category",
|
39
|
+
"leaf" : true,
|
40
|
+
"notes" : "",
|
41
|
+
"parent_id" : 424270,
|
42
|
+
"created_at" : "2015-04-08 08:57:41-0400",
|
43
|
+
"updated_at" : "2015-04-08 09:12:57-0400",
|
44
|
+
"navigation_only" : false,
|
45
|
+
"analytics_excluded" : false,
|
46
|
+
"mutex_children" : false,
|
47
|
+
"rules" : [ {
|
48
|
+
"id" : 12543,
|
49
|
+
"name" : "ST_SHARE_ACCESSORIES"
|
50
|
+
} ]
|
51
|
+
}, {
|
52
|
+
"name" : "Accessories",
|
53
|
+
"id" : 424276,
|
54
|
+
"description" : "Accessories category",
|
55
|
+
"leaf" : true,
|
56
|
+
"notes" : "",
|
57
|
+
"parent_id" : 424269,
|
58
|
+
"created_at" : "2015-04-08 08:57:41-0400",
|
59
|
+
"updated_at" : "2015-04-08 09:07:20-0400",
|
60
|
+
"navigation_only" : false,
|
61
|
+
"analytics_excluded" : false,
|
62
|
+
"mutex_children" : false,
|
63
|
+
"rules" : [ {
|
64
|
+
"id" : 12538,
|
65
|
+
"name" : "ST_BUY_ACCESSORIES"
|
66
|
+
} ]
|
67
|
+
}, {
|
68
|
+
"name" : "Accessories",
|
69
|
+
"id" : 424283,
|
70
|
+
"description" : "Accessories category",
|
71
|
+
"leaf" : true,
|
72
|
+
"notes" : "",
|
73
|
+
"parent_id" : 424271,
|
74
|
+
"created_at" : "2015-04-08 08:57:41-0400",
|
75
|
+
"updated_at" : "2015-04-08 09:14:34-0400",
|
76
|
+
"navigation_only" : false,
|
77
|
+
"analytics_excluded" : false,
|
78
|
+
"mutex_children" : false,
|
79
|
+
"rules" : [ {
|
80
|
+
"id" : 12548,
|
81
|
+
"name" : "ST_DETAIL_ACCESSORIES"
|
82
|
+
} ]
|
83
|
+
}, {
|
84
|
+
"name" : "Accessories",
|
85
|
+
"id" : 424284,
|
86
|
+
"description" : "Accessories category",
|
87
|
+
"leaf" : true,
|
88
|
+
"notes" : "",
|
89
|
+
"parent_id" : 424272,
|
90
|
+
"created_at" : "2015-04-08 08:57:41-0400",
|
91
|
+
"updated_at" : "2015-04-08 09:15:57-0400",
|
92
|
+
"navigation_only" : false,
|
93
|
+
"analytics_excluded" : false,
|
94
|
+
"mutex_children" : false,
|
95
|
+
"rules" : [ {
|
96
|
+
"id" : 12553,
|
97
|
+
"name" : "ST_HEART_ACCESSORIES"
|
98
|
+
} ]
|
99
|
+
} ],
|
100
|
+
"total_count" : 84
|
101
|
+
}
|
102
|
+
http_version:
|
103
|
+
recorded_at: Tue, 14 Apr 2015 11:56:26 GMT
|
104
|
+
recorded_with: VCR 2.9.3
|