Class: Spaceship::AnalyticsClient

Inherits:
Client
  • Object
show all
Defined in:
lib/analytics/client.rb

Overview

This class is used to upload Digital files (Images, Videos, JSON files) onto the du-itc service. Its implementation is tied to the tunes module (in particular using AppVersion instances)

Init and Login collapse

Class Method Details

.hostnameObject



9
10
11
# File 'lib/analytics/client.rb', line 9

def self.hostname
  "https://analytics.itunes.apple.com/"
end

Instance Method Details

#get_data(id, measure, start_time, end_time) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/analytics/client.rb', line 43

def get_data(id, measure, start_time, end_time)
  start_time = start_time.strftime('%Y-%m-%dT%H:%M:%SZ')
  end_time = end_time.strftime('%Y-%m-%dT%H:%M:%SZ')

  ids = [id]

  body = { 
    "adamId": ids, 
    "frequency": "DAY", 
    "measures": [measure],
    "group": nil, 
    "dimensionFilters": [], 
    "startTime": start_time, 
    "endTime": end_time 
  }

  response = request(:post) do |req|
    req.url "analytics/api/v1/data/time-series"
    req.body = body.to_json
    req.headers['Content-Type'] = 'application/json'
    req.headers['Cookie']         = cookie
    req.headers['Host']           = 'analytics.itunes.apple.com'
    req.headers['Origin']         = 'https://analytics.itunes.apple.com'
    req.headers['Referer']        = 'https://analytics.itunes.apple.com/'
    req.headers['X-Requested-By'] = 'analytics.itunes.apple.com'
  end

  response.body
end

#get_iap(id, start_time = Date.today - 30.day, end_time = Date.today) ⇒ Object



23
24
25
26
# File 'lib/analytics/client.rb', line 23

def get_iap(id, start_time = Date.today - 30.day, end_time = Date.today)
  measure = 'iap'
  get_data(id, measure, start_time, end_time)
end

#get_impressions_total(id, start_time = Date.today - 30.day, end_time = Date.today) ⇒ Object



38
39
40
41
# File 'lib/analytics/client.rb', line 38

def get_impressions_total(id, start_time = Date.today - 30.day, end_time = Date.today)
  measure = 'impressionsTotal'
  get_data(id, measure, start_time, end_time)
end

#get_page_view_count(id, start_time = Date.today - 30.day, end_time = Date.today) ⇒ Object



18
19
20
21
# File 'lib/analytics/client.rb', line 18

def get_page_view_count(id, start_time = Date.today - 30.day, end_time = Date.today)
  measure = 'pageViewCount'
  get_data(id, measure, start_time, end_time)
end

#get_paying_users(id, start_time = Date.today - 30.day, end_time = Date.today) ⇒ Object



33
34
35
36
# File 'lib/analytics/client.rb', line 33

def get_paying_users(id, start_time = Date.today - 30.day, end_time = Date.today)
  measure = 'payingUsers'
  get_data(id, measure, start_time, end_time)
end

#get_sales(id, start_time = Date.today - 30.day, end_time = Date.today) ⇒ Object



28
29
30
31
# File 'lib/analytics/client.rb', line 28

def get_sales(id, start_time = Date.today - 30.day, end_time = Date.today)
  measure = 'sales'
  get_data(id, measure, start_time, end_time)
end

#get_units(id, start_time = Date.today - 30.day, end_time = Date.today) ⇒ Object



13
14
15
16
# File 'lib/analytics/client.rb', line 13

def get_units(id, start_time = Date.today - 30.day, end_time = Date.today)
  measure = 'units'
  get_data(id, measure, start_time, end_time)
end

#send_login_request(user, password) ⇒ Object



73
74
75
# File 'lib/analytics/client.rb', line 73

def (user, password)
  (user, password)
end