Zakupy w aplikacji to treści lub funkcje cyfrowe, które można sprzedawać w aplikacji mobilnej przez Google Play lub Apple App Store. Aplikacja nie musi więc w ich przypadku przetwarzać transakcji finansowych. Przykładami zakupów w aplikacji są treści dostępne w ramach subskrypcji lub specjalne dodatki do gier.
Analytics wyświetla zdarzenia związane z zakupami w aplikacji w raporcie Zakupy w aplikacji.
W przypadku aplikacji na Androida pakiet SDK Analytics jest zintegrowany z Google Play. W przypadku aplikacji na platformę Apple pakiet SDK integruje się z Apple App Store za pomocą interfejsów API StoreKit 1 i StoreKit 2 od Apple.
W większości przypadków pakiet SDK Analyticsautomatycznie zbiera zdarzenia związane z zakupami w aplikacji bez konieczności wywoływania interfejsu API w aplikacji. W iOS możesz też ręcznie rejestrować zdarzenia związane z zakupami w aplikacji w widoku WebView oprócz zdarzeń związanych z zakupami w aplikacji zbieranych automatycznie. Z tego przewodnika dowiesz się, jak skonfigurować projekt pod kątem automatycznego śledzenia, i poznasz kilka przypadków specjalnych, które wymagają wdrożenia kilku wierszy kodu.
Zanim zaczniesz
Skonfiguruj projekt Firebase i kod aplikacji zgodnie z opisem w artykule Wprowadzenie do Google Analytics.
Aplikacje na Androida
Upewnij się, że Twoja aplikacja korzysta z pakietu Analytics SDK w wersji 17.3.0 lub nowszej (albo Firebase Android BoM w wersji 25.2.0 lub nowszej).
Aplikacje na platformę Apple
Sprawdź, czy używasz najnowszego pakietu SDK:
W przypadku automatycznego śledzenia zakupów w aplikacji: upewnij się, że Twoja aplikacja korzysta z pakietu SDK Analytics w wersji 6.20.0 lub nowszej.
W przypadku ręcznego śledzenia zakupów w aplikacji: upewnij się, że Twoja aplikacja korzysta z pakietu SDK Analytics w wersji 12.5.0 lub nowszej.
Zapoznaj się z interfejsami API zakupów w aplikacji StoreKit 1 i StoreKit 2 firmy Apple, czytając dokumentację Apple.
Implementacja
W większości przypadków pakiet SDK Analytics automatycznie rejestruje zdarzenia związane z zakupami w aplikacji bez konieczności dodawania dodatkowego kodu.
Wdrażanie w aplikacjach na Androida
W przypadku aplikacji na Androida możesz mierzyć zdarzenia związane z zakupami w aplikacji od razu po połączeniu z Google Play.
Implementacja w aplikacjach na platformę Apple
W przypadku aplikacji na iOS, jeśli używasz StoreKit 1, pakiet SDK Analytics automatycznie rejestruje zdarzenia związane z zakupami w aplikacji. Jeśli używasz StoreKit 2, możesz rejestrować zweryfikowane zdarzenia związane z zakupami w aplikacji za pomocą poniższego fragmentu kodu.
Jeśli chcesz śledzić zakupy w aplikacji dokonane poza App Store, możesz też ręcznie rejestrować zdarzenia zakupu w aplikacji w widoku WebView. Pamiętaj, że pakiet SDK będzie nadal automatycznie rejestrować zakupy w aplikacji, gdy będzie to możliwe, i nie będzie usuwać duplikatów żadnych zdarzeń in_app_purchase zarejestrowanych ręcznie. Jeśli ręcznie śledzisz zakupy w aplikacji, upewnij się, że używasz pakietu SDK Analytics w wersji 12.5.0 lub nowszej.
Swift
Jeśli używasz StoreKit 1, pakiet SDK Analytics automatycznie rejestruje zdarzenia związane z zakupami w aplikacji.
Jeśli używasz StoreKit 2, użyj tego kodu, aby rejestrować zdarzenia związane z zakupami w aplikacji.
import StoreKit import FirebaseAnalytics // A user tapped a button to purchase an item. func userTappedPurchaseUpgradeButton() { let product = ... purchaseSomeProduct(product) } func purchaseSomeProduct(_ product: Product) { // Purchase a Product. This is mostly standard boilerplate StoreKit 2 // code, except for the Analytics.logTransaction() call. let result = try await product.purchase() switch result { case .success(let verification): let transaction = try checkVerified(verification) // Call this Firebase API to log the in-app purchase event. Analytics.logTransaction(transaction) await transaction.finish() ... }
Objective-C
Jeśli używasz StoreKit 1, pakiet SDK Analytics automatycznie rejestruje zdarzenia związane z zakupami w aplikacji.
StoreKit 2 jest dostępny tylko w języku Swift, więc implementacja w Objective-C nie jest obsługiwana.