yt 0.26.2 → 0.26.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/yt/collections/reports.rb +8 -1
- data/lib/yt/version.rb +1 -1
- data/spec/requests/as_content_owner/video_spec.rb +11 -0
- 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: 9c8bd5aecd37bbb0c4209b5fa1b0c7b425610629
|
4
|
+
data.tar.gz: 008187e83de0b7e3da55e65b12ff42ccb3f1dd40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 558f54d0e5e96a1d8bdec7bd737c7fbd5b3706a675c04baf36176b100735f95633e6412a3fa1f445b2f0c7c713832dfc309a07a2cf112fccd0b0d94c84a9dc42
|
7
|
+
data.tar.gz: 45cd8bb547e80018da19faabfd2a89adfbcce1035382c1192d1cead129ab583f778e8e82a7c028b261db0c25d8091a270d4a4863e225719a5242c3717ccde812
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,11 @@ For more information about changelogs, check
|
|
6
6
|
[Keep a Changelog](http://keepachangelog.com) and
|
7
7
|
[Vandamme](http://tech-angels.github.io/vandamme).
|
8
8
|
|
9
|
+
## 0.26.3 - 2016-10-07
|
10
|
+
|
11
|
+
* [FEATURE] Add `by: :subscribed_status` option for reports, to return views (from a `content_owner.video`) by subscribed status.
|
12
|
+
* [FEATURE] Add `Yt::Collections::Reports::SUBSCRIBED_STATUSES` to list all subscribed statuses supported by YouTube Analytics API.
|
13
|
+
|
9
14
|
## 0.26.2 - 2016-10-05
|
10
15
|
|
11
16
|
* [ENHANCEMENT] Add newly available traffic sources: "Campaign card" and "End screen"
|
@@ -11,6 +11,7 @@ module Yt
|
|
11
11
|
hash[:traffic_source] = {name: 'insightTrafficSourceType', parse: ->(source, *values) { @metrics.keys.zip(values.map{|v| {TRAFFIC_SOURCES.key(source) => v}}).to_h} }
|
12
12
|
hash[:playback_location] = {name: 'insightPlaybackLocationType', parse: ->(location, *values) { @metrics.keys.zip(values.map{|v| {PLAYBACK_LOCATIONS.key(location) => v}}).to_h} }
|
13
13
|
hash[:embedded_player_location] = {name: 'insightPlaybackLocationDetail', parse: ->(url, *values) {@metrics.keys.zip(values.map{|v| {url => v}}).to_h} }
|
14
|
+
hash[:subscribed_status] = {name: 'subscribedStatus', parse: ->(status, *values) {@metrics.keys.zip(values.map{|v| {SUBSCRIBED_STATUSES.key(status) => v}}).to_h} }
|
14
15
|
hash[:related_video] = {name: 'insightTrafficSourceDetail', parse: ->(video_id, *values) { @metrics.keys.zip(values.map{|v| {video_id => v}}).to_h} }
|
15
16
|
hash[:search_term] = {name: 'insightTrafficSourceDetail', parse: ->(search_term, *values) {@metrics.keys.zip(values.map{|v| {search_term => v}}).to_h} }
|
16
17
|
hash[:referrer] = {name: 'insightTrafficSourceDetail', parse: ->(url, *values) {@metrics.keys.zip(values.map{|v| {url => v}}).to_h} }
|
@@ -61,6 +62,12 @@ module Yt
|
|
61
62
|
mobile: 'MOBILE' # only present for data < September 10, 2013
|
62
63
|
}
|
63
64
|
|
65
|
+
# @see https://developers.google.com/youtube/analytics/v1/dimsmets/dims#Playback_Detail_Dimensions
|
66
|
+
SUBSCRIBED_STATUSES = {
|
67
|
+
subscribed: 'SUBSCRIBED',
|
68
|
+
unsubscribed: 'UNSUBSCRIBED'
|
69
|
+
}
|
70
|
+
|
64
71
|
# @see https://developers.google.com/youtube/analytics/v1/dimsmets/dims#Device_Dimensions
|
65
72
|
DEVICE_TYPES = {
|
66
73
|
desktop: 'DESKTOP',
|
@@ -126,7 +133,7 @@ module Yt
|
|
126
133
|
end
|
127
134
|
elsif dimension == :day
|
128
135
|
hash = hash.transform_values{|h| h.sort_by{|day, v| day}.to_h}
|
129
|
-
elsif dimension.in? [:traffic_source, :country, :state, :playback_location, :device_type, :operating_system]
|
136
|
+
elsif dimension.in? [:traffic_source, :country, :state, :playback_location, :device_type, :operating_system, :subscribed_status]
|
130
137
|
hash = hash.transform_values{|h| h.sort_by{|range, v| -v}.to_h}
|
131
138
|
end
|
132
139
|
(@metrics.one? || @metrics.keys == [:earnings, :estimated_minutes_watched]) ? hash[@metrics.keys.first] : hash
|
data/lib/yt/version.rb
CHANGED
@@ -422,6 +422,17 @@ describe Yt::Video, :partner do
|
|
422
422
|
end
|
423
423
|
end
|
424
424
|
|
425
|
+
describe 'views can be grouped by subscribed statuses' do
|
426
|
+
let(:range) { {since: ENV['YT_TEST_PARTNER_VIDEO_DATE']} }
|
427
|
+
let(:keys) { Yt::Collections::Reports::SUBSCRIBED_STATUSES.keys }
|
428
|
+
|
429
|
+
specify 'with the :by option set to subscribed statuses' do
|
430
|
+
views = video.views range.merge by: :subscribed_status
|
431
|
+
expect(views.keys - keys).to be_empty
|
432
|
+
expect(views.values).to all(be_an Integer)
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
425
436
|
describe 'uniques can be retrieved for a single US state' do
|
426
437
|
let(:state_code) { 'NY' }
|
427
438
|
let(:result) { video.uniques since: date, by: by, in: location }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.26.
|
4
|
+
version: 0.26.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claudio Baccigalupo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|