Files
UnrealEngine/Engine/Plugins/Runtime/Analytics/Adjust/Source/AndroidAdjust/Private/AndroidAdjustProvider.h
2025-05-18 13:04:45 +08:00

65 lines
2.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Interfaces/IAnalyticsProvider.h"
class FAnalyticsProviderAdjust :
public IAnalyticsProvider
{
/** The AppToken given to you by Adjust dashboard */
FString AppToken;
/** Tracks whether we need to start the session or restart it */
bool bHasSessionStarted;
/** Cached user id */
FString UserId;
/** Event name to token mapping */
TMap<FString, FString> EventMap;
/** Singleton for analytics */
static TSharedPtr<IAnalyticsProvider> Provider;
FAnalyticsProviderAdjust(const FString inAppToken);
public:
static TSharedPtr<IAnalyticsProvider> Create(const FString inAppToken)
{
if (!Provider.IsValid())
{
Provider = TSharedPtr<IAnalyticsProvider>(new FAnalyticsProviderAdjust(inAppToken));
}
return Provider;
}
static void Destroy()
{
Provider.Reset();
}
virtual ~FAnalyticsProviderAdjust();
virtual bool StartSession(const TArray<FAnalyticsEventAttribute>& Attributes) override;
virtual void EndSession() override;
virtual void FlushEvents() override;
virtual void SetUserID(const FString& InUserID) override;
virtual FString GetUserID() const override;
virtual FString GetSessionID() const override;
virtual bool SetSessionID(const FString& InSessionID) override;
virtual void RecordEvent(const FString& EventName, const TArray<FAnalyticsEventAttribute>& Attributes) override;
virtual void RecordItemPurchase(const FString& ItemId, const FString& Currency, int PerItemCost, int ItemQuantity) override;
virtual void RecordCurrencyPurchase(const FString& GameCurrencyType, int GameCurrencyAmount, const FString& RealCurrencyType, float RealMoneyCost, const FString& PaymentProvider) override;
virtual void RecordCurrencyGiven(const FString& GameCurrencyType, int GameCurrencyAmount) override;
virtual void RecordError(const FString& Error, const TArray<FAnalyticsEventAttribute>& EventAttrs) override;
virtual void RecordProgress(const FString& ProgressType, const FString& ProgressHierarchy, const TArray<FAnalyticsEventAttribute>& EventAttrs) override;
virtual void SetDefaultEventAttributes(TArray<FAnalyticsEventAttribute>&& Attributes) override;
virtual TArray<FAnalyticsEventAttribute> GetDefaultEventAttributesSafe() const override;
virtual int32 GetDefaultEventAttributeCount() const override;
virtual FAnalyticsEventAttribute GetDefaultEventAttribute(int AttributeIndex) const override;
private:
TArray<FAnalyticsEventAttribute> DefaultEventAttributes;
};