Покупки В Приложении
Отслеживание покупок в приложении будет работать только при подключении к Adjust или AppsFlyer. Чтобы подключить их, следуйте этому руководству для Adjust и этому руководству для AppsFlyer.
Можно отслеживать информацию о покупках в приложении и отправлять информацию на серверы Appodeal для аналитики. Это позволяет группировать пользователей по факту покупки. Это поможет вам настроить рекламу для таких пользо вателей или просто отключить ее, если это необходимо. Чтобы эта настройка работала правильно, отправьте информацию о покупке через Appodeal SDK.
Шаг 1. Отслеживание Покупок В Приложении
Если вы используете собственный Adjust аккаунт, вам нужно выполнить шаг 2 из нашей Event Tracking инструкции и создать обязательные события на стороне Adjust.
Чтобы все работало правильно, отправьте информацию о покупке через Appodeal SDK.
Следуйте официальной инструкции Unity IAP чтобы настроить покупки и получать информацию о покупках.
- UPM Дистрибуция
- Manual Дистрибуция
#if UNITY_ANDROID
var additionalParams = new Dictionary<string, string> { { "key1", "value1" }, { "key2", "value2" } };
var purchase = new PlayStoreInAppPurchase.Builder(PlayStorePurchaseType.Subs)
.WithAdditionalParameters(additionalParams)
.WithPurchaseTimestamp(793668600)
.WithDeveloperPayload("payload")
.WithPurchaseToken("token")
.WithPurchaseData("data")
.WithPublicKey("key")
.WithSignature("signature")
.WithCurrency("USD")
.WithOrderId("orderId")
.WithPrice("1.99")
.WithSku("sku")
.Build();
Appodeal.ValidatePlayStoreInAppPurchase(purchase, this);
#elif UNITY_IOS
var additionalParams = new Dictionary<string, string> { { "key1", "value1" }, { "key2", "value2" } };
var purchase = new AppStoreInAppPurchase.Builder(AppStorePurchaseType.Consumable)
.WithAdditionalParameters(additionalParams)
.WithTransactionId("transactionId")
.WithProductId("productId")
.WithCurrency("USD")
.WithPrice("2.89")
.Build();
Appodeal.ValidateAppStoreInAppPurchase(purchase, this);
#endif
Для Android:
Убедитесь, что если вы создали продукт в приложении в разделе Google Play Console → Monetize, то используйте:
PlayStorePurchaseType.InApp
для внутриигровых покупок.PlayStorePurchaseType.Subs
для подписок.
Для iOS:
Убедитесь, что если вы создали продукт в приложении в App Store Connect, то используйте:
AppStorePurchaseType.Consumable
илиAppStorePurchaseType.NonConsumable
для внутриигровых покупок.AppStorePurchaseType.AutoRenewableSubscription
илиAppStorePurchaseType.NonRenewingSubscription
для подписок.
#if UNITY_ANDROID
var additionalParams = new Dictionary<string, string> { { "key1", "value1" }, { "key2", "value2" } };
var purchase = new PlayStoreInAppPurchase.Builder(Appodeal.PlayStorePurchaseType.Subs)
.withAdditionalParameters(additionalParams)
.withPurchaseTimestamp(793668600)
.withDeveloperPayload("payload")
.withPurchaseToken("token")
.withPurchaseData("data")
.withPublicKey("key")
.withSignature("signature")
.withCurrency("USD")
.withOrderId("orderId")
.withPrice("1.99")
.withSku("sku")
.build();
Appodeal.validatePlayStoreInAppPurchase(purchase, this);
#elif UNITY_IOS
var additionalParams = new Dictionary<string, string> { { "key1", "value1" }, { "key2", "value2" } };
var purchase = new AppStoreInAppPurchase.Builder(Appodeal.AppStorePurchaseType.Consumable)
.withAdditionalParameters(additionalParams)
.withTransactionId("transactionId")
.withProductId("productId")
.withCurrency("USD")
.withPrice("2.89")
.build();
Appodeal.validateAppStoreInAppPurchase(purchase, this);
#endif
Для Android:
Убедитесь, что если вы создали продукт в приложении в разделе Google Play Console → Monetize, то используйте:
Appodeal.PlayStorePurchaseType.Subs
для внутриигровых покупок.Appodeal.PlayStorePurchaseType.Subs
для подписок.
Для iOS:
Убедитесь, что если вы создали продукт в приложении в App Store Connect, то используйте:
Appodeal.AppStorePurchaseType.Consumable
илиAppodeal.AppStorePurchaseType.NonConsumable
для внутриигровых покупок.Appodeal.AppStorePurchaseType.AutoRenewableSubscription
илиAppodeal.AppStorePurchaseType.NonRenewingSubscription
для подписок.
Параметр | Описание | Использование |
---|---|---|
purchaseType | Тип покупки. Должен быть InApp или Subs | Adjust/AppsFlyer |
publicKey | Публичный ключ из Google Developer Console | AppsFlyer |
signature | Подпись транзакции (возвращается из Google API после завершения покупки) | Adjust/AppsFlyer |
purchaseData | Продукт, приобретенный в формате JSON (возвращается из Google API после завершения покупки) | AppsFlyer |
purchaseToken | Токен приобретенного продукта (возвращается из Google API после завершения покупки) | Adjust |
purchaseTimestamp | Отметка времени покупки продукта (возвращается из Google API после завершения покупки) | Adjust |
developerPayload | Полезная нагрузка разработчика в приобретенном продукте (возвращается из Google API после завершения покупки) | Adjust |
orderId | Уникальный идентификатор заказа для транзакции приобретенного продукта (возвращается из Google API после завершения покупки) | Adjust |
sku | Уникальный идентификатор единицы товара | Adjust |
price | Доход от события в приложении | Adjust/AppsFlyer/Appodeal |
currency | Валюта события в приложении | Adjust/AppsFlyer/Appodeal |
additionalParameters | Допольнительные параметры in-app события | - |
transactionId | Некоторый идентификатор транзакции | Adjust/AppsFlyer |
productId | Некоторый идентификатор продукта | Adjust/AppsFlyer |
Для iOS
- Все параметры являются обязательными
Для Android
- Adjust In-app Purchase
- Adjust In-App Subscription
- AppsFlyer
- purchaseType
- purchaseToken
- developerPayload
- sku
- price
- currency
- additionalParameters
- purchaseType
- signature
- purchaseToken
- purchaseTimestamp
- orderId
- sku
- price
- currency
- additionalParameters
- purchaseType
- publicKey
- signature
- purchaseData
- price
- currency
- additionalParameters
Шаг 2. Методы Обратного Вызова
Методы обратного вызова позволяют отслеживать успешные и неудачные покупки в приложении. Для использования этих методов выполните следующие действия:
- UPM Дистрибуция
- Manual Дистрибуция
- Подпишитесь на желаемое событие In-App Purchase, используя один из методов из нашей инструкции. (вы можете подп исаться к любому событию, которому захотите)
- Вы можете использовать методы обратного вызова как показано ниже:
public void SomeMethod()
{
AppodealCallbacks.InAppPurchase.OnValidationSucceeded += OnInAppPurchaseValidationSucceeded;
AppodealCallbacks.InAppPurchase.OnValidationFailed += OnInAppPurchaseValidationFailed;
}
#region InAppPurchaseValidation Callbacks
private void OnInAppPurchaseValidationSucceeded(object sender, InAppPurchaseEventArgs e)
{
Debug.Log("In-App Purchase Validation Succeeded");
}
private void OnInAppPurchaseValidationFailed(object sender, InAppPurchaseEventArgs e)
{
Debug.Log("In-App Purchase Validation Failed");
}
#endregion
- Наследуйте Ваш класс от
IInAppPurchaseValidationListener
:
SomeClassName : IInAppPurchaseValidationListener {}
- Добавьте обязательные методы обратного вызова в ваш класс:
#region InAppPurchaseValidation Callbacks
private void onInAppPurchaseValidationSucceeded(string json)
{
Debug.Log("In-App Purchase Validation Succeeded");
}
private void onInAppPurchaseValidationFailed(string json)
{
Debug.Log("In-App Purchase Validation Failed");
}
#endregion