Покупки в приложении
Автоматическая верификация и отправка информации о покупке
Начиная с Appodeal SDK 3.7.0+, появилась возможность автоматически верефицировать и отправлять информацию о покупках/подписках в Appodeal, а также получать информацию о покупках из Appodeal SDK с помощью Appsflyer.
Чтобы активировать эту функцию, свяжитесь с нами по электронной почте [email protected] или в чате и попросите включить функцию ROI360.
Перед началом интеграции ROI360 следует получить данные из AppStoreConnect.
Для этого вам необходимо выполнить следующие шаги:
Шаг 1. Получение данных из App Store для валидации покупок ROI360
Получите следующие учетные данные из App Store Connect и передайте эту информацию нашей службе поддержки:
- In-App Purchase key
- Key ID
- Issuer ID
Для получения данных по iOS:
- В App Store Connect, зайдите в Users and Access
- В Users and Access нажмите вкладку Integrations, в разделе Keys, выберите In-App Purchase.
- Нажмите + чтобы сгенерировать новый In-App Purchase key.
-
Введите название вашего API key.
-
Нажмите Generate.
-
Нажмите Download In-App Purchase Key и сохраните его у себя для дальнейшей передачи. Примечание: Вы можете загрузить и сохранить этот ключ только один раз.
-
Далее в App Store Connect, скопируйте Key ID.
- Далее в App Store Connect, скопируйте Issuer ID. Примечание: если Issuer ID не отображается в верхней части страницы, создайте ключ API App Store Connect (с любым уровнем доступа). После этого Issuer ID появится в верхней части страницы для ключа In-App Purchase.".
Шаг 2. Отправка уведомл ений от App Store непосредственно в AppsFlyer
Перед продолжением обязательно запросите AppsFlyer server notifications endpoint у нашей службы поддержки.
- В App Store Connect, в разделе App Information найдите App Store Server Notifications в графе Production Server URL, нажмите Edit.
- Вставьте AppsFlyer server notifications endpoint, предоставленный нашей службой поддержки. Выберите Version 2 Notifications и нажмите Save.
- Далее, найдите Sandbox Server URL и нажмите Edit.
- Вставьте AppsFlyer server notifications endpoint. Выберите Version 2 Notifications и нажмите Save.
Опционально. Шаг 3 Настройка вызова AppodealPurchaseCallback
После того как функциональность выше будет включена и настроена, при совершении покупки в вашем приложении Appodeal SDK автоматически определит, проверит и отправит данные о покупках или подписках на Appodeal Dashboard. Если вы хотите получать информацию о покупках в самом приложении, выполните следующие шаги:
- Установите purchase delegate. Мы рекомендуем дела ть это в AppDelegate
-didFinishLaunchingWithOptions::
- Swift
- Objective-C
@UIApplicationMain
final class MyAppDelegate: UIResponder, UIApplicationDelegate, AppodealInitializationDelegate {
func application(
_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
Appodeal.setLogLevel(.verbose)
// Optional delegate for initialization completion
Appodeal.setInitializationDelegate(self)
// Optional delegate for for ROI360
Appodeal.setPurchaseDelegate(self)
/// Any other pre-initialization
/// app specific logic
Appodeal.initialize(
withApiKey: "APP_KEY",
types: .interstitial
)
return true
}
}
@interface MyAppDelegate () <AppodealInitializationDelegate>
@end
@implementation MyAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[Appodeal setLogLevel:APDLogLevelVerbose];
// Optional delegate for initialization completion
[Appodeal setInitializationDelegate:self];
// Optional delegate for for ROI360
[Appodeal setPurchaseDelegate:self];
/// Any other pre-initialization
/// app specific logic
[Appodeal initializeWithApiKey:@"APP KEY" types:AppodealAdTypeInterstitial];
return YES;
}
@end
- Реализуйте методы протокола AppodealPurchaseDelegate:
- Swift
- Objective-C
extension AppDelegate: AppodealPurchaseDelegate {
func didReceivePurchase(_ successPurchases: [String: Any]?) {
print("[ROI360] successPurchases: ", successPurchases)
}
func didFailPurchase(_ error: (any Error)?) {
print("[ROI360] failPurchases: ", error?.localizedDescription)
}
}
@interface AppDelegate () <AppodealPurchaseDelegate>
@end
@implementation AppDelegate
- (void)didReceivePurchase:(NSDictionary<NSString *, id> * _Nullable)successPurchases {
NSLog(@"[ROI360] successPurchases: %@", successPurchases);
}
- (void)didFailPurchase:(NSError * _Nullable)error {
NSLog(@"[ROI360] failPurchases: %@", error.localizedDescription);
}
@end
Данные о покупках содержат следующую информацию:
| Параметр | Описание |
|---|---|
| product_id | Идентификатор приобретённого продукта |
| purchase_date | Дата и время совершения покупки |
| transaction_id | Уникальный идентификатор транзакции, присвоенный App Store |
На этом подключение автоматических покупок полностью завершено.
Отчеты о покупках будут автоматически загружаться в Личный кабинет 2 раза в день
Ручная верификация и отправка информации о покупке
Отслеживание покупок в приложении будет работать только при подключении к Adjust или AppsFlyer. Чтобы подключить их, следуйте этому руководству для Adjust и этому руководству для AppsFlyer.
Вы можете отслеживать информацию о покупках в приложении и отправлять информацию на серверы Appodeal для аналитики. Это позволяет групп ировать пользователей по факту покупки. Это поможет вам настроить рекламу для таких пользователей или просто отключить ее, если это необходимо. Чтобы эта настройка работала правильно, отправьте информацию о покупке через Appodeal SDK.
Шаг 1. Отслеживание Покупок В Приложении
Чтобы все работало правильно, отправьте информацию о покупке через Appodeal SDK.
Обязательно используйте все параметры из приведенного ниже метода и не удаляйте ни один из них.
- Swift
- Objective-C
Appodeal.validateAndTrack(
inAppPurchase: "some product id",
type: .autoRenewableSubscription,
price: "9.99",
currency: "USD",
transactionId: "some transaction id",
additionalParameters: additionalParameters,
success: { [weak self] in self?.alert("Purchase is valid", message: $0.description) },
failure: { [weak self] error, _ in self?.alert("Purchase is invalid", message: error?.localizedDescription) }
)
[Appodeal validateAndTrackInAppPurchase:@"some product id"
type:APDPurchaseTypeConsumable
price:@"9.99"
currency:@"USD"
transactionId:@"some transaction id"
additionalParameters:additionalParameters
success:^(NSDictionary *validationResult) {
NSLog(@"Purchase is valid: %@", validationResult);
} failure:^(NSError *error) {
NSLog(@"Purchase is invalid: %@", error);
}];
Убедитесь, что если вы создали продукт в приложении в App Store Connect, чтобы использовать:
.consumableили.nonConsumableдля типа покупки,.autoRenewableSubscriptionили.nonRenewingSubscriptionдля подписок.
| Параметр | Описание | Использование |
|---|---|---|
| inAppPurchase | Идентификатор продукта | Adjust/AppsFlyer |
| type | Тип должен быть одним из:
| Adjust/AppsFlyer |
| price | Доход от событий в приложении. | Adjust/AppsFlyer/Appodeal |
| currency | Валюта события в приложении. | Adjust/AppsFlyer/Appodeal |
| transactionId | Идентификатор транзакции | Adjust/AppsFlyer |
| additionalParameters | Дополнительные параметры события в приложении. |
Если вы используете ваш собственный Adjust аккаунт, вам необходимо выполнить шаг 2 из нашей (документации по отслеживанию событий)(./event-tracking) и создать необходимые события на стороне Adjust.
Шаг 2. Свяжитесь С нами
После выполнения всех шагов свяжитесь с нашей службой поддержки по электронной почте [email protected] или в онлайн-чате со следующей информацией:
- Логика реализации покупок в вашем приложении (когда и где вы вызываете метод валидации покупок и валидируете покупки).
- Предоставьте нам доступ для тестирования покупки в приложении и отправьте testflight по электронной почте [email protected].
Шаг 3. Тестирование
После того, как вы связались с нашей службой поддержки и предоставили всю необходимую информацию, вы можете протестировать свое приложение, чтобы убедиться, что покупки вали дированы.
-
Перейдите по пути App Settings → Attribution Settings → и измените Adjust Environment с Production на Sandbox, чтобы протестировать валидацию покупок, и не забудьте нажать Save в конце страницы.
-
Подключите ваше устройство к компьютеру с открытой консолью (iOS Console) и отсортируйте логи по слову purchase.
-
Теперь вы можете открыть свое приложение и совершить пробную покупку. Если в консоли отображается надпись Valid Purchase, значит, валидация прошла успешно.
-
Если валидация не прошла успешно, то убедитесь, что все шаги выполнены.
-
После тестирования, смените ваш Adjust Environment на Production по пути App Settings → Attribution Settings.