Справочник по API
Список доступных методов для этого плагина описан ниже.
- API для Android, iOS и Windows
- API для Android и iOS
- stopSDK
- isSDKStopped
- getSdkVersion
- setIsDebug
- addPushNotificationDeepLinkPath
- setCustomerUserId
- setAppInviteOneLinkID
- setAdditionalData
- setResolveDeepLinkURLs
- setOneLinkCustomDomain
- setCurrencyCode
- setDeepLinkTimeout
- enableTCFDataCollection
- setConsentData
- recordLocation
- anonymizeUser
- getAppsFlyerId
- setMinTimeBetweenSessions
- setHost
- setUserEmails
- setPhoneNumber
- getConversionData
- attributeAndOpenStore
- logAdRevenue
- recordCrossPromoteImpression
- generateUserInviteLink
- setSharingFilterForAllPartners Устарело
- setSharingFilter Устарело
- setSharingFilterForPartners
- setPartnerData
- API только для Android
- updateServerUninstallToken
- setImeiData
- setAndroidIdData
- waitForCustomerUserId
- setCustomerIdAndStartSDK
- getOutOfStore
- setOutOfStore
- setCollectAndroidID
- setCollectIMEI
- setIsUpdate
- setPreinstallAttribution
- isPreInstalledApp
- handlePushNotifications
- getAttributionId
- validateAndSendInAppPurchase-beta
- validateAndSendInAppPurchase
- setCollectOaid
- setDisableAdvertisingIdentifiers
- setDisableNetworkData
- API только для iOS
- setDisableCollectAppleAdSupport
- handlePushNotifications(iOS)
- setShouldCollectDeviceName
- setDisableCollectIAd
- setUseReceiptValidationSandbox
- setUseUninstallSandbox
- validateAndSendInAppPurchase-beta-iOS
- validateAndSendInAppPurchase
- registerUninstall
- handleOpenUrl
- waitForATTUserAuthorizationWithTimeoutInterval
- disableSKAdNetwork
- setLanguage
- disableIDFVCollection
- IAppsFlyerConversionData
- IAppsFlyerUserInvite
- IAppsFlyerValidateReceipt
- IAppsFlyerValidateAndLog
- События
API для Android, iOS и Windows
initSDK
void initSDK(string devKey, string appID, MonoBehaviour gameObject)
Инициализируйте SDK AppsFlyer с помощью devKey и appID.
Ключ разработчика требуется для всех приложений, а идентификатор приложения — только для iOS.
Если ваше приложение предназначено только для Android, передайте значение null для идентификатора приложения.
parameter | type | description |
---|---|---|
dev_key | string | Ключ разработчика AppsFlyer, который доступен из вашего аккаунта AppsFlyer в разделе «Настройки приложения» на дэшборде. |
app_id | string | Apple ID вашего приложения. |
gameObject (необязательно) | MonoBehaviour | Игровой объект, содержащий интерфейс IAppsFlyerConversionData. |
Пример:
AppsFlyer.initSDK("dev_key", "app_id"); // without deeplinking
AppsFlyer.initSDK("dev_key", "app_id", this); // with deeplinking
Примечание. Вам необходимо реализовать SDK с диплинкингом только в том случае, если вы используете интерфейс IAppsFlyerConversionData
.
startSDK
void startSDK()
После вызова этого API запускается SDK, сеансы будут немедленно отправлены, и все переходы из фонового режима в активный будут записываться как сеанс.
Пример:
AppsFlyer.startSDK();
API для Android и iOS
stopSDK
void stopSDK(bool isSDKStopped)
В исключительных случаях может потребоваться полное отключение всех функций SDK для соблюдения норм законодательства и правил конфиденциальности. Для этого можно использовать API stopSDK. После вызова этого API пакет SDK завершит обмен данными с нашими серверами и перестанет функционировать.
Есть несколько различных сценариев, которые владелец приложения может применить для прекращения отслеживания пользователя. Настоятельно рекомендуется строго следовать инструкциям сценария, применимого для вашего приложения.
В любом случае SDK можно активировать повторно путем вызова того же API с передачей значения "false".
Важно:
Не вызывайте startSDK(), если для параметра stopSDK() установлено значение true.
Чтобы снова запустить функции SDK, используйте следующий API:
AppsFlyer.stopSDK(false);
Предупреждение
Используйте API stopSDK только в тех случаях, когда необходимо полностью отключить для данного пользователя функции SDK. Использование этого API СУЩЕСТВЕННО влияет на атрибуцию, сбор данных и механизм диплинкинга.
parameter | type | description |
---|---|---|
isSDKStopped | bool | True, если SDK остановлен (значение по умолчанию false). |
Пример:
AppsFlyer.stopSDK(true);
isSDKStopped
bool isSDKStopped()
Был ли API stopSDK (логическое значение) установлен в значение true
.
Пример:
if (!AppsFlyer.isSDKStopped())
{
}
getSdkVersion
string getSdkVersion()
Получает используемую в приложении версию SDK AppsFlyer.
Пример:
string version = AppsFlyer.getSdkVersion();
setIsDebug
void setIsDebug(bool shouldEnable)
Включает журналы отладки для SDK AppsFlyer.
Предупреждение
Значение true должно быть задано только в средах разработки и при отладке.
parameter | type | description |
---|---|---|
shouldEnable | bool | True, если включен режим отладки (по умолчанию false) |
Пример:
AppsFlyer.setIsDebug(true);
addPushNotificationDeepLinkPath
void addPushNotificationDeepLinkPath(params string[] paths)
Добавляет массив ключей, используемых для создания пути к параметру, чтобы выделить диплинк из полезной нагрузки push-уведомления.
parameter | type | description |
---|---|---|
paths | string[] | array of strings that represent the key path to the deeplink in the push notification payload |
Пример:
Пример использования
Базовая конфигурация:
AppsFlyer.addPushNotificationDeepLinkPath("af_push_link")
Этому вызову соответствует следующая структура полезной нагрузки:
{
"af_push_link": "https://yourdeeplink2.onelink.me"
}
ֿAdvanced configuration:
string[] paths = {"deeply", "nested", "deep_link"};
AppsFlyer.addPushNotificationDeepLinkPath(paths);
Этому вызову соответствует следующая структура полезной нагрузки:
{
"deeply": {
"nested": {
"deep_link": "https://yourdeeplink2.onelink.me"
}
}
}
setCustomerUserId
void setCustomerUserId(string id)
Установка собственного Custom ID позволяет установить связь между своим уникальным ID и ID пользователя в AppsFlyer, а также с ID других устройств. Этот идентификатор можно посмотреть в CSV-отчетах AppsFlyer, а также получить с помощью API постбэков для связывания с внутренними идентификаторами.
parameter | type | description |
---|---|---|
id | string | Собственный идентификатор пользователя |
Пример:
AppsFlyer.setCustomerUserId("custom_user_id");
setAppInviteOneLinkID
void setAppInviteOneLinkID(string oneLinkId)
Задает идентификатор OneLink, который используется для User-Invite-API.
Эта ссылка OneLink используется как базовая в ссылке, формируемой для приглашения пользователей.
parameter | type | description |
---|---|---|
oneLinkId | string | Идентификатор OneLink для атрибуции приглашений пользователей |
Пример:
AppsFlyer.setAppInviteOneLinkID("abcd");
setAdditionalData
void setAdditionalData(Dictionary<string, string> customData)
API setAdditionalData необходим для интеграции на уровне SDK с несколькими внешними партнерским платформами, включая Segment, Adobe и Urban Airship. Используйте данный API только в тех случаях, когда в руководстве по интеграции платформы специально указана необходимость использования API setAdditionalData.
parameter | type | description |
---|---|---|
customData | Dictionary<string, string> | дополнительные данные |
Пример:
Dictionary<string, string> customData = new Dictionary<string, string>();
customData.Add("custom1", "someData");
AppsFlyer.setAdditionalData(customData);
setResolveDeepLinkURLs
void setResolveDeepLinkURLs(params string[] urls)
Если используются ссылки OneLink, которые поддерживают ссылки для приложений Android, и при этом упаковываются в сторонние универсальные ссылки, то для уведомления SDK AppsFlyer о том, какие домены CLICK, вызывающие приложение, нужно разрешить и использовать для извлечения базовой ссылки OneLink, можно применять API setResolveDeepLinkURLs. Это позволит поддерживать диплинкинг и атрибуцию при упаковке ссылки OneLink в стороннюю универсальную ссылку. Этот API нужно обязательно вызвать перед инициализацией SDK.
parameter | type | description |
---|---|---|
urls | params string[] | массив ссылок |
Пример:
AppsFlyer.setResolveDeepLinkURLs("test.com", "test2.ca");
setOneLinkCustomDomain
void setOneLinkCustomDomain(params string[] domains)
Рекламодатели могут использовать этот метод для настройки уникальных доменов OneLink.
parameter | type | description |
---|---|---|
domains | params string[] | массив собственных доменов |
Пример:
AppsFlyer.setOneLinkCustomDomain("test.domain", "test2.domain");
setCurrencyCode
void setCurrencyCode(string currencyCode)
Установка кода местной валюты пользователя для покупок в приложении.
Код валюты должен быть кодом из трех символов по стандарту ISO 4217. Значение по умолчанию — USD.
Вы можете настроить код валюты для всех событий, вызвав следующий метод.
parameter | type | description |
---|---|---|
currencyCode | string | Код валюты по ISO 4217 из трех символов. Значение по умолчанию — USD. |
Пример:
AppsFlyer.setCurrencyCode("GBP");
setDeepLinkTimeout
void setDeepLinkTimeout(long deepLinkTimeout)
Setting the deepLink timeout value that should be used for DDL.
If you want to use it, set it before the DDL setting.
parameter | type | description |
---|---|---|
deepLinkTimeout | long | in milliseconds |
Пример:
AppsFlyer.setDeepLinkTimeout(2000);
enableTCFDataCollection
void enableTCFDataCollection(bool shouldCollectTcfData)
Calling enableTCFDataCollection(true) will enable collecting and sending any TCF related data.
Calling enableTCFDataCollection(false) will disable the collection of TCF related data and from sending it.
parameter | type | description |
---|---|---|
shouldCollectTcfData | bool | true to enable data collection |
Пример:
AppsFlyer.enableTCFDataCollection(true);;
setConsentData
void setConsentData(AppsFlyerConsent appsFlyerConsent)
Sets or updates the user consent data related to GDPR and DMA regulations for advertising and data usage purposes within the application.
parameter | type | description |
---|---|---|
appsFlyerConsent | AppsFlyerConsent | Instance of AppsFlyerConsent class |
Пример:
AppsFlyerConsent consent = AppsFlyerConsent.ForGDPRUser(false, false);
AppsFlyer.setConsentData(consent);
recordLocation
void recordLocation(double latitude, double longitude)
Регистрация местоположения пользователя вручную.
parameter | type | description |
---|---|---|
latitude | double | широта нахождения пользователя |
longitude | double | долгота нахождения пользователя |
Пример:
AppsFlyer.recordLocation(40.7128, 74.0060);
anonymizeUser
void anonymizeUser(bool shouldAnonymizeUser)
В AppsFlyer предусмотрен метод анонимизации идентификаторов определенных пользователей в аналитике AppsFlyer. Этот метод соответствует последним требованиям по защите личной информации и политикам Facebook в отношении обработки данных и конфиденциальности. Значение по умолчанию — NO (НЕТ), то есть по умолчанию анонимизация не выполняется.
Для реализации явной анонимизации установок, событий и сеансов пользователя используйте этот API во время инициализации SDK.
Если нужно отменить анонимизацию, снова вызовите anonymizeUser и установите значение false.
Предупреждение
Анонимизация пользователей СУЩЕСТВЕННО влияет на данные атрибуции.
Используйте этот параметр ТОЛЬКО для тех регионов, где сбор информации о пользователях запрещен законом.
parameter | type | description |
---|---|---|
shouldAnonymizeUser | bool | true для выполнения анонимизации |
Пример:
AppsFlyer.anonymizeUser(true);
getAppsFlyerId
string getAppsFlyerId()
Для каждой новой установки приложения AppsFlyer создает уникальный ID устройства. Для получения уникального ID из AppsFlyer используйте следующий API.
Пример:
string uid = AppsFlyer.getAppsFlyerId();
setMinTimeBetweenSessions
void setMinTimeBetweenSessions(int seconds)
По умолчанию 2 сессии учитываются как отдельные, если интервал между двумя запусками приложения составляет не меньше 5 секунд (см. дополнительные сведения об учете сессий). Однако, если необходимо установить свой вариант минимального интервала между сессиями, можно использовать следующий API.
Обратите внимание, что установка большого интервала между запусками может отрицательно сказаться на работе API, которые используют данные сессий, например, для диплинкинга.
parameter | type | description |
---|---|---|
seconds | int | время между сессиями (по умолчанию 5 секунд) |
Пример:
AppsFlyer.setMinTimeBetweenSessions(4);
setHost
void setHost(string hostPrefixName, string hostName)
Задает пользовательский хост.
parameter | type | description |
---|---|---|
hostPrefixName | string | |
hostName | string |
Пример:
AppsFlyer.setHost("hostPrefixName","hostName");
setUserEmails
void setUserEmails(EmailCryptType cryptMethod, params string[] emails)
Задает адреса электронной почты пользователей и шифрует их.
cryptMethod Методы шифрования:
EmailCryptType.EmailCryptTypeSHA256
EmailCryptType.EmailCryptTypeNone
parameter | type | description |
---|---|---|
cryptMethod | EmailCryptType | нет или sha256 |
emails | params string[] | список эл. адресов |
Пример:
AppsFlyer.setUserEmails(EmailCryptType.EmailCryptTypeSHA256, "[email protected]", "[email protected]");
setPhoneNumber
void setPhoneNumber(string phoneNumber)
Установите номер телефона пользователя.
parameter | type | description |
---|---|---|
phoneNumber | string |
Пример:
AppsFlyer.setPhoneNumber("4166358181");
getConversionData
void getConversionData(string objectName);
Зарегистрируйте слушатель данных о конверсиях.
Предоставляет разработчику доступ к данным атрибуции пользователей для каждой новой установки в реальном времени непосредственно на уровне SDK.
Таким образом можно предоставлять пользователям персонализированный контент или направлять их на определенные действия в приложении,
что может значительно увеличить их взаимодействие с вашим приложением.
Получайте постбэки, реализовав интерфейс IAppsFlyerConversionData.
parameter | type | description |
---|---|---|
objectName | string | игровой объект с интерфейсом IAppsFlyerConversionData |
Пример:
AppsFlyer.getConversionData(gameObject.name);
attributeAndOpenStore
void attributeAndOpenStore(string appID, string campaign, Dictionary<string, string> userParams, MonoBehaviour gameObject)
Используйте следующий API для атрибуции клика и запуска страницы приложения в магазине приложений.
Получайте постбэки, реализовав интерфейс IAppsFlyerUserInvite.
parameter | type | description |
---|---|---|
appID | string | |
campaign | string | |
userParams | Dictionary<string, string> | |
gameObject | MonoBehaviour | игровой объект с интерфейсом IAppsFlyerUserInvite |
Пример:
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("af_sub1", "val");
parameters.Add("custom_param", "val2");
AppsFlyer.attributeAndOpenStore("123456789", "test campaign", parameters, this);
logAdRevenue
void logAdRevenue(AFAdRevenueData adRevenueData, Dictionary<string, string> additionalParameters)
Logs ad revenue data along with additional parameters if provided.
parameter | type | description |
---|---|---|
adRevenueData | AFAdRevenueData | Instance of AFAdRevenueData containing ad revenue information |
additionalParameters | Dictionary<string, string> | An optional map of additional parameters to be logged with ad revenue data |
Пример:
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("value1", "5");
parameters.Add(AdRevenueScheme.COUNTRY, "USA");
var logRevenue = new AFAdRevenueData("monetizationNetworkEx", MediationNetwork.GoogleAdMob, "USD", 0.99);
AppsFlyer.logAdRevenue(logRevenue, parameters);
recordCrossPromoteImpression
void recordCrossPromoteImpression(string appID, string campaign);
Для атрибуции показов используйте вызов следующего API.
Обязательно используйте идентификатор рекламируемого приложения в том виде, в каком он отображается на дэшборде AppsFlyer.
parameter | type | description |
---|---|---|
appID | string | ID приложения |
campaign | string | campaign |
params | Dictionary<string, string> | дополнительные параметры |
Пример:
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("af_sub1", "val");
parameters.Add("custom_param", "val2");
AppsFlyer.recordCrossPromoteImpression("appID", "campaign", parameters);
generateUserInviteLink
void generateUserInviteLink(Dictionary<string, string> parameters, MonoBehaviour gameObject)
Класс LinkGenerator создает URL-адрес приглашения в соответствии с различными методами настройки, которые позволяют передавать дополнительную информацию о клике.
См. статью https://support.appsflyer.com/hc/ru/articles/115004480866
parameter | type | description |
---|---|---|
parameters | Dictionary<string, string> | |
gameObject | MonoBehaviour | игровой объект с интерфейсом IAppsFlyerUserInvite |
Пример:
AppsFlyer.generateUserInviteLink(params, this);
setSharingFilterForAllPartners Deprecated
void setSharingFilterForAllPartners()
Используется рекламодателями, чтобы прекратить предоставлять данные всем сетям/интегрированным партнерам.
Пример:
AppsFlyer.setSharingFilterForAllPartners();
setSharingFilter Deprecated
void setSharingFilter(params string[] partners)
Используется рекламодателями, чтобы задать несколько сетей/интегрированных партнеров, которым нужно прекратить предоставлять данные.
parameter | type | description |
---|---|---|
partners | params string[] partners | партнеры, которым нужно прекратить передавать данные |
Пример:
AppsFlyer.setSharingFilter("googleadwords_int","snapchat_int","doubleclick_int");
setSharingFilterForPartners
void setSharingFilterForPartners(params string[] partners)
Используется рекламодателями, чтобы задать несколько сетей/интегрированных партнеров, которым нужно прекратить предоставлять данные.
parameter | type | description |
---|---|---|
partners | params string[] partners | партнеры, которым нужно прекратить передавать данные |
Пример:
AppsFlyer.setSharingFilterForPartners("partner1_int"); // Single partner
AppsFlyer.setSharingFilterForPartners("partner1_int", "partner2_int"); // Multiple partners
AppsFlyer.setSharingFilterForPartners("all"); // All partners
AppsFlyer.setSharingFilterForPartners(""); // Reset list (default)
AppsFlyer.setSharingFilterForPartners(); // Reset list (default)
setPartnerData
void setPartnerData(string partnerID, params string[] partnerInfo)
Разрешает отправку настраиваемых данных для интеграции с партнерами.
parameter | type | description |
---|---|---|
partnerID | string | Идентификатор партнера (обычно с суффиксом "_int"). |
partnerInfo | params string[] | Данные клиента, зависят от настроек интеграции с конкретным партнером. |
Пример:
Dictionary<string, string> partnerInfo = new Dictionary<string, string>();
partnerInfo.Add("puid", "1234567890");
AppsFlyer.setPartnerData("partner_test", partnerInfo);
API только для Android
updateServerUninstallToken
void updateServerUninstallToken(string token)
Вручную передайте токен устройства Firebase для измерения удалений.
parameter | type | description |
---|---|---|
token | string | Токен Firebase FCM |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.updateServerUninstallToken("token");
#endif
setImeiData
void setImeiData(string imei)
Если устройство работает на ОС версии выше KitKat (4.4) и использует службы Google Play, то по умолчанию SDK не проводит сбор данных IMEI и Android ID
(если версией SDK является 4.8.8 или более ранняя, определенным приложениям требуется GPS).
Используйте этот API, чтобы явным образом отправлять IMEI в AppsFlyer.
parameter | type | description |
---|---|---|
imei | string | IMEI устройства |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setImeiData("imei");
#endif
setAndroidIdData
void setAndroidIdData(string androidId)
Если устройство работает на ОС версии выше KitKat (4.4) и использует службы Google Play, то по умолчанию SDK не проводит сбор данных IMEI и Android ID (если версией SDK является 4.8.8 или более ранняя, определенным приложениям требуется GPS).
Используйте этот API, чтобы явным образом отправлять Android ID в AppsFlyer.
parameter | type | description |
---|---|---|
androidId | string | Android ID устройства |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setAndroidIdData("androidId");
#endif
waitForCustomerUserId
void waitForCustomerUserId(bool wait)
Можно отложить инициализацию SDK до настройки идентификатора клиента customerUserID.
Эта функция гарантирует, что SDK не начнет функционировать до предоставления идентификатора customerUserID.
При использовании этого API все внутренние события приложения и вызовы всех других API SDK игнорируются до тех пор, пока не будет предоставлен идентификатор customerUserID.
parameter | type | description |
---|---|---|
wait | bool | True, если вы хотите, чтобы SDK ждал customerUserID |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.waitForCustomerUserId(true);
#endif
setCustomerIdAndStartSDK
void setCustomerIdAndStartSDK(string id)
Before calling this method, the method
waitForCustomerUserId
must be called
Используйте этот API, чтобы предоставить SDK соответствующий идентификатор клиента и запустить стандартную работу SDK.
parameter | type | description |
---|---|---|
id | string | Идентификатор клиента. |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setCustomerIdStartSDK("id");
#endif
getOutOfStore
string getOutOfStore()
Получить текущее значение AF_STORE.
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
string af_store = AppsFlyer.getOutOfStore();
#endif
setOutOfStore
void setOutOfStore(string sourceName)
Установить значение AF_STORE вручную.
parameter | type | description |
---|---|---|
sourceName | string |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setOutOfStore("sourceName");
#endif
setCollectAndroidID
void setCollectAndroidID(bool isCollect)
Отказ от сбора Android ID.
Если Google Play Services в приложении НЕ используются, сбор данных Android ID выполняется с помощью SDK.
При этом приложения, использующие Google Play Services, не должны собирать Android ID, так как это противоречит политике Google Play.
parameter | type | description |
---|---|---|
isCollect | bool |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setCollectAndroidID(true);
#endif
setCollectIMEI
void setCollectIMEI(bool isCollect)
Отказ от сбора IMEI.
Если Google Play Services в приложении НЕ используются, сбор данных IMEI выполняется с помощью SDK.
При этом приложения, использующие Google Play Services, не должны собирать IMEI, так как это противоречит политике Google Play.
parameter | type | description |
---|---|---|
isCollect | bool |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setCollectIMEI(true);
#endif
setIsUpdate
void setIsUpdate(bool isUpdate)
Позволяет указать вручную, что приложение было обновлено.
parameter | type | description |
---|---|---|
isUpdate | bool | true, если приложение было обновлено |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setIsUpdate(true);
#endif
setPreinstallAttribution
void setPreinstallAttribution(string mediaSource, string campaign, string siteId)
Позволяет указать производителя устройства или имя медиа-источника, которому атрибутирована предустановка.
parameter | type | description |
---|---|---|
mediaSource | string | Производитель устройства или медиа-источник для атрибуции предустановки. |
campaign | string | Имя кампании для атрибуции предустановки. |
siteId | string | Идентификатор сайта для атрибуции предустановки. |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setPreinstallAttribution("mediaSource", "campaign", "siteId");
#endif
isPreInstalledApp
bool isPreInstalledApp()
Логическое значение. Индикатор предустановки производителем устройства.
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
if (AppsFlyer.isPreInstalledApp())
{
}
#endif
handlePushNotifications
void handlePushNotifications()
При вызове API handlePushNotifications будут записываться push-уведомления.
Пример:
AppsFlyer.handlePushNotifications();
getAttributionId
string getAttributionId()
Получить идентификатор атрибуции Facebook, если он существует.
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
string attributionId = AppsFlyer.getAttributionId();
#endif
validateAndSendInAppPurchase-beta
void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, string> additionalParameters, MonoBehaviour gameObject)
API for server verification of in-app purchases.
An af_purchase event with the relevant values will be automatically sent if the validation is successful.
parameter | type | description |
---|---|---|
details | AFPurchaseDetailsAndroid | Instance of AFPurchaseDetailsAndroid class |
additionalParameters | Dictionary<string, string> | параметры, которые будут отправлены вместе с покупкой. |
gameObject | MonoBehaviour | Игровой объект для отправки обратных вызовов |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AFPurchaseDetailsAndroid details = new AFPurchaseDetailsAndroid(AFPurchaseType.Subscription,
"token", "productId", "price", "currency");
AppsFlyer.validateAndSendInAppPurchase(
details,
null,
this);
#endif
validateAndSendInAppPurchase
void validateAndSendInAppPurchase(string publicKey, string signature, string purchaseData, string price, string currency, Dictionary<string, string> additionalParameters, MonoBehaviour gameObject)
API for server verification of in-app purchases.
An af_purchase event with the relevant values will be automatically sent if the validation is successful.
parameter | type | description |
---|---|---|
publicKey | string | Лицензионный ключ, полученный из консоли Google Play. |
signature | string | data.INAPP_DATA_SIGNATURE. |
purchaseData | string | data.INAPP_PURCHASE_DATA |
price | string | Цена покупки |
currency | string | Идентификатор сайта для атрибуции предустановки. |
additionalParameters | Dictionary<string, string> | параметры, которые будут отправлены вместе с покупкой. |
gameObject | MonoBehaviour | Игровой объект для отправки обратных вызовов |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.validateAndSendInAppPurchase(
"publicKey",
"signature",
"purchaseData",
"price",
"currency",
null,
this);
#endif
setCollectOaid
void setCollectOaid(boolean isCollect)
setCollectOaid
You must include the appsflyer oaid library for this api to work.
parameter | type | description |
---|---|---|
isCollect | bool | true, чтобы разрешить сбор oaid |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setCollectOaid(true);
#endif
setDisableAdvertisingIdentifiers
void setDisableAdvertisingIdentifiers(boolean disable)
setDisableAdvertisingIdentifiers
Disables collection of various Advertising IDs by the SDK. This includes Google Advertising ID (GAID), OAID and Amazon Advertising ID (AAID)
parameter | type | description |
---|---|---|
disable | bool | true для отключения |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setDisableAdvertisingIdentifiers(true);
#endif
setDisableNetworkData
void setDisableNetworkData(boolean disable)
setDisableNetworkData
Use to opt-out of collecting the network operator name (carrier) and sim operator name from the device.
parameter | type | description |
---|---|---|
disable | bool | true для отказа от сбора |
Пример:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setDisableNetworkData(true);
#endif
API только для iOS
setDisableCollectAppleAdSupport
void setDisableCollectAppleAdSupport(bool disable)
SDK AppsFlyer собирает от Apple advertisingIdentifier
if the AdSupport.framework
включен в SDK.
Вы можете отключить эту функцию, задав для следующего свойства значение true.
parameter | type | description |
---|---|---|
disable | bool |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.setDisableCollectAppleAdSupport(true);
#endif
handlePushNotifications(iOS)
void handlePushNotification(Dictionary<string, string> pushPayload)
When the handlePushNotifications API is called from a service that is swizzling, like Firebase, the push notifications payload will be handled by the AppsflyerSDK.
parameter | type | description |
---|---|---|
pushPayload | Dictionary<string, string> | the push notification payload |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
// e.Message.Data = push notification payload
var dataDict = new Dictionary<string, string>(e.Message.Data);
AppsFlyeriOS.handlePushNotification(dataDict);
#endif
setShouldCollectDeviceName
void setShouldCollectDeviceName(bool shouldCollectDeviceName)
Установите этот флаг в значение true, чтобы собирать текущее имя устройства (например, «Мой iPhone»). По умолчанию установлено значение false.
parameter | type | description |
---|---|---|
shouldCollectDeviceName | bool |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.setShouldCollectDeviceName(true);
#endif
setDisableCollectIAd
void setDisableCollectIAd(bool disableCollectIAd)
Отказ от атрибуции Apple Search Ads.
parameter | type | description |
---|---|---|
disableCollectIAd | bool |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.setDisableCollectIAd(true);
#endif
setUseReceiptValidationSandbox
void setUseReceiptValidationSandbox(bool useReceiptValidationSandbox)
Проверка чека для покупок в приложении в среде Apple (рабочей среде или песочнице). По умолчанию установлено значение false.
parameter | type | description |
---|---|---|
useReceiptValidationSandbox | bool | true, если покупка в приложении осуществляется в среде песочницы |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.setUseReceiptValidationSandbox(true);
#endif
setUseUninstallSandbox
void setUseUninstallSandbox(bool useUninstallSandbox)
Установите этот флажок, чтобы протестировать удаления приложения в среде Apple (рабочей среде или песочнице). По умолчанию установлено значение "false".
parameter | type | description |
---|---|---|
useUninstallSandbox | bool | true, если вы используете сертификат APN |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.setUseUninstallSandbox(true);
#endif
validateAndSendInAppPurchase-beta-iOS
void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary<string, string> extraEventValues, MonoBehaviour gameObject)
Чтобы отправлять и проверять покупки в приложении, вызовите этот метод из метода processPurchase.
parameter | type | description |
---|---|---|
details | AFSDKPurchaseDetailsIOS | Instance of AFSDKPurchaseDetailsIOS class. |
extraEventValues | Dictionary<string, string> | Дополнительный параметр, который вы хотите получить в отчетах по сырым данным. |
gameObject | MonoBehaviour | the game object for the |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AFSDKPurchaseDetailsIOS details = AFSDKPurchaseDetailsIOS.Init("productId", "price", "currency",
"transactionId");
AppsFlyer.validateAndSendInAppPurchase(
details,
null,
this);
#endif
validateAndSendInAppPurchase
void validateAndSendInAppPurchase(string productIdentifier, string price, string currency, string tranactionId, Dictionary<string, string> additionalParameters, MonoBehaviour gameObject)
Чтобы отправлять и проверять покупки в приложении, вызовите этот метод из метода processPurchase.
parameter | type | description |
---|---|---|
productIdentifier | string | Идентификатор товара. |
price | string | Цена товара. |
currency | string | Валюта товара. |
tranactionId | string | Идентификатор транзакции покупки. |
additionalParameters | Dictionary<string, string> | Дополнительный параметр, который вы хотите получить в отчетах по сырым данным. |
gameObject | MonoBehaviour | игровой объект для обратных вызовов |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.validateAndSendInAppPurchase(
"productIdentifier",
"price",
"currency",
"tranactionId",
null,
this);
#endif
registerUninstall
void registerUninstall(byte[] deviceToken)
Регистрация удалений. Вам необходимо зарегистрироваться для получения удаленных уведомлений и предоставить AppsFlyer токен устройства для push-уведомлений.
parameter | type | description |
---|---|---|
deviceToken | byte[] | Токен APN |
Пример:
private bool tokenSent;
void Update()
{
#if UNITY_IOS && !UNITY_EDITOR
if (!tokenSent)
{
byte[] token = UnityEngine.iOS.NotificationServices.deviceToken;
if (token != null)
{
AppsFlyer.registerUninstall(token);
tokenSent = true;
}
}
#endif
}
handleOpenUrl
void handleOpenUrl(string url, string sourceApplication, string annotation)
In case you want to track deep linking manually call handleOpenUrl.
The continueUserActivity and onOpenURL are implemented in the AppsFlyerAppController.mm class, so
only use this method if the other methods do not cover your apps deeplinking needs.
parameter | type | description |
---|---|---|
url | string | URL, который будет передан в ваш AppDelegate |
sourceApplication | string | sourceApplication, который будет передан в ваш AppDelegate |
annotation | string | аннотация, которая будет передана в делегат приложения |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.handleOpenUrl(string url, string sourceApplication, string annotation);
#endif
waitForATTUserAuthorizationWithTimeoutInterval
void waitForATTUserAuthorizationWithTimeoutInterval(int timeoutInterval)
Подробнее см. здесь.
parameter | type | description |
---|---|---|
timeoutInterval | int | Время ожидания idfa |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60);
#endif
disableSKAdNetwork
bools disableSKAdNetwork(bool isDisabled)
parameter | type | description |
---|---|---|
isDisabled | bool | true для отключения SKAdNetwork |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.disableSKAdNetwork(true);
#endif
setLanguage
setCurrentDeviceLanguage(string language)
parameter | type | description |
---|---|---|
language | String | Язык для установки |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.setCurrentDeviceLanguage("english");
#endif
disableIDFVCollection
disableIDFVCollection(bool isDisabled)
parameter | type | description |
---|---|---|
isDisabled | bool | True to disable IDFV collection |
Пример:
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.disableIDFVCollection(true);
#endif
IAppsFlyerConversionData
onConversionDataSuccess
public void onConversionDataSuccess(string conversionData)
ConversionData содержит информацию об установке.
Органическая/неорганическая и т.д. Более подробную информацию см. здесь.
parameter | type | description |
---|---|---|
conversionData | string | строка JSON возвращаемых данных о конверсии |
Пример:
public void onConversionDataSuccess(string conversionData)
{
AppsFlyer.AFLog("onConversionDataSuccess", conversionData);
Dictionary<string, object> conversionDataDictionary = AppsFlyer.CallbackStringToDictionary(conversionData);
// add deferred deeplink logic here
}
onConversionDataFail
public void onConversionDataFail(string error)
parameter | type | description |
---|---|---|
error | string | Строка, описывающая ошибку |
Пример:
public void onConversionDataFail(string error)
{
AppsFlyer.AFLog("onConversionDataFail", error);
}
onAppOpenAttribution
public void onAppOpenAttribution(string attributionData)
attributionData содержит информацию о OneLink, диплинке.
parameter | type | description |
---|---|---|
attributionData | string | строка JSON возвращаемых данных о диплинке |
Пример:
public void onAppOpenAttribution(string attributionData)
{
AppsFlyer.AFLog("onAppOpenAttribution", attributionData);
Dictionary<string, object> attributionDataDictionary = AppsFlyer.CallbackStringToDictionary(attributionData);
// add direct deeplink logic here
}
onAppOpenAttributionFailure
public void onAppOpenAttributionFailure(string error)
Любые ошибки, возникшие во время запроса на атрибуцию.
parameter | type | description |
---|---|---|
error | string | строка, описывающая ошибку |
Пример:
public void onAppOpenAttributionFailure(string error)
{
AppsFlyer.AFLog("onAppOpenAttributionFailure", error);
}
IAppsFlyerUserInvite
onInviteLinkGenerated
public void onInviteLinkGenerated(string link)
Успешный обратный вызов для генерирования ссылок OneLink.
parameter | type | description |
---|---|---|
link | string | созданная ссылка |
Пример:
public void onInviteLinkGenerated(string link)
{
}
onInviteLinkGeneratedFailure
public void onInviteLinkGeneratedFailure(string error)
Ошибка обратного вызова для генерирования ссылок OneLink
parameter | type | description |
---|---|---|
error | string | Строка, описывающая ошибку |
Пример:
public void onInviteLinkGeneratedFailure(string error)
{
AppsFlyer.AFLog("onInviteLinkGeneratedFailure", error);
}
onOpenStoreLinkGenerated
public void onOpenStoreLinkGenerated(string link)
(только для ios) iOS позволяет использовать компонент StoreKit для открытия
App Store, оставаясь в контексте вашего приложения.
Подробнее здесь
parameter | type | description |
---|---|---|
attributionData | string | строка JSON возвращаемых данных о диплинке |
Пример:
public void onOpenStoreLinkGenerated(string link)
{
}
IAppsFlyerValidateReceipt
didFinishValidateReceipt
public void didFinishValidateReceipt(string result)
Успешный обратный вызов для API validateAndSendInAppPurchase.
Для Android: обратный вызов возвращает «Validate success» (Подтвердить успех).
Для iOS: обратный вызов возвращает строку JSON из API Apple verifyReceipt.
parameter | type | description |
---|---|---|
result | string | подтверждает результат |
Пример:
public void didFinishValidateReceipt(string link)
{
}
IAppsFlyerValidateAndLog
onValidateAndLogComplete
public void didFinishValidateReceipt(string result)
The success callback for validateAndSendInAppPurchase API.
The callback will return a JSON string which can be converted to dictionary.
parameter | type | description |
---|---|---|
result | string | подтверждает результат |
Пример:
public void onValidateAndLogComplete(string result)
{
AppsFlyer.AFLog("onValidateAndLogComplete", result);
Dictionary<string, object> validateAndLogDataDictionary = AppsFlyer.CallbackStringToDictionary(result);
}
onValidateAndLogFailure
public void onValidateAndLogFailure(string error)
The error callback for validating receipts.
The callback will return a JSON string which can be converted to dictionary.
parameter | type | description |
---|---|---|
error | string | Строка, описывающая ошибку |
Пример:
public void onValidateAndLogFailure(string error)
{
AppsFlyer.AFLog("onValidateAndLogFailure", error);
}
События
onRequestResponse
public static event EventHandler OnRequestResponse
Обратный вызов для сессий.
код статуса | описание ошибки |
---|---|
200 | null |
10 | "Event timeout. Check 'minTimeBetweenSessions' param" («Время события истекло. Проверьте параметр minTimeBetweenSessions») |
11 | "Skipping event because 'isStopTracking' enabled" («Событие пропущено, т. к. включен параметр isStopTracking») |
40 | Ошибка сети: описание ошибки предоставляет Android |
41 | "No dev key" («Нет ключа разработчика») |
50 | "Status code failure" («Ошибка кода статуса») + фактический код ответа от сервера |
Пример:
AppsFlyer.OnRequestResponse += (sender, args) =>
{
var af_args = args as AppsFlyerRequestEventArgs;
AppsFlyer.AFLog("AppsFlyerOnRequestResponse", "status code" + af_args.statusCode);
};
onInAppResponse
public static event EventHandler OnInAppResponse
Обратный вызов для внутренних событий приложения.
код статуса | описание ошибки |
---|---|
200 | null |
10 | "Event timeout. Check 'minTimeBetweenSessions' param" («Время события истекло. Проверьте параметр minTimeBetweenSessions») |
11 | "Skipping event because 'isStopTracking' enabled" («Событие пропущено, т. к. включен параметр isStopTracking») |
40 | Ошибка сети: описание ошибки предоставляет Android |
41 | "No dev key" («Нет ключа разработчика») |
50 | "Status code failure" («Ошибка кода статуса») + фактический код ответа от сервера |
Пример:
AppsFlyer.OnInAppResponse += (sender, args) =>
{
var af_args = args as AppsFlyerRequestEventArgs;
AppsFlyer.AFLog("OnRequestResponse", "status code" + af_args.statusCode);
};
onDeepLinkReceived
public static event EventHandler OnDeepLinkReceived
Обратный вызов для API унифицированного диплинкинга.
Пример:
// First call init with devKey, appId and gameObject
AppsFlyer.initSDK(devKey, appID, this);
AppsFlyer.OnDeepLinkReceived += (sender, args) =>
{
var deepLinkEventArgs = args as DeepLinkEventsArgs;
// DEEPLINK LOGIC HERE
};
Изменения сохранены 25 дней назад