Hoje eu precisei adicionar o SDK do Google Analytics em um projeto ProMotion e encontrei um problema onde eu precisava estender o View Controller do Google ViewController ao invés da ProMotion Screen. Isso não iria acontecer.
Em vez disso, construí um pequeno auxiliar para adicionar alguns métodos às telas do ProMotions. Isso está longe de ser perfeito, mas é algo que precisamos adicionar rapidamente e faz o trabalho agora.
O ajudante
module ProMotion
module ScreenModule
def tracker
GAI.sharedInstance.defaultTracker
end
def build_event(category, action, label=nil, value=nil)
event = GAIDictionaryBuilder.createEventWithCategory category,
action: action,
label: label,
value: value
event.build
end
def send_ga_event(category, action, label=nil, value=nil)
event = build_event(category, action, label, value)
tracker.send event
end
def screenName=(name)
tracker.set "&cd", value: name
appView = GAIDictionaryBuilder.createAppView
tracker.send appView.build
end
end
end
Como usar
Oferece 2 funcionalidades básicas; enviar o nome da tela e eventos.
Para enviar o nome da tela basta definir a screenName
variável.
class HomeScreen < PM::Screen
...
def on_appear
self.screenName = "Home Screen"
end
...
end
e para enviar um evento de seu controlador de visualização, você pode usar o send_ga_event
método.
send_ga_event [category], [action], [label], [value]
send_ga_event "ui_action", "button_click", item.name, item.id
Como mencionei, isso é muito simplista, mas espero que tire alguém de uma encrenca se você tiver o mesmo problema.