GoogleReporter 1.6.1

GoogleReporter 1.6.1

Kristian Andersen 维护。



Carthage compatible CocoaPods compatible

Google Reporter

轻松将 Google Analytics 集成到您的 iOS、macOS 和 tvOS 应用中,无需下载任何 Google SDK。

请在此处阅读我创建 Google Reporter 的原因

重要通知:Google 已经正式 终止 通过 Google Analytics 进行移动分析跟踪的选项。新应用被要求使用 Firebase。现有应用将从 2019 年 10 月 31 日起停止收集数据。然而,可以通过设置新的跟踪属性作为网站而不是移动应用来使用此库(参见 #14)。

配置

与 Carthage 和 CocoaPods 兼容,或者只需在项目中放入 GoogleReporter.swift

在您的 AppDelegatedidFinishLaunchingWithOptions 或初始化应用的地方。您需要使用 UA-XXXXX-XX 跟踪器 ID 配置 GoogleReporter

import GoogleReporter

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        GoogleReporter.shared.configure(withTrackerId: "UA-XXXXX-XX")

        return true
    }
}

事件

您可以使用 GoogleReporter 上的 event() 方法跟踪任何您希望的事件。示例

func didCompleteSignUp() {
    GoogleReporter.shared.event("Authentication", action: "Sign Up Completed")
}

屏幕视图

在许多情况下,你可能想要跟踪用户导航到的“屏幕”。一个很自然的做法是在你的 ViewControllerviewDidAppear 中实现。你可以使用 GoogleReporterscreenView() 方法,它的工作方式与 event() 一样。

class BeerViewController: UIViewController {
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
	GoogleReporter.shared.screenView("Beer")
    }
}

会话

你可以通过在用户打开应用时调用 session(start: true) 以及在用户关闭应用时调用 session(start: false) 来跟踪用户的单个会话。以下是如何在你的 UIApplicationDelegate 中实现这一点的示例。

import GoogleReporter

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        GoogleReporter.shared.configure(withTrackerId: "UA-XXXXX-XX")

        return true
    }
    
    func applicationDidBecomeActive(_ application: UIApplication) {
        GoogleReporter.shared.session(start: true)
    }
    
    func applicationDidEnterBackground(_ application: UIApplication) {
        GoogleReporter.shared.session(start: false)
    }
}

技术说明

为了遵守 GDPR,Google Reporter 默认会要求 Google Analytics 对用户的 IP 地址进行匿名处理。如果你希望在这一点上做出选择,则需要将 anonymizeIP 设置为 false。

GoogleReporter 使用 native UserDefaults.standard 来存储一个独一无二的随机 UUID,以唯一标识用户/安装。清除或篡改UserDefaults可能会导致用户标识丢失,并且GoogleReporter将生成一个新的唯一标识。

GoogleReporter 类不是线程安全的。为了避免错误,请始终从相同的线程使用 GoogleReporter.shared 访问器。我建议使用主线程。网络调用仍然会在后台线程中发生。

路线图

我们计划增加更多功能,便于与 Measurement Protocol 进行交互。

  • macOS 兼容性
  • 会话跟踪;开始,结束,持续时间。
  • 屏幕视图的自定义变量跟踪

许可证

版权所有 2017 Kristian Andersen

特此授予任何人免费获得本软件及其相关文档文件(以下简称“软件”)的副本的权利,在不限于使用、复制、修改、合并、发布、分发、许可和/或出售软件副本的情况下,处理软件,并允许获得本软件的人进行上述操作,但须遵守以下条件:

以上版权声明和本许可声明应包含在软件的副本或大量部分中。

本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于针对其质量、适用于特定用途和版权侵犯的保证。在任何情况下,原作者或版权所有者都不应对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他原因,与软件、使用或其他相关事宜有关。