[A] appsflyer, SDK facade init method

This commit is contained in:
2024-08-07 00:28:22 +08:00
parent d2f1da88f1
commit 90d63db9e6
160 changed files with 9440 additions and 283 deletions

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 24f74a5ce323e46b18844745b46512d0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 71a9789e010f243d7b97daac78d2b293
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 0
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
iPhone: iOS
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e58fa3e2f090c45cea2c0922ed61def5
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 039d0b0d271254f15a13942675dc67cc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,26 +0,0 @@
//
// AppsFlyerConsent.h
// AppsFlyerLib
//
// Created by Veronica Belyakov on 14/01/2024.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface AppsFlyerConsent : NSObject <NSCoding>
@property (nonatomic, readonly, assign) BOOL isUserSubjectToGDPR;
@property (nonatomic, readonly, assign) BOOL hasConsentForDataUsage;
@property (nonatomic, readonly, assign) BOOL hasConsentForAdsPersonalization;
- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)new NS_UNAVAILABLE;
- (instancetype)initForGDPRUserWithHasConsentForDataUsage:(BOOL)hasConsentForDataUsage
hasConsentForAdsPersonalization:(BOOL)hasConsentForAdsPersonalization NS_DESIGNATED_INITIALIZER;
- (instancetype)initNonGDPRUser NS_DESIGNATED_INITIALIZER;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: c09b45bd774d34ab89aa93eac38d27c4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,49 +0,0 @@
//
// CrossPromotionHelper.h
// AppsFlyerLib
//
// Created by Gil Meroz on 27/01/2017.
//
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/**
AppsFlyer allows you to log and attribute installs originating
from cross promotion campaigns of your existing apps.
Afterwards, you can optimize on your cross-promotion traffic to get even better results.
*/
@interface AppsFlyerCrossPromotionHelper : NSObject
/**
To log an impression use the following API call.
Make sure to use the promoted App ID as it appears within the AppsFlyer dashboard.
@param appID Promoted App ID
@param campaign A campaign name
@param parameters Additional params like `@{@"af_sub1": @"val", @"custom_param": @"val2" }`
*/
+ (void)logCrossPromoteImpression:(nonnull NSString *)appID
campaign:(nullable NSString *)campaign
parameters:(nullable NSDictionary *)parameters;
/**
iOS allows you to utilize the StoreKit component to open
the App Store while remaining in the context of your app.
More details at https://support.appsflyer.com/hc/en-us/articles/115004481946-Cross-Promotion-Tracking#tracking-cross-promotion-impressions
@param appID Promoted App ID
@param campaign A campaign name
@param parameters Additional params like `@{@"af_sub1": @"val", @"custom_param": @"val2" }`
@param openStoreBlock Contains promoted `clickURL`
*/
+ (void)logAndOpenStore:(nonnull NSString *)appID
campaign:(nullable NSString *)campaign
parameters:(nullable NSDictionary *)parameters
openStore:(void (^)(NSURLSession *urlSession, NSURL *clickURL))openStoreBlock;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: bf55555e5b9c3496a885869be2c844eb
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,36 +0,0 @@
//
// AFSDKDeeplink.h
// AppsFlyerLib
//
// Created by Andrii Hahan on 20.08.2020.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
NS_SWIFT_NAME(DeepLink)
@interface AppsFlyerDeepLink : NSObject
- (nonnull instancetype)init NS_UNAVAILABLE;
+ (nonnull instancetype)new NS_UNAVAILABLE;
@property (readonly, nonnull) NSDictionary<NSString *, id> *clickEvent;
@property (readonly, nullable) NSString *deeplinkValue;
@property (readonly, nullable) NSString *matchType;
@property (readonly, nullable) NSString *clickHTTPReferrer;
@property (readonly, nullable) NSString *mediaSource;
@property (readonly, nullable) NSString *campaign;
@property (readonly, nullable) NSString *campaignId;
@property (readonly, nullable) NSString *afSub1;
@property (readonly, nullable) NSString *afSub2;
@property (readonly, nullable) NSString *afSub3;
@property (readonly, nullable) NSString *afSub4;
@property (readonly, nullable) NSString *afSub5;
@property (readonly) BOOL isDeferred;
- (NSString *)toString;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e0d45cc3c752141f1bf061d3aedd9dfd
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,29 +0,0 @@
//
// AFSDKDeeplinkResult.h
// AppsFlyerLib
//
// Created by Andrii Hahan on 20.08.2020.
//
#import <Foundation/Foundation.h>
@class AppsFlyerDeepLink;
typedef NS_CLOSED_ENUM(NSUInteger, AFSDKDeepLinkResultStatus) {
AFSDKDeepLinkResultStatusNotFound,
AFSDKDeepLinkResultStatusFound,
AFSDKDeepLinkResultStatusFailure,
} NS_SWIFT_NAME(DeepLinkResultStatus);
NS_SWIFT_NAME(DeepLinkResult)
@interface AppsFlyerDeepLinkResult : NSObject
- (nonnull instancetype)init NS_UNAVAILABLE;
+ (nonnull instancetype)new NS_UNAVAILABLE;
@property(readonly) AFSDKDeepLinkResultStatus status;
@property(readonly, nullable) AppsFlyerDeepLink *deepLink;
@property(readonly, nullable) NSError *error;
@end

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: eda62b6193fa44d52a1958478d80758f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,725 +0,0 @@
//
// AppsFlyerLib.h
// AppsFlyerLib
//
// AppsFlyer iOS SDK 6.13.1 (150)
// Copyright (c) 2012-2023 AppsFlyer Ltd. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <AppsFlyerLib/AppsFlyerCrossPromotionHelper.h>
#import <AppsFlyerLib/AppsFlyerShareInviteHelper.h>
#import <AppsFlyerLib/AppsFlyerDeepLinkResult.h>
#import <AppsFlyerLib/AppsFlyerDeepLink.h>
#import <AppsFlyerLib/AppsFlyerConsent.h>
NS_ASSUME_NONNULL_BEGIN
// In app event names constants
#define AFEventLevelAchieved @"af_level_achieved"
#define AFEventAddPaymentInfo @"af_add_payment_info"
#define AFEventAddToCart @"af_add_to_cart"
#define AFEventAddToWishlist @"af_add_to_wishlist"
#define AFEventCompleteRegistration @"af_complete_registration"
#define AFEventTutorial_completion @"af_tutorial_completion"
#define AFEventInitiatedCheckout @"af_initiated_checkout"
#define AFEventPurchase @"af_purchase"
#define AFEventRate @"af_rate"
#define AFEventSearch @"af_search"
#define AFEventSpentCredits @"af_spent_credits"
#define AFEventAchievementUnlocked @"af_achievement_unlocked"
#define AFEventContentView @"af_content_view"
#define AFEventListView @"af_list_view"
#define AFEventTravelBooking @"af_travel_booking"
#define AFEventShare @"af_share"
#define AFEventInvite @"af_invite"
#define AFEventLogin @"af_login"
#define AFEventReEngage @"af_re_engage"
#define AFEventUpdate @"af_update"
#define AFEventOpenedFromPushNotification @"af_opened_from_push_notification"
#define AFEventLocation @"af_location_coordinates"
#define AFEventCustomerSegment @"af_customer_segment"
#define AFEventSubscribe @"af_subscribe"
#define AFEventStartTrial @"af_start_trial"
#define AFEventAdClick @"af_ad_click"
#define AFEventAdView @"af_ad_view"
// In app event parameter names
#define AFEventParamContent @"af_content"
#define AFEventParamAchievementId @"af_achievement_id"
#define AFEventParamLevel @"af_level"
#define AFEventParamScore @"af_score"
#define AFEventParamSuccess @"af_success"
#define AFEventParamPrice @"af_price"
#define AFEventParamContentType @"af_content_type"
#define AFEventParamContentId @"af_content_id"
#define AFEventParamContentList @"af_content_list"
#define AFEventParamCurrency @"af_currency"
#define AFEventParamQuantity @"af_quantity"
#define AFEventParamRegistrationMethod @"af_registration_method"
#define AFEventParamPaymentInfoAvailable @"af_payment_info_available"
#define AFEventParamMaxRatingValue @"af_max_rating_value"
#define AFEventParamRatingValue @"af_rating_value"
#define AFEventParamSearchString @"af_search_string"
#define AFEventParamDateA @"af_date_a"
#define AFEventParamDateB @"af_date_b"
#define AFEventParamDestinationA @"af_destination_a"
#define AFEventParamDestinationB @"af_destination_b"
#define AFEventParamDescription @"af_description"
#define AFEventParamClass @"af_class"
#define AFEventParamEventStart @"af_event_start"
#define AFEventParamEventEnd @"af_event_end"
#define AFEventParamLat @"af_lat"
#define AFEventParamLong @"af_long"
#define AFEventParamCustomerUserId @"af_customer_user_id"
#define AFEventParamValidated @"af_validated"
#define AFEventParamRevenue @"af_revenue"
#define AFEventProjectedParamRevenue @"af_projected_revenue"
#define AFEventParamReceiptId @"af_receipt_id"
#define AFEventParamTutorialId @"af_tutorial_id"
#define AFEventParamVirtualCurrencyName @"af_virtual_currency_name"
#define AFEventParamDeepLink @"af_deep_link"
#define AFEventParamOldVersion @"af_old_version"
#define AFEventParamNewVersion @"af_new_version"
#define AFEventParamReviewText @"af_review_text"
#define AFEventParamCouponCode @"af_coupon_code"
#define AFEventParamOrderId @"af_order_id"
#define AFEventParam1 @"af_param_1"
#define AFEventParam2 @"af_param_2"
#define AFEventParam3 @"af_param_3"
#define AFEventParam4 @"af_param_4"
#define AFEventParam5 @"af_param_5"
#define AFEventParam6 @"af_param_6"
#define AFEventParam7 @"af_param_7"
#define AFEventParam8 @"af_param_8"
#define AFEventParam9 @"af_param_9"
#define AFEventParam10 @"af_param_10"
#define AFEventParamTouch @"af_touch_obj"
#define AFEventParamDepartingDepartureDate @"af_departing_departure_date"
#define AFEventParamReturningDepartureDate @"af_returning_departure_date"
#define AFEventParamDestinationList @"af_destination_list" //array of string
#define AFEventParamCity @"af_city"
#define AFEventParamRegion @"af_region"
#define AFEventParamCountry @"af_country"
#define AFEventParamDepartingArrivalDate @"af_departing_arrival_date"
#define AFEventParamReturningArrivalDate @"af_returning_arrival_date"
#define AFEventParamSuggestedDestinations @"af_suggested_destinations" //array of string
#define AFEventParamTravelStart @"af_travel_start"
#define AFEventParamTravelEnd @"af_travel_end"
#define AFEventParamNumAdults @"af_num_adults"
#define AFEventParamNumChildren @"af_num_children"
#define AFEventParamNumInfants @"af_num_infants"
#define AFEventParamSuggestedHotels @"af_suggested_hotels" //array of string
#define AFEventParamUserScore @"af_user_score"
#define AFEventParamHotelScore @"af_hotel_score"
#define AFEventParamPurchaseCurrency @"af_purchase_currency"
#define AFEventParamPreferredStarRatings @"af_preferred_star_ratings" //array of int (basically a tuple (min,max) but we'll use array of int and instruct the developer to use two values)
#define AFEventParamPreferredPriceRange @"af_preferred_price_range" //array of int (basically a tuple (min,max) but we'll use array of int and instruct the developer to use two values)
#define AFEventParamPreferredNeighborhoods @"af_preferred_neighborhoods" //array of string
#define AFEventParamPreferredNumStops @"af_preferred_num_stops"
#define AFEventParamAdRevenueAdType @"af_adrev_ad_type"
#define AFEventParamAdRevenueNetworkName @"af_adrev_network_name"
#define AFEventParamAdRevenuePlacementId @"af_adrev_placement_id"
#define AFEventParamAdRevenueAdSize @"af_adrev_ad_size"
#define AFEventParamAdRevenueMediatedNetworkName @"af_adrev_mediated_network_name"
/// Mail hashing type
typedef enum {
/// None
EmailCryptTypeNone = 0,
/// SHA256
EmailCryptTypeSHA256 = 3
} EmailCryptType;
typedef NS_CLOSED_ENUM(NSInteger, AFSDKPlugin) {
AFSDKPluginIOSNative,
AFSDKPluginUnity,
AFSDKPluginFlutter,
AFSDKPluginReactNative,
AFSDKPluginAdobeAir,
AFSDKPluginAdobeMobile,
AFSDKPluginCocos2dx,
AFSDKPluginCordova,
AFSDKPluginMparticle,
AFSDKPluginNativeScript,
AFSDKPluginExpo,
AFSDKPluginUnreal,
AFSDKPluginXamarin,
AFSDKPluginCapacitor,
AFSDKPluginSegment,
AFSDKPluginAdobeSwiftAEP
} NS_SWIFT_NAME(Plugin);
NS_SWIFT_NAME(DeepLinkDelegate)
@protocol AppsFlyerDeepLinkDelegate <NSObject>
@optional
- (void)didResolveDeepLink:(AppsFlyerDeepLinkResult *_Nonnull)result;
@end
/**
Conform and subscribe to this protocol to allow getting data about conversion and
install attribution
*/
@protocol AppsFlyerLibDelegate <NSObject>
/**
`conversionInfo` contains information about install.
Organic/non-organic, etc.
@param conversionInfo May contain <code>null</code> values for some keys. Please handle this case.
*/
- (void)onConversionDataSuccess:(NSDictionary *)conversionInfo;
/**
Any errors that occurred during the conversion request.
*/
- (void)onConversionDataFail:(NSError *)error;
@optional
/**
`attributionData` contains information about OneLink, deeplink.
*/
- (void)onAppOpenAttribution:(NSDictionary *)attributionData;
/**
Any errors that occurred during the attribution request.
*/
- (void)onAppOpenAttributionFailure:(NSError *)error;
/**
@abstract Sets the HTTP header fields of the ESP resolving to the given
dictionary.
@discussion This method replaces all header fields that may have
existed before this method ESP resolving call.
To keep default SDK behavior - return nil;
*/
- (NSDictionary <NSString *, NSString *> * _Nullable)allHTTPHeaderFieldsForResolveDeepLinkURL:(NSURL *)URL;
@end
/**
You can log installs, app updates, sessions and additional in-app events
(including in-app purchases, game levels, etc.)
to evaluate ROI and user engagement.
The iOS SDK is compatible with all iOS/tvOS devices with iOS version 7 and above.
@see [SDK Integration Validator](https://support.appsflyer.com/hc/en-us/articles/207032066-AppsFlyer-SDK-Integration-iOS)
for more information.
*/
@interface AppsFlyerLib : NSObject
/**
Gets the singleton instance of the AppsFlyerLib class, creating it if
necessary.
@return The singleton instance of AppsFlyerLib.
*/
+ (AppsFlyerLib *)shared;
- (void)setUpInteroperabilityObject:(id)object;
/**
In case you use your own user ID in your app, you can set this property to that ID.
Enables you to cross-reference your own unique ID with AppsFlyers unique ID and the other devices IDs
*/
@property(nonatomic, strong, nullable) NSString * customerUserID;
/**
In case you use custom data and you want to receive it in the raw reports.
@see [Setting additional custom data](https://support.appsflyer.com/hc/en-us/articles/207032066-AppsFlyer-SDK-Integration-iOS#setting-additional-custom-data) for more information.
*/
@property(nonatomic, strong, nullable, setter = setAdditionalData:) NSDictionary * customData;
/**
Use this property to set your AppsFlyer's dev key
*/
@property(nonatomic, strong) NSString * appsFlyerDevKey;
/**
Use this property to set your app's Apple ID(taken from the app's page on iTunes Connect)
*/
@property(nonatomic, strong) NSString * appleAppID;
#ifndef AFSDK_NO_IDFA
/**
AppsFlyer SDK collect Apple's `advertisingIdentifier` if the `AdSupport.framework` included in the SDK.
You can disable this behavior by setting the following property to YES
*/
@property(nonatomic) BOOL disableAdvertisingIdentifier;
@property(nonatomic, strong, readonly) NSString *advertisingIdentifier;
/**
Waits for request user authorization to access app-related data
*/
- (void)waitForATTUserAuthorizationWithTimeoutInterval:(NSTimeInterval)timeoutInterval
NS_SWIFT_NAME(waitForATTUserAuthorization(timeoutInterval:));
#endif
@property(nonatomic) BOOL disableSKAdNetwork;
/**
In case of in app purchase events, you can set the currency code your user has purchased with.
The currency code is a 3 letter code according to ISO standards
Objective-C:
<pre>
[[AppsFlyerLib shared] setCurrencyCode:@"USD"];
</pre>
Swift:
<pre>
AppsFlyerLib.shared().currencyCode = "USD"
</pre>
*/
@property(nonatomic, strong, nullable) NSString *currencyCode;
/**
Prints SDK messages to the console log. This property should only be used in `DEBUG` mode.
The default value is `NO`
*/
@property(nonatomic) BOOL isDebug;
/**
Set this flag to `YES`, to collect the current device name(e.g. "My iPhone"). Default value is `NO`
*/
@property(nonatomic) BOOL shouldCollectDeviceName;
/**
Set your `OneLink ID` from OneLink configuration. Used in User Invites to generate a OneLink.
*/
@property(nonatomic, strong, nullable, setter = setAppInviteOneLink:) NSString * appInviteOneLinkID;
/**
Opt-out logging for specific user
*/
@property(atomic) BOOL anonymizeUser;
/**
Opt-out for Apple Search Ads attributions
*/
@property(atomic) BOOL disableCollectASA;
/**
Disable Apple Ads Attribution API +[AAAtribution attributionTokenWithError:]
*/
@property(nonatomic) BOOL disableAppleAdsAttribution;
/**
AppsFlyer delegate. See `AppsFlyerLibDelegate`
*/
@property(weak, nonatomic) id<AppsFlyerLibDelegate> delegate;
@property(weak, nonatomic) id<AppsFlyerDeepLinkDelegate> deepLinkDelegate;
/**
In app purchase receipt validation Apple environment(production or sandbox). The default value is NO
*/
@property(nonatomic) BOOL useReceiptValidationSandbox;
/**
Set this flag to test uninstall on Apple environment(production or sandbox). The default value is NO
*/
@property(nonatomic) BOOL useUninstallSandbox;
/**
For advertisers who wrap OneLink within another Universal Link.
An advertiser will be able to deeplink from a OneLink wrapped within another Universal Link and also log this retargeting conversion.
Objective-C:
<pre>
[[AppsFlyerLib shared] setResolveDeepLinkURLs:@[@"domain.com", @"subdomain.domain.com"]];
</pre>
*/
@property(nonatomic, nullable, copy) NSArray<NSString *> *resolveDeepLinkURLs;
/**
For advertisers who use vanity OneLinks.
Objective-C:
<pre>
[[AppsFlyerLib shared] oneLinkCustomDomains:@[@"domain.com", @"subdomain.domain.com"]];
</pre>
*/
@property(nonatomic, nullable, copy) NSArray<NSString *> *oneLinkCustomDomains;
/*
* Set phone number for each `start` event. `phoneNumber` will be sent as SHA256 string
*/
@property(nonatomic, nullable, copy) NSString *phoneNumber;
- (NSString *)phoneNumber UNAVAILABLE_ATTRIBUTE;
/**
To disable app's vendor identifier(IDFV), set disableIDFVCollection to true
*/
@property(nonatomic) BOOL disableIDFVCollection;
/**
Set the language of the device. The data will be displayed in Raw Data Reports
Objective-C:
<pre>
[[AppsFlyerLib shared] setCurrentDeviceLanguage:@"EN"]
</pre>
Swift:
<pre>
AppsFlyerLib.shared().currentDeviceLanguage("EN")
</pre>
*/
@property(nonatomic, nullable, copy) NSString *currentDeviceLanguage;
/**
Internal API. Please don't use.
*/
- (void)setPluginInfoWith:(AFSDKPlugin)plugin
pluginVersion:(NSString *)version
additionalParams:(NSDictionary * _Nullable)additionalParams
NS_SWIFT_NAME(setPluginInfo(plugin:version:additionalParams:));
/**
Enable the collection of Facebook Deferred AppLinks
Requires Facebook SDK and Facebook app on target/client device.
This API must be invoked prior to initializing the AppsFlyer SDK in order to function properly.
Objective-C:
<pre>
[[AppsFlyerLib shared] enableFacebookDeferredApplinksWithClass:[FBSDKAppLinkUtility class]]
</pre>
Swift:
<pre>
AppsFlyerLib.shared().enableFacebookDeferredApplinks(with: FBSDKAppLinkUtility.self)
</pre>
@param facebookAppLinkUtilityClass requeries method call `[FBSDKAppLinkUtility class]` as param.
*/
- (void)enableFacebookDeferredApplinksWithClass:(Class _Nullable)facebookAppLinkUtilityClass;
/**
Use this to send the user's emails
@param userEmails The list of strings that hold mails
@param type Hash algoritm
*/
- (void)setUserEmails:(NSArray<NSString *> * _Nullable)userEmails withCryptType:(EmailCryptType)type;
/**
Start SDK session
Add the following method at the `applicationDidBecomeActive` in AppDelegate class
*/
- (void)start;
- (void)startWithCompletionHandler:(void (^ _Nullable)(NSDictionary<NSString *, id> * _Nullable dictionary, NSError * _Nullable error))completionHandler;
/**
Use this method to log an events with multiple values. See AppsFlyer's documentation for details.
Objective-C:
<pre>
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{AFEventParamRevenue : @200,
AFEventParamCurrency : @"USD",
AFEventParamQuantity : @2,
AFEventParamContentId: @"092",
AFEventParamReceiptId: @"9277"}];
</pre>
Swift:
<pre>
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [AFEventParamRevenue : "1200",
AFEventParamContent : "shoes",
AFEventParamContentId: "123"])
</pre>
@param eventName Contains name of event that could be provided from predefined constants in `AppsFlyerLib.h`
@param values Contains dictionary of values for handling by backend
*/
- (void)logEvent:(NSString *)eventName withValues:(NSDictionary * _Nullable)values;
- (void)logEventWithEventName:(NSString *)eventName
eventValues:(NSDictionary<NSString * , id> * _Nullable)eventValues
completionHandler:(void (^ _Nullable)(NSDictionary<NSString *, id> * _Nullable dictionary, NSError * _Nullable error))completionHandler
NS_SWIFT_NAME(logEvent(name:values:completionHandler:));
/**
To log and validate in app purchases you can call this method from the completeTransaction: method on
your `SKPaymentTransactionObserver`.
@param productIdentifier The product identifier
@param price The product price
@param currency The product currency
@param transactionId The purchase transaction Id
@param params The additional param, which you want to receive it in the raw reports
@param successBlock The success callback
@param failedBlock The failure callback
*/
- (void)validateAndLogInAppPurchase:(NSString * _Nullable)productIdentifier
price:(NSString * _Nullable)price
currency:(NSString * _Nullable)currency
transactionId:(NSString * _Nullable)transactionId
additionalParameters:(NSDictionary * _Nullable)params
success:(void (^ _Nullable)(NSDictionary * response))successBlock
failure:(void (^ _Nullable)(NSError * _Nullable error, id _Nullable reponse))failedBlock NS_AVAILABLE(10_7, 7_0);
/**
To log location for geo-fencing. Does the same as code below.
<pre>
AppsFlyerLib.shared().logEvent(AFEventLocation, withValues: [AFEventParamLong:longitude, AFEventParamLat:latitude])
</pre>
@param longitude The location longitude
@param latitude The location latitude
*/
- (void)logLocation:(double)longitude latitude:(double)latitude NS_SWIFT_NAME(logLocation(longitude:latitude:));
/**
This method returns AppsFlyer's internal id(unique for your app)
@return Internal AppsFlyer Id
*/
- (NSString *)getAppsFlyerUID;
/**
In case you want to log deep linking. Does the same as `-handleOpenURL:sourceApplication:withAnnotation`.
@warning Preferred to use `-handleOpenURL:sourceApplication:withAnnotation`.
@param url The URL that was passed to your AppDelegate.
@param sourceApplication The sourceApplication that passed to your AppDelegate.
*/
- (void)handleOpenURL:(NSURL * _Nullable)url sourceApplication:(NSString * _Nullable)sourceApplication API_UNAVAILABLE(macos);
/**
In case you want to log deep linking.
Call this method from inside your AppDelegate `-application:openURL:sourceApplication:annotation:`
@param url The URL that was passed to your AppDelegate.
@param sourceApplication The sourceApplication that passed to your AppDelegate.
@param annotation The annotation that passed to your app delegate.
*/
- (void)handleOpenURL:(NSURL * _Nullable)url
sourceApplication:(NSString * _Nullable)sourceApplication
withAnnotation:(id _Nullable)annotation API_UNAVAILABLE(macos);
/**
Call this method from inside of your AppDelegate `-application:openURL:options:` method.
This method is functionally the same as calling the AppsFlyer method
`-handleOpenURL:sourceApplication:withAnnotation`.
@param url The URL that was passed to your app delegate
@param options The options dictionary that was passed to your AppDelegate.
*/
- (void)handleOpenUrl:(NSURL * _Nullable)url options:(NSDictionary * _Nullable)options API_UNAVAILABLE(macos);
/**
Allow AppsFlyer to handle restoration from an NSUserActivity.
Use this method to log deep links with OneLink.
@param userActivity The NSUserActivity that caused the app to be opened.
*/
- (BOOL)continueUserActivity:(NSUserActivity * _Nullable)userActivity
restorationHandler:(void (^ _Nullable)(NSArray * _Nullable))restorationHandler NS_AVAILABLE_IOS(9_0) API_UNAVAILABLE(macos);
/**
Enable AppsFlyer to handle a push notification.
@see [Learn more here](https://support.appsflyer.com/hc/en-us/articles/207364076-Measuring-Push-Notification-Re-Engagement-Campaigns)
@warning To make it work - set data, related to AppsFlyer under key @"af".
@param pushPayload The `userInfo` from received remote notification. One of root keys should be @"af".
*/
- (void)handlePushNotification:(NSDictionary * _Nullable)pushPayload;
/**
Register uninstall - you should register for remote notification and provide AppsFlyer the push device token.
@param deviceToken The `deviceToken` from `-application:didRegisterForRemoteNotificationsWithDeviceToken:`
*/
- (void)registerUninstall:(NSData * _Nullable)deviceToken;
/**
Get SDK version.
@return The AppsFlyer SDK version info.
*/
- (NSString *)getSDKVersion;
/**
This is for internal use.
*/
- (void)remoteDebuggingCallWithData:(NSString *)data;
/**
This is for internal use.
*/
- (void)remoteDebuggingCallV2WithData:(NSString *)dataAsString;
/**
Used to force the trigger `onAppOpenAttribution` delegate.
Notice, re-engagement, session and launch won't be counted.
Only for OneLink/UniversalLink/Deeplink resolving.
@param URL The param to resolve into -[AppsFlyerLibDelegate onAppOpenAttribution:]
*/
- (void)performOnAppAttributionWithURL:(NSURL * _Nullable)URL;
/**
@brief This property accepts a string value representing the host name for all endpoints.
Can be used to Zero rate your applications data usage. Contact your CSM for more information.
@warning To use `default` SDK endpoint set value to `nil`.
Objective-C:
<pre>
[[AppsFlyerLib shared] setHost:@"example.com"];
</pre>
Swift:
<pre>
AppsFlyerLib.shared().host = "example.com"
</pre>
*/
@property(nonatomic, strong, readonly) NSString *host;
/**
* This function set the host name and prefix host name for all the endpoints
**/
- (void)setHost:(NSString *)host withHostPrefix:(NSString *)hostPrefix;
/**
* This property accepts a string value representing the prefix host name for all endpoints.
* for example "test" prefix with default host name will have the address "host.appsflyer.com"
*/
@property(nonatomic, strong, readonly) NSString *hostPrefix;
/**
This property is responsible for timeout between sessions in seconds.
Default value is 5 seconds.
*/
@property(atomic) NSUInteger minTimeBetweenSessions;
/**
API to shut down all SDK activities.
@warning This will disable all requests from AppsFlyer SDK.
*/
@property(atomic) BOOL isStopped;
/**
API to set manually Facebook deferred app link
*/
@property(nonatomic, nullable, copy) NSURL *facebookDeferredAppLink;
/**
Block an events from being shared with ad networks and other 3rd party integrations
Must only include letters/digits or underscore, maximum length: 45
*/
@property(nonatomic, nullable, copy) NSArray<NSString *> *sharingFilter DEPRECATED_MSG_ATTRIBUTE("starting SDK version 6.4.0, please use `setSharingFilterForPartners:`");
@property(nonatomic) NSUInteger deepLinkTimeout;
/**
Block an events from being shared with any partner
This method overwrite -[AppsFlyerLib setSharingFilter:]
*/
- (void)setSharingFilterForAllPartners DEPRECATED_MSG_ATTRIBUTE("starting SDK version 6.4.0, please use `setSharingFilterForPartners:`");
/**
Block an events from being shared with ad networks and other 3rd party integrations
Must only include letters/digits or underscore, maximum length: 45
The sharing filter is cleared in case if `nil` or empty array passed as a parameter.
"all" keyword sets sharing filter for ALL partners, it is case insencitive and has highest priority
if passed along with another values. For example, if ["all", "examplePartner1_int", "examplePartner2_int" ] passed,
the sharing filter will be set for ALL partners.
*/
- (void)setSharingFilterForPartners:(NSArray<NSString *> * _Nullable)sharingFilter;
/**
Sets or updates the user consent data related to GDPR and DMA regulations for advertising and data usage
purposes within the application. This method must be invoked with the user's current consent status each
time the app starts or whenever there is a change in the user's consent preferences.
Note that this method does not persist the consent data across app sessions; it only applies for the
duration of the current app session. If you wish to stop providing the consent data, you should
cease calling this method.
@param consent an instance of AppsFlyerConsent that encapsulates the user's consent information.
*/
- (void)setConsentData:(AppsFlyerConsent *)consent;
/**
Enable the SDK to collect and send TCF data
@param shouldCollectConsentData indicates if the TCF data collection is enabled.
*/
- (void)enableTCFDataCollection:(BOOL)shouldCollectConsentData;
/**
Validate if URL contains certain string and append quiery
parameters to deeplink URL. In case if URL does not contain user-defined string,
parameters are not appended to the url.
@param containsString string to check in URL.
@param parameters NSDictionary, which containins parameters to append to the deeplink url after it passed validation.
*/
- (void)appendParametersToDeepLinkingURLWithString:(NSString *)containsString
parameters:(NSDictionary<NSString *, NSString*> *)parameters
NS_SWIFT_NAME(appendParametersToDeeplinkURL(contains:parameters:));
/**
Adds array of keys, which are used to compose key path
to resolve deeplink from push notification payload `userInfo`.
@param deepLinkPath an array of strings which contains keys to search for deeplink in payload.
*/
- (void)addPushNotificationDeepLinkPath:(NSArray<NSString *> *)deepLinkPath;
/**
* Allows sending custom data for partner integration purposes.
*
* @param partnerId ID of the partner (usually has "_int" suffix)
* @param partnerInfo customer data, depends on the integration nature with specific partner
*/
- (void)setPartnerDataWithPartnerId:(NSString * _Nullable)partnerId partnerInfo:(NSDictionary<NSString *, id> * _Nullable)partnerInfo
NS_SWIFT_NAME(setPartnerData(partnerId:partnerInfo:));
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 291ed9541ce9c486c9c75bbad8860f24
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,52 +0,0 @@
//
// LinkGenerator.h
// AppsFlyerLib
//
// Created by Gil Meroz on 27/01/2017.
//
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/**
Payload container for the `generateInviteUrlWithLinkGenerator:completionHandler:` from `AppsFlyerShareInviteHelper`
*/
@interface AppsFlyerLinkGenerator : NSObject
/// Instance initialization is not allowed. Use generated instance
/// from `-[AppsFlyerShareInviteHelper generateInviteUrlWithLinkGenerator:completionHandler]`
- (instancetype)init NS_UNAVAILABLE;
/// Instance initialization is not allowed. Use generated instance
/// from `-[AppsFlyerShareInviteHelper generateInviteUrlWithLinkGenerator:completionHandler]`
+ (instancetype)new NS_UNAVAILABLE;
@property(nonatomic, nullable, copy) NSString *brandDomain;
/// The channel through which the invite was sent (e.g. Facebook/Gmail/etc.). Usage: Recommended
- (void)setChannel :(nonnull NSString *)channel;
/// ReferrerCustomerId setter
- (void)setReferrerCustomerId:(nonnull NSString *)referrerCustomerId;
/// A campaign name. Usage: Optional
- (void)setCampaign :(nonnull NSString *)campaign;
/// ReferrerUID setter
- (void)setReferrerUID :(nonnull NSString *)referrerUID;
/// Referrer name
- (void)setReferrerName :(nonnull NSString *)referrerName;
/// The URL to referrer user avatar. Usage: Optional
- (void)setReferrerImageURL :(nonnull NSString *)referrerImageURL;
/// AppleAppID
- (void)setAppleAppID :(nonnull NSString *)appleAppID;
/// Deeplink path
- (void)setDeeplinkPath :(nonnull NSString *)deeplinkPath;
/// Base deeplink path
- (void)setBaseDeeplink :(nonnull NSString *)baseDeeplink;
/// A single key value custom parameter. Usage: Optional
- (void)addParameterValue :(nonnull NSString *)value forKey:(NSString *)key;
/// Multiple key value custom parameters. Usage: Optional
- (void)addParameters :(nonnull NSDictionary *)parameters;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4376711020c034021be628d96e27fe92
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,35 +0,0 @@
//
// ShareInviteHelper.h
// AppsFlyerLib
//
// Created by Gil Meroz on 27/01/2017.
//
//
#import <Foundation/Foundation.h>
#import <AppsFlyerLib/AppsFlyerLinkGenerator.h>
/**
AppsFlyerShareInviteHelper
*/
@interface AppsFlyerShareInviteHelper : NSObject
NS_ASSUME_NONNULL_BEGIN
/**
* The AppsFlyerShareInviteHelper class builds the invite URL according to various setter methods
* which allow passing on additional information on the click.
* This information is available through `onConversionDataReceived:` when the user accepts the invite and installs the app.
* In addition, campaign and channel parameters are visible within the AppsFlyer Dashboard.
*/
+ (void)generateInviteUrlWithLinkGenerator:(AppsFlyerLinkGenerator *(^)(AppsFlyerLinkGenerator *generator))generatorCreator completionHandler:(void (^)(NSURL *_Nullable url))completionHandler;
/**
* It is recommended to generate an in-app event after the invite is sent to log the invites from the senders' perspective.
* This enables you to find the users that tend most to invite friends, and the media sources that get you these users.
*/
+ (void)logInvite:(nullable NSString *)channel parameters:(nullable NSDictionary *)parameters;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 087c9852e56814fa9a412e074054ca7a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: dfd1468ddca95407fa07c49865b60b9f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 14264eb2b60b8420ba8af99d078d68c9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,6 +0,0 @@
framework module AppsFlyerLib {
umbrella header "AppsFlyerLib.h"
export *
module * { export * }
}

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: ba5a852439d464fdc9cf4aa4d0975864
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 6119e68e5acfa48cbaf2ab374b5fbb92
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 0
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
iPhone: iOS
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: eaa004e2f90854b6b8202d82666bb6b3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,19 +0,0 @@
//
// TDKAppsFlyer.h
// TDKAppsFlyer
//
// Created by 曾伟 on 2024/3/18.
//
#import <Foundation/Foundation.h>
//! Project version number for TDKAppsFlyer.
FOUNDATION_EXPORT double TDKAppsFlyerVersionNumber;
//! Project version string for TDKAppsFlyer.
FOUNDATION_EXPORT const unsigned char TDKAppsFlyerVersionString[];
// In this header, you should import all the public headers of your framework using statements like
#import <TDKAppsFlyer/TDKAppsFlyerApi.h>

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 6d8212da1f6e74e16a48d45eea4110d3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,38 +0,0 @@
//
// TDKAppsFlyerApi.h
// TDKAppsFlyer
//
// Created by 曾伟 on 2024/3/18.
//
#import <Foundation/Foundation.h>
#import <TYSDKCoreKit/TYBaseResp.h>
NS_ASSUME_NONNULL_BEGIN
@interface TDKAppsFlyerApi : NSObject
/// 初始化AF
+ (void)registerAppsFlyer;
/// 设置userId
+ (void)setUserId:(NSString *)userId;
/// 上报数据
+ (void)logEventWithEventName:(nonnull NSString *)eventName parameters:(NSDictionary * _Nullable)values;
// 在start之前调用会将这个dic中的所有参数上报到AF报表中
+ (void)setDefaultEventParameters:(nullable NSDictionary<NSString *, id> *)parameters;
// 等待ATT的超时时间
+ (void)waitForATT:(NSInteger)timeoutInterval;
// 等待ATT的超时时间
+ (NSString *)getAppsFlyerDeviceId;
// 获取需要在XYSDK中使用的参数
+ (void)fetchAttributionParametersWithCompletion:(TYBaseRespBlock)completion;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1d655fc6605a24215bf1d96c30ee8248
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5f912aabd4772422d93751fb2897bdd3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 45dae032334e94ceeb2fa00dca8f7ea7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,6 +0,0 @@
framework module TDKAppsFlyer {
umbrella header "TDKAppsFlyer.h"
export *
module * { export * }
}

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 3af6e419c895a44a2b34afd3535942a3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: f6e4e623a66a7422ab2f2e12301fa92e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -4,6 +4,7 @@ using System.Threading.Tasks;
using asap.core;
using Newtonsoft.Json.Linq;
using UnityEngine;
using AppsFlyerSDK;
namespace tysdk
{
@@ -38,13 +39,19 @@ namespace tysdk
public void Init()
{
#if UNITY_ANDROID
//AppsFlyer.setIsDebug(true);
#if UNITY_IOS
AppsFlyer.initSDK("rSySeWtvKabfbPZE7Lmx7C","6505145935");
#elif UNITY_ANDROID
AppsFlyer.initSDK("rSySeWtvKabfbPZE7Lmx7C", null);
UnityBridgeFunc.InitSDK();
#endif
AppsFlyer.startSDK();
}
public void InitAfterLogin()
{
AppsFlyer.setCustomerUserId(_accountInfo.strUserId);
}

View File

@@ -2,7 +2,7 @@
"name": "tysdk",
"rootNamespace": "tysdk",
"references": [
"GUID:a4cfc1a18fa3a469b96d885db522f42e"
"GUID:2a37df438292d4903b4e5159c5de3bf9"
],
"includePlatforms": [],
"excludePlatforms": [],