Advertisement
snegir

allset branch

Aug 20th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. import Branch
  2. func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]? = nil) -> Bool {
  3.  
  4. let branch: Branch = Branch.getInstance()
  5.  
  6. branch.initSession(launchOptions: launchOptions, andRegisterDeepLinkHandler: { params, error in
  7. if error == nil {
  8.  
  9. branch.setRequestMetadataKey("$google_analytics_client_id", value: GAI.sharedInstance().defaultTracker.get(kGAIClientId) as NSString)
  10.  
  11. if let id = UserAccountEntity().userId {
  12. branch.setRequestMetadataKey("$google_analytics_user_id", value: NSNumber(value: id))
  13. }
  14.  
  15. if let cid = params?["cid"] as? String {
  16. TradeTracker.shared.identifyUser(branchId: cid)
  17. }
  18.  
  19. if let canonicalId = params?["$canonical_identifier"] as? String,
  20. let url = URL.init(string: canonicalId) {
  21.  
  22. DeeplinkCoordinator.shared.processDeeplinking(url)
  23. }
  24.  
  25. BranchTracker.shared.trackInstall()
  26.  
  27. let campaign = params?["~campaign"] as? String
  28. let channel = params?["~channel"] as? String
  29. let feature = params?["~feature"] as? String
  30.  
  31.  
  32. TradeTracker.shared.trackBranchInitWith(campaign, channel, feature)
  33.  
  34. }
  35. })
  36. }
  37.  
  38. class TradeTracker {
  39. func trackBranchInitWith( campaign: String?, channel: String?, _ feature: String?) {
  40. let params = [kGAICampaignName: feature ?? "n/a",
  41. kGAICampaignSource: channel ?? "n/a",
  42. kGAICampaignMedium: campaign ?? "n/a",
  43. kGAIDescription: "welcome_page"]
  44.  
  45. let sv = GAIDictionaryBuilder.createScreenView()
  46.  
  47. if let built = sv?.setAll(params).build() {
  48. tracker.send(built as! [AnyHashable : Any])
  49. }
  50.  
  51. var action = "open"
  52.  
  53. if firstOpen == false {
  54. firstOpen = true
  55. action = "first open"
  56. }
  57.  
  58. let dictionaryBuilder = GAIDictionaryBuilder.createEvent(withCategory: "CustomBranch",
  59. action: action,
  60. label: nil,
  61. value: nil)
  62.  
  63. if let build = dictionaryBuilder?.setAll(params).build() {
  64. tracker.send(build as! [AnyHashable : Any])
  65. }
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement