Новый AdServices фреймворк позволяет получить токен устройства, используемый в Apple Ads Attribution API. С помощью данного API можно атрибуцировать установки из ваших Apple Search Ads кампаний.
В зависимости от того, дал ли пользователь согласие на ATT отслеживание, будет отдаваться полный или неполный вариант атрибуции.
Полный вариант атрибуции выглядит следующий образом:
{ "attribution": true, "orgId": 40669820, "campaignId": 542370539, "conversionType": "Download", "clickDate": "2020-04-08T17:17Z", "adGroupId": 542317095, "countryOrRegion": "US", "keywordId": 87675432, "creativeSetId": 542317136 }
А неполный вариант атрибуции выглядит так:
{ "attribution": true, "orgId": 40669820, "campaignId": 542370539, "conversionType": "Download", "adGroupId": 542317095, "countryOrRegion": "US", "keywordId": 87675432, "creativeSetId": 542317136 }
Как видим, отличие только в clickDate
. Но так как дату установки можно легко определить по App Store чеку или времени первого запуска, то по факту атрибуция работает для всех установок независимо от статуса ATT. Заманчиво, не правда ли?
Атрибуция по умолчанию отдает лишь id кампании и кейворда, для того, чтобы получить настоящее название, необходимо выполнить дополнительные запросы с использованием OAuth авторизации.
Процесс выглядит следующим образом:
После всего этого можно выполнять запросы для получения названия кампаний и кейвордов по их id.
Подключить новую интеграцию с Apple Search Ads в Apphud легко, так как сервис делает все за вас:
updateConversionValue
.Со стороны приложения достаточно вызвать один метод для передачи токена в Apphud SDK.
import AdServices import iAd // optional private func trackAppleSearchAds() { if #available(iOS 14.3, *) { DispatchQueue.global(qos: .default).async { if let token = try? AAAttribution.attributionToken() { DispatchQueue.main.async { Apphud.addAttribution(data: nil, from: .appleAdsAttribution, identifer: token, callback: nil) } } } } else { // optional: send old Search Ads attribution data from older iOS versions ADClient.shared().requestAttributionDetails { data, _ in data.map { Apphud.addAttribution(data: $0, from: .appleSearchAds, callback: nil) } } } }
Более подробно с интеграцией можно ознакомиться в нашей документации.
Хорошего дня!