AnalyticsAPITests.swift 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. // MARK: - AppDelegate
  31. Analytics.handleEvents(forBackgroundURLSession: "session_id", completionHandler: {})
  32. #if compiler(>=5.5.2) && canImport(_Concurrency)
  33. if #available(iOS 13.0, macOS 10.15, macCatalyst 13.0, tvOS 13.0, watchOS 7.0, *) {
  34. Task {
  35. await Analytics.handleEvents(forBackgroundURLSession: "session_id")
  36. }
  37. }
  38. #endif // compiler(>=5.5.2) && canImport(_Concurrency)
  39. Analytics.handleOpen(URL(string: "https://google.com")!)
  40. Analytics.handleUserActivity(NSUserActivity(activityType: "editing"))
  41. // MARK: - Consent
  42. Analytics.setConsent([.analyticsStorage: .granted, .adStorage: .denied])
  43. // MARK: - OnDeviceConversion
  44. Analytics.initiateOnDeviceConversionMeasurement(emailAddress: "test@gmail.com")
  45. // MARK: - EventNames
  46. let _: [String] = [
  47. AnalyticsEventAdImpression,
  48. AnalyticsEventAddPaymentInfo,
  49. AnalyticsEventAddShippingInfo,
  50. AnalyticsEventAddToCart,
  51. AnalyticsEventAddToWishlist,
  52. AnalyticsEventAppOpen,
  53. AnalyticsEventBeginCheckout,
  54. AnalyticsEventCampaignDetails,
  55. AnalyticsEventEarnVirtualCurrency,
  56. AnalyticsEventGenerateLead,
  57. AnalyticsEventJoinGroup,
  58. AnalyticsEventLevelEnd,
  59. AnalyticsEventLevelStart,
  60. AnalyticsEventLevelUp,
  61. AnalyticsEventLogin,
  62. AnalyticsEventPostScore,
  63. AnalyticsEventPurchase,
  64. AnalyticsEventRefund,
  65. AnalyticsEventRemoveFromCart,
  66. AnalyticsEventScreenView,
  67. AnalyticsEventSearch,
  68. AnalyticsEventSelectContent,
  69. AnalyticsEventSelectItem,
  70. AnalyticsEventSelectPromotion,
  71. AnalyticsEventShare,
  72. AnalyticsEventSignUp,
  73. AnalyticsEventSpendVirtualCurrency,
  74. AnalyticsEventTutorialBegin,
  75. AnalyticsEventTutorialComplete,
  76. AnalyticsEventUnlockAchievement,
  77. AnalyticsEventViewCart,
  78. AnalyticsEventViewItem,
  79. AnalyticsEventViewItemList,
  80. AnalyticsEventViewPromotion,
  81. AnalyticsEventViewSearchResults,
  82. ]
  83. // MARK: - ParameterNames
  84. let _: [String] = [
  85. AnalyticsParameterAchievementID,
  86. AnalyticsParameterAdFormat,
  87. AnalyticsParameterAdNetworkClickID,
  88. AnalyticsParameterAdPlatform,
  89. AnalyticsParameterAdSource,
  90. AnalyticsParameterAdUnitName,
  91. AnalyticsParameterAffiliation,
  92. AnalyticsParameterCP1,
  93. AnalyticsParameterCampaign,
  94. AnalyticsParameterCampaignID,
  95. AnalyticsParameterCharacter,
  96. AnalyticsParameterContent,
  97. AnalyticsParameterContentType,
  98. AnalyticsParameterCoupon,
  99. AnalyticsParameterCreativeFormat,
  100. AnalyticsParameterCreativeName,
  101. AnalyticsParameterCreativeSlot,
  102. AnalyticsParameterCurrency,
  103. AnalyticsParameterDestination,
  104. AnalyticsParameterDiscount,
  105. AnalyticsParameterEndDate,
  106. AnalyticsParameterExtendSession,
  107. AnalyticsParameterFlightNumber,
  108. AnalyticsParameterGroupID,
  109. AnalyticsParameterIndex,
  110. AnalyticsParameterItemBrand,
  111. AnalyticsParameterItemCategory,
  112. AnalyticsParameterItemCategory2,
  113. AnalyticsParameterItemCategory3,
  114. AnalyticsParameterItemCategory4,
  115. AnalyticsParameterItemCategory5,
  116. AnalyticsParameterItemID,
  117. AnalyticsParameterItemListID,
  118. AnalyticsParameterItemListName,
  119. AnalyticsParameterItemName,
  120. AnalyticsParameterItemVariant,
  121. AnalyticsParameterItems,
  122. AnalyticsParameterLevel,
  123. AnalyticsParameterLevelName,
  124. AnalyticsParameterLocation,
  125. AnalyticsParameterLocationID,
  126. AnalyticsParameterMarketingTactic,
  127. AnalyticsParameterMedium,
  128. AnalyticsParameterMethod,
  129. AnalyticsParameterNumberOfNights,
  130. AnalyticsParameterNumberOfPassengers,
  131. AnalyticsParameterNumberOfRooms,
  132. AnalyticsParameterOrigin,
  133. AnalyticsParameterPaymentType,
  134. AnalyticsParameterPrice,
  135. AnalyticsParameterPromotionID,
  136. AnalyticsParameterPromotionName,
  137. AnalyticsParameterQuantity,
  138. AnalyticsParameterScore,
  139. AnalyticsParameterScreenClass,
  140. AnalyticsParameterScreenName,
  141. AnalyticsParameterSearchTerm,
  142. AnalyticsParameterShipping,
  143. AnalyticsParameterShippingTier,
  144. AnalyticsParameterSource,
  145. AnalyticsParameterSourcePlatform,
  146. AnalyticsParameterStartDate,
  147. AnalyticsParameterSuccess,
  148. AnalyticsParameterTax,
  149. AnalyticsParameterTerm,
  150. AnalyticsParameterTransactionID,
  151. AnalyticsParameterTravelClass,
  152. AnalyticsParameterValue,
  153. AnalyticsParameterVirtualCurrencyName,
  154. ]
  155. // MARK: - UserPropertyNames
  156. let _: [String] = [
  157. AnalyticsUserPropertyAllowAdPersonalizationSignals,
  158. AnalyticsUserPropertySignUpMethod,
  159. ]
  160. }
  161. }