AnalyticsAPITests.swift 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. //
  2. // Copyright 2022 Google LLC
  3. //
  4. // Licensed under the Apache License, Version 2.0 (the "License");
  5. // you may not use this file except in compliance with the License.
  6. // You may obtain a copy of the License at
  7. //
  8. // http://www.apache.org/licenses/LICENSE-2.0
  9. //
  10. // Unless required by applicable law or agreed to in writing, software
  11. // distributed under the License is distributed on an "AS IS" BASIS,
  12. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. // See the License for the specific language governing permissions and
  14. // limitations under the License.
  15. //
  16. // MARK: This file is used to evaluate the experience of using Analytics APIs in Swift.
  17. import FirebaseAnalytics
  18. import Foundation
  19. final class AnalyticsAPITests {
  20. func usage() {
  21. // MARK: - Analytics
  22. Analytics.logEvent("event_name", parameters: ["param": 1])
  23. Analytics.setUserProperty("value", forName: "name")
  24. Analytics.setUserID("user_id")
  25. Analytics.setAnalyticsCollectionEnabled(true)
  26. Analytics.setSessionTimeoutInterval(3600.0)
  27. let _: String? = Analytics.appInstanceID()
  28. Analytics.resetAnalyticsData()
  29. Analytics.setDefaultEventParameters(["default": 100])
  30. Analytics.sessionID { sessionID, error in }
  31. #if compiler(>=5.5.2) && canImport(_Concurrency)
  32. if #available(iOS 13.0, macOS 10.15, macCatalyst 13.0, tvOS 13.0, watchOS 7.0, *) {
  33. Task {
  34. let _: Int64? = try? await Analytics.sessionID()
  35. }
  36. }
  37. #endif // compiler(>=5.5.2) && canImport(_Concurrency)
  38. // MARK: - AppDelegate
  39. Analytics.handleEvents(forBackgroundURLSession: "session_id", completionHandler: {})
  40. #if compiler(>=5.5.2) && canImport(_Concurrency)
  41. if #available(iOS 13.0, macOS 10.15, macCatalyst 13.0, tvOS 13.0, watchOS 7.0, *) {
  42. Task {
  43. await Analytics.handleEvents(forBackgroundURLSession: "session_id")
  44. }
  45. }
  46. #endif // compiler(>=5.5.2) && canImport(_Concurrency)
  47. Analytics.handleOpen(URL(string: "https://google.com")!)
  48. Analytics.handleUserActivity(NSUserActivity(activityType: "editing"))
  49. // MARK: - Consent
  50. Analytics.setConsent([.analyticsStorage: .granted, .adStorage: .denied])
  51. // MARK: - OnDeviceConversion
  52. Analytics.initiateOnDeviceConversionMeasurement(emailAddress: "test@gmail.com")
  53. // MARK: - EventNames
  54. let _: [String] = [
  55. AnalyticsEventAdImpression,
  56. AnalyticsEventAddPaymentInfo,
  57. AnalyticsEventAddShippingInfo,
  58. AnalyticsEventAddToCart,
  59. AnalyticsEventAddToWishlist,
  60. AnalyticsEventAppOpen,
  61. AnalyticsEventBeginCheckout,
  62. AnalyticsEventCampaignDetails,
  63. AnalyticsEventEarnVirtualCurrency,
  64. AnalyticsEventGenerateLead,
  65. AnalyticsEventJoinGroup,
  66. AnalyticsEventLevelEnd,
  67. AnalyticsEventLevelStart,
  68. AnalyticsEventLevelUp,
  69. AnalyticsEventLogin,
  70. AnalyticsEventPostScore,
  71. AnalyticsEventPurchase,
  72. AnalyticsEventRefund,
  73. AnalyticsEventRemoveFromCart,
  74. AnalyticsEventScreenView,
  75. AnalyticsEventSearch,
  76. AnalyticsEventSelectContent,
  77. AnalyticsEventSelectItem,
  78. AnalyticsEventSelectPromotion,
  79. AnalyticsEventShare,
  80. AnalyticsEventSignUp,
  81. AnalyticsEventSpendVirtualCurrency,
  82. AnalyticsEventTutorialBegin,
  83. AnalyticsEventTutorialComplete,
  84. AnalyticsEventUnlockAchievement,
  85. AnalyticsEventViewCart,
  86. AnalyticsEventViewItem,
  87. AnalyticsEventViewItemList,
  88. AnalyticsEventViewPromotion,
  89. AnalyticsEventViewSearchResults,
  90. ]
  91. // MARK: - ParameterNames
  92. let _: [String] = [
  93. AnalyticsParameterAchievementID,
  94. AnalyticsParameterAdFormat,
  95. AnalyticsParameterAdNetworkClickID,
  96. AnalyticsParameterAdPlatform,
  97. AnalyticsParameterAdSource,
  98. AnalyticsParameterAdUnitName,
  99. AnalyticsParameterAffiliation,
  100. AnalyticsParameterCP1,
  101. AnalyticsParameterCampaign,
  102. AnalyticsParameterCampaignID,
  103. AnalyticsParameterCharacter,
  104. AnalyticsParameterContent,
  105. AnalyticsParameterContentType,
  106. AnalyticsParameterCoupon,
  107. AnalyticsParameterCreativeFormat,
  108. AnalyticsParameterCreativeName,
  109. AnalyticsParameterCreativeSlot,
  110. AnalyticsParameterCurrency,
  111. AnalyticsParameterDestination,
  112. AnalyticsParameterDiscount,
  113. AnalyticsParameterEndDate,
  114. AnalyticsParameterExtendSession,
  115. AnalyticsParameterFlightNumber,
  116. AnalyticsParameterGroupID,
  117. AnalyticsParameterIndex,
  118. AnalyticsParameterItemBrand,
  119. AnalyticsParameterItemCategory,
  120. AnalyticsParameterItemCategory2,
  121. AnalyticsParameterItemCategory3,
  122. AnalyticsParameterItemCategory4,
  123. AnalyticsParameterItemCategory5,
  124. AnalyticsParameterItemID,
  125. AnalyticsParameterItemListID,
  126. AnalyticsParameterItemListName,
  127. AnalyticsParameterItemName,
  128. AnalyticsParameterItemVariant,
  129. AnalyticsParameterItems,
  130. AnalyticsParameterLevel,
  131. AnalyticsParameterLevelName,
  132. AnalyticsParameterLocation,
  133. AnalyticsParameterLocationID,
  134. AnalyticsParameterMarketingTactic,
  135. AnalyticsParameterMedium,
  136. AnalyticsParameterMethod,
  137. AnalyticsParameterNumberOfNights,
  138. AnalyticsParameterNumberOfPassengers,
  139. AnalyticsParameterNumberOfRooms,
  140. AnalyticsParameterOrigin,
  141. AnalyticsParameterPaymentType,
  142. AnalyticsParameterPrice,
  143. AnalyticsParameterPromotionID,
  144. AnalyticsParameterPromotionName,
  145. AnalyticsParameterQuantity,
  146. AnalyticsParameterScore,
  147. AnalyticsParameterScreenClass,
  148. AnalyticsParameterScreenName,
  149. AnalyticsParameterSearchTerm,
  150. AnalyticsParameterShipping,
  151. AnalyticsParameterShippingTier,
  152. AnalyticsParameterSource,
  153. AnalyticsParameterSourcePlatform,
  154. AnalyticsParameterStartDate,
  155. AnalyticsParameterSuccess,
  156. AnalyticsParameterTax,
  157. AnalyticsParameterTerm,
  158. AnalyticsParameterTransactionID,
  159. AnalyticsParameterTravelClass,
  160. AnalyticsParameterValue,
  161. AnalyticsParameterVirtualCurrencyName,
  162. ]
  163. // MARK: - UserPropertyNames
  164. let _: [String] = [
  165. AnalyticsUserPropertyAllowAdPersonalizationSignals,
  166. AnalyticsUserPropertySignUpMethod,
  167. ]
  168. }
  169. }