From 1fdd8683dfad6db1f15af7fd588ec6d467017891 Mon Sep 17 00:00:00 2001 From: uerceg Date: Mon, 19 Aug 2024 20:13:01 +0200 Subject: [PATCH 1/6] feat: add attribution and deferred deep link callbacks to example app --- Assets/Adjust/Example/Example.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Assets/Adjust/Example/Example.cs b/Assets/Adjust/Example/Example.cs index 7d419c48..8044068d 100644 --- a/Assets/Adjust/Example/Example.cs +++ b/Assets/Adjust/Example/Example.cs @@ -28,6 +28,8 @@ void OnGUI() { AdjustConfig adjustConfig = new AdjustConfig("2fm9gkqubvpc", AdjustEnvironment.Sandbox); adjustConfig.LogLevel = AdjustLogLevel.Verbose; + adjustConfig.AttributionChangedDelegate = AttributionChangedCallback; + adjustConfig.DeferredDeeplinkDelegate = DeferredDeeplinkCallback; Adjust.InitSdk(adjustConfig); isEnabled = true; From ce760b1e4f7bcac06410c810856583090a0af168 Mon Sep 17 00:00:00 2001 From: uerceg Date: Mon, 19 Aug 2024 20:13:28 +0200 Subject: [PATCH 2/6] fix: fix deferred deep link callback handling --- Assets/Adjust/Native/iOS/AdjustUnityAppDelegate.m | 6 ++++-- Assets/Adjust/Native/iOS/AdjustUnityDelegate.mm | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Assets/Adjust/Native/iOS/AdjustUnityAppDelegate.m b/Assets/Adjust/Native/iOS/AdjustUnityAppDelegate.m index 5a4319a2..7ed977b3 100644 --- a/Assets/Adjust/Native/iOS/AdjustUnityAppDelegate.m +++ b/Assets/Adjust/Native/iOS/AdjustUnityAppDelegate.m @@ -56,7 +56,8 @@ + (IMP)swizzleOriginalSelector:(SEL)originalSelector - (BOOL)adjust_application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { - [Adjust processDeeplink:url]; + ADJDeeplink *deeplink = [[ADJDeeplink alloc] initWithDeeplink:url]; + [Adjust processDeeplink:deeplink]; return original_openURL ? original_openURL(self, _cmd, application, url, options) : YES; } @@ -65,7 +66,8 @@ - (BOOL)adjust_application:(UIApplication *)application restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler { if ([[userActivity activityType] isEqualToString:NSUserActivityTypeBrowsingWeb]) { NSURL *url = [userActivity webpageURL]; - [Adjust processDeeplink:url]; + ADJDeeplink *deeplink = [[ADJDeeplink alloc] initWithDeeplink:url]; + [Adjust processDeeplink:deeplink]; } return original_continueUserActivity ? original_continueUserActivity(self, _cmd, application, userActivity, restorationHandler) : YES; } diff --git a/Assets/Adjust/Native/iOS/AdjustUnityDelegate.mm b/Assets/Adjust/Native/iOS/AdjustUnityDelegate.mm index beb5df44..9ffe284a 100644 --- a/Assets/Adjust/Native/iOS/AdjustUnityDelegate.mm +++ b/Assets/Adjust/Native/iOS/AdjustUnityDelegate.mm @@ -59,8 +59,8 @@ + (id)getInstanceWithAttributionCallback:(AdjustDelegateAttributionCallback)attr withSelector:@selector(adjustSessionTrackingFailedWannabe:)]; } if (deferredDeeplinkCallback != nil) { - [defaultInstance swizzleOriginalSelector:@selector(adjustDeeplinkResponse:) - withSelector:@selector(adjustDeeplinkResponseWannabe:)]; + [defaultInstance swizzleOriginalSelector:@selector(adjustDeferredDeeplinkReceived:) + withSelector:@selector(adjustDeferredDeeplinkReceivedWannabe:)]; } if (skanUpdatedCallback != nil) { [defaultInstance swizzleOriginalSelector:@selector(adjustSkanUpdatedWithConversionData:) @@ -270,7 +270,7 @@ - (void)adjustSessionTrackingFailedWannabe:(ADJSessionFailure *)sessionFailureRe _sessionFailureCallback(charArraySessionFailure); } -- (BOOL)adjustDeeplinkResponseWannabe:(NSURL *)deeplink { +- (BOOL)adjustDeferredDeeplinkReceivedWannabe:(NSURL *)deeplink { if (_deferredDeeplinkCallback != nil) { NSString *stringDeeplink = [deeplink absoluteString]; const char* charDeeplink = [stringDeeplink UTF8String]; From 904e66e8237bc51ddb473498332838e0149c628a Mon Sep 17 00:00:00 2001 From: uerceg Date: Mon, 19 Aug 2024 20:14:51 +0200 Subject: [PATCH 3/6] docs: remove obsolete docs --- doc/chinese/README.md | 1081 ------------------- doc/chinese/sdk-to-sdk/mopub.md | 24 - doc/english/migration/migrate.md | 95 -- doc/english/plugins/imei.md | 44 - doc/english/plugins/oaid.md | 36 - doc/english/sdk-to-sdk/admob.md | 32 - doc/english/sdk-to-sdk/applovin-max.md | 40 - doc/english/sdk-to-sdk/helium-chartboost.md | 34 - doc/english/sdk-to-sdk/ironsource.md | 32 - doc/english/sdk-to-sdk/mopub.md | 24 - doc/english/sdk-to-sdk/unity.md | 38 - doc/japanese/README.md | 1081 ------------------- doc/japanese/sdk-to-sdk/mopub.md | 24 - doc/korean/README.md | 1081 ------------------- doc/korean/sdk-to-sdk/mopub.md | 24 - 15 files changed, 3690 deletions(-) delete mode 100644 doc/chinese/README.md delete mode 100644 doc/chinese/sdk-to-sdk/mopub.md delete mode 100644 doc/english/migration/migrate.md delete mode 100644 doc/english/plugins/imei.md delete mode 100644 doc/english/plugins/oaid.md delete mode 100644 doc/english/sdk-to-sdk/admob.md delete mode 100644 doc/english/sdk-to-sdk/applovin-max.md delete mode 100644 doc/english/sdk-to-sdk/helium-chartboost.md delete mode 100644 doc/english/sdk-to-sdk/ironsource.md delete mode 100644 doc/english/sdk-to-sdk/mopub.md delete mode 100644 doc/english/sdk-to-sdk/unity.md delete mode 100644 doc/japanese/README.md delete mode 100644 doc/japanese/sdk-to-sdk/mopub.md delete mode 100644 doc/korean/README.md delete mode 100644 doc/korean/sdk-to-sdk/mopub.md diff --git a/doc/chinese/README.md b/doc/chinese/README.md deleted file mode 100644 index 12faad74..00000000 --- a/doc/chinese/README.md +++ /dev/null @@ -1,1081 +0,0 @@ -## 摘要 - -这是 Adjust™ 的 Unity SDK。它支持 iOS、安卓、Windows Store 8.1、Windows Phone 8.1 以及 Windows 10。您可以在 [adjust.com] 中了解更多有关 Adjust™ 的信息。 - -**注意**:从版本 **4.12.0** 开始,Adjust Unity SDK 与 **Unity 5 及以上**版本兼容。 - -**注意**:从版本 **4.19.2** 开始,Adjust Unity SDK 与 **Unity 2017.1.1 及以上**版本兼容。 - -**注意**:从版本 **4.21.0** 开始,Adjust Unity SDK 与 **Unity 2017.4.1 及以上**版本兼容。 - -阅读本文的其他语言版本:[English][en-readme]、[中文][zh-readme]、[日本語][ja-readme]、[한국어][ko-readme]。 - -## 目录 - -### 快速入门 - - * [入门指南](#qs-getting-started) - * [获取 SDK](#qs-get-sdk) - * [添加 SDK 至您的项目](#qs-add-sdk) - * [集成 SDK 至您的应用](#qs-integrate-sdk) - * [Adjust 日志记录](#qs-adjust-logging) - * [Google Play 服务](#qs-gps) - * [ProGuard 设置](#qs-android-proguard) - * [Google Install Referrer](#qs-install-referrer) - * [华为 Referrer API](#qs-huawei-referrer-api) - * [创建后流程](#qs-post-build-process) - * [iOS 创建后流程](#qs-post-build-ios) - * [安卓创建后流程](#qs-post-build-android) - * [SDK 签名](#qs-sdk-signature) - -### 深度链接 - - * [深度链接概览](#dl) - * [标准深度链接](#dl-standard) - * [延迟深度链接](#dl-deferred) - * [安卓应用中的深度链接处理](#dl-app-android) - * [iOS 应用中的深度链接处理](#dl-app-ios) - -### 事件跟踪 - - * [跟踪事件](#et-tracking) - * [跟踪收入](#et-revenue) - * [收入重复数据删除](#et-revenue-deduplication) - * [验证应用内购买](#et-purchase-verification) - -### 自定义参数 - - * [自定义参数概览](#cp) - * [事件参数](#cp-event-parameters) - * [事件回传参数](#cp-event-callback-parameters) - * [事件合作伙伴参数](#cp-event-partner-parameters) - * [事件回传标识符](#cp-event-callback-id) - * [会话参数](#cp-session-parameters) - * [会话回传参数](#cp-session-callback-parameters) - * [会话合作伙伴参数](#cp-session-partner-parameters) - * [延迟启动](#cp-delay-start) - -### 其他功能 - - * [AppTrackingTransparency 框架](#ad-att-framework) - * [应用跟踪授权包装器](#ad-ata-wrapper) - * [SKAdNetwork 框架](#ad-skadn-framework) - * [推送标签(卸载跟踪)](#ad-push-token) - * [归因回传](#ad-attribution-callback) - * [广告收入跟踪](#af-ad-revenue) - * [订阅跟踪](#ad-subscriptions) - * [会话与事件回传](#ad-session-event-callbacks) - * [用户归因](#ad-user-attribution) - * [设备 ID](#ad-device-ids) - * [iOS 广告标识符](#ad-idfa) - * [Google Play 服务广告标识符](#ad-gps-adid) - * [Amazon 广告标识符](#ad-amazon-adid) - * [Adjust 设备标识符](#ad-adid) - * [预安装的跟踪链接](#ad-pre-installed-trackers) - * [离线模式](#ad-offline-mode) - * [禁用跟踪](#ad-disable-tracking) - * [事件缓冲](#ad-event-buffering) - * [后台跟踪](#ad-background-tracking) - * [GDPR 被遗忘权](#ad-gdpr-forget-me) - * [禁用第三方分享](#ad-disable-third-party-sharing) - -### 测试与故障排查 - * [iOS 中的调试信息](#tt-debug-ios) - -### 许可 - * [许可协议](#license) - - -## 快速入门 - -### 入门指南 - -如需将 Adjust SDK 集成到您的 Unity 项目中,请按照以下步骤操作。 - -### 获取 SDK - -您可以在我们的 [发布页面][releases] 下载最新版本。 - -### 添加 SDK 至您的项目 - -在 Unity 编辑器中打开您的项目,前往 `Assets → Import Package → Custom Package`,然后选择已下载的 Unity 包文件。 - -![][import_package] - -### 集成 SDK 至您的应用 - -将 `Assets/Adjust/Adjust.prefab` 的预设(Prefab)添加至第一个场景。 - -您可以在预设检视器 (Inspector)菜单中编辑 Adjust 脚本参数,以设置以下选项: - -* [手动启动](#start-manually) -* [事件缓冲](#event-buffering) -* [后台发送](#background-tracking) -* [启动延迟深度链接](#deeplinking-deferred-open) -* [应用识别码](#app-token) -* [日志级别](#adjust-logging) -* [环境](#environment) - -![][adjust_editor] - -利用实际的应用识别码替换`{YourAppToken}`。在控制面板中按照 [以下步骤](https://help.adjust.com/en/dashboard/apps/app-settings#view-your-app-token) 即可找到该识别码。 - -取决于您创建应用的目的是测试还是生产,将`环境`设置更改为 `Sandbox` 或 `Production`。 - -**重要提示:**如果您或其他人正在测试您的应用,请将该值设置为 “Sandbox”。在发布应用之前,请务必将环境设置为“Production”。如果再次开始测试,请将其重新设置为 “Sandbox”。此外还请注意,在默认情况下,Adjust 控制面板会显示应用的 Production (生产) 流量。如果您想查看在 Sandbox 模式下测试时产生的流量,请务必在控制面板中切换到 sandbox (沙盒) 流量视图。 - -我们利用环境设置来区分真实流量和来自测试设备的人工流量。请务必随时更新您的环境设置。 - -如果您不希望 Adjust SDK 随应用的唤醒 (Awake) 事件自动启动,请选择“手动启动”。利用此选项,您可以通过调用以 `AdjustConfig` 对象作为参数的 `Adjust.start` 方法,从代码内部初始化并启动 Adjust SDK。 - -您可以利用显示这些选项的按钮菜单,在此处找到示例场景:`Assets/Adjust/ExampleGUI/ExampleGUI.unity`。 - -此场景的来源位于 `Assets/Adjust/ExampleGUI/ExampleGUI.cs`。 - -### Adjust 日志记录 - -将“日志级别”的值更改为以下其中一项,即可增加或减低所看到的日志精细度: - -- `Verbose` - 启用所有日志 -- `Debug` - 禁用详细日志 -- `Info` - 禁用调试日志(默认) -- `Warn` - 禁用信息日志 -- `Error` - 禁用警告日志 -- `Assert` - 禁用错误日志 -- `Suppress` - 禁用所有日志 - -如果要在手动初始化 Adjust SDK 时禁用所有导出的日志,请将日志级别设置为禁止 (Suppress),并对 `AdjustConfig` 对象使用构造函数。此函数会打开一个布尔参数,您可以在其中输入是否支持禁止日志级别: - -```cs -string appToken = "{YourAppToken}"; -AdjustEnvironment environment = AdjustEnvironment.Sandbox; - -AdjustConfig config = new AdjustConfig(appToken, environment, true); -config.setLogLevel(AdjustLogLevel.Suppress); - -Adjust.start(config); -``` - -如果您的目标对象为 Windows,并希望以已发布 (Released) 模式查看我们库中的编译日志,请在以调试 (Debug) 模式进行测试时,将导出的日志重定向至您的应用。 - -启动 SDK 前,请在 `AdjustConfig` 实例中调用方法 `setLogDelegate`。 - -```cs -//... -adjustConfig.setLogDelegate(msg => Debug.Log(msg)); -//... -Adjust.start(adjustConfig); -``` - -### Google Play 服务 - -自 2014 年 8 月 1 日起,Google Play 商店中的应用必须使用 [Google 广告 ID][google_ad_id] 来对设备进行唯一标识。为了使 Adjust SDK 能够使用 Google 广告 ID,请集成 [Google Play 服务][google_play_services]。为此,请将 `google-play-services_lib` 文件夹(安卓 SDK 的一部分)复制到 Unity 项目的 `Assets/Plugins/Android` 文件夹中。 - -下载安卓 SDK 的方法主要有两种。使用“安卓 SDK 管理器”的所有工具都会为下载和安装安卓 SDK 工具提供快速链接。安装完成后,您可以在 `SDK_FOLDER/extras/google/google_play_services/libproject/` 文件夹中找到这些库。 - -![][android_sdk_location] - -如果您使用的工具不带“安卓 SDK 管理器”,请下载官方独立的 [安卓 SDK][android_sdk_download]。下一步,请按照 `SDK Readme.txt` 自述文件中的说明下载安卓 SDK 工具,该自述文件由 Google 提供,位于安卓 SDK 文件夹中。 - -**更新**:Google 利用最新的安卓 SDK 版本,更改了 SDK 根文件夹中的 Google Play 服务文件夹的结构。现在看上去像这样: - -![][android_sdk_location_new] - -现在,您只需添加 Google Play 服务库中的地下室(basement)来对应 Adjust SDK 的需求。为此,请将 `play-services-basement-x.y.z.aar` 文件添加到您的 `Assets/Plugins/Android` 文件夹中。 - -使用 Google Play 服务库 15.0.0,Google 已将获取 Google 广告 ID 所需的类移至 `play-services-ads-identifier` 包。如果您使用的库版本为 15.0.0 及更高版本,请将此包添加到您的应用中。完成后,请进行测试以确保 Adjust SDK 正确获取 Google 广告 ID;我们注意到有不一致的情况产生,然而具体视您所用的 Unity 集成开发环境 (IDE) 版本而定。 - -#### 针对 Google 广告 ID 的测试 - -要检查 Adjust SDK 是否正在接收 Google 广告 ID,请在启动应用时将 SDK 配置为以测试 (Sandbox) 模式运行,并将日志级别设置为详细 (Verbose)。之后,在应用中跟踪会话或事件,并查看详细日志中记录的参数列表。如果您看到 `gps_adid` 参数,则我们的 SDK 已成功读取 Google 广告 ID。 - -如果在获取 Google 广告 ID 时遇到任何问题,请在我们的 Github 库中提问,或联系 support@adjust.com。 - -### ProGuard 设置 - -如果您使用的是 Proguard,请将如下代码行添加至您的 Proguard 文件: - -``` --keep public class com.adjust.sdk.** { *; } --keep class com.google.android.gms.common.ConnectionResult { - int SUCCESS; -} --keep class com.google.android.gms.ads.identifier.AdvertisingIdClient { - com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context); -} --keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info { - java.lang.String getId(); - boolean isLimitAdTrackingEnabled(); -} --keep public class com.android.installreferrer.** { *; } -``` - -### Google Install Referrer - -为了归因安卓应用的安装,Adjust 需要获取有关 Google Install Referrer 的信息。您可以使用 **Google Play Referrer API** 或通过广播接收器捕获 **Google Play 商店 intent ** 的方式,将应用设置为获取这些信息。 - -Google 引入 Google Play Referrer API 是为了提供一种比 Google Play 商店 intent 更可靠、更安全的方法,以获取 Install Referrer 信息并帮助归因供应商对抗点击劫持。Google Play 商店 intent 将暂时与 API 并行存在,但在将来会被弃用。我们鼓励大家对此给予支持。 - -Adjust 创建后流程可以捕获 Google Play 商店 intent;您可以采取一些其他步骤来加大对新 Google Play Referrer API 的支持。 - -要加大对 Google Play Referrer API 的支持,请从 Maven 库中下载 [Install Referrer 库][install-referrer-aar],并将 AAR 文件放入 `Plugins/Android` 文件夹中。 - -#### 华为 Referrer API - -从版本 4.21.1 开始,Adjust SDK 将支持对装有华为 App Gallery 10.4 或更新版本的设备进行安装跟踪。无需其他集成步骤,就可以开始使用华为 Referrer API。 - -### 创建后流程 - -如需完成应用创建流程,Adjust Unity 包需执行自定义创建后操作,以确保 Adjust SDK 可以在应用内正常运行。 - -此流程由 `AdjustEditor.cs` 中的 `OnPostprocessBuild` 方法执行。导出的日志消息会写入 Unity IDE 控制台输出窗口。 - -#### iOS 创建后流程 - -若要正确执行 iOS 创建后流程,请使用 Unity 5 及更高版本,并安装“iOS 创建支持”。iOS 创建后流程会对生成的 Xcode 项目作出以下更改: - -- 添加 `iAd.framework`(Apple Search Ads 跟踪所需) -- 添加 `AdSupport.framework`(读取 IDFA 所需) -- 添加 `CoreTelephony.framework`(读取设备所连接到的网络类型所需) -- 添加其他链接器标记 `-ObjC`(在创建期间识别 Adjust Objective-C 类别所需) -- 启用“Objective-C 例外情况” - -如果您启用了 iOS 14 支持 (`Assets/Adjust/Toggle iOS 14 Support`),iOS 创建后流程会向您的 Xcode 项目中加入两个额外的框架: - -- 添加 `AppTrackingTransparency.framework` (用来请求用户授予跟踪许可,并获知用户许可状态) -- 添加 `StoreKit.framework`(与 SKAdNetwork 框架通讯所需) - -#### 安卓创建后流程 - -安卓创建后流程会对位于 `Assets/Plugins/Android/` 中的 `AndroidManifest.xml` 文件进行更改,还会检查安卓插件文件夹中是否存在 `AndroidManifest.xml` 文件。如果该文件不存在,该流程会从我们兼容的清单文件 `AdjustAndroidManifest.xml` 中创建一个副本。如果已经有 `AndroidManifest.xml` 文件,该流程会进行以下更改: - -- 添加 “`INTERNET” 权限(互联网连接所需) -- 添加 `ACCESS_WIFI_STATE` 权限(未通过 Play Store 分发应用时所需) -- 添加 `ACCESS_NETWORK_STATE` 权限 (读取设备所连接到的网络类型所需) -- 添加 `BIND_GET_INSTALL_REFERRER_SERVICE` 权限(新的 Google Install Referrer API 正常运作所需) -- 添加 Adjust 广播接收器(通过 Google Play 商店 intent 获取 Install Referrer 信息时所需)有关更多详情,请查阅官方的 [安卓 SDK 自述文件][安卓]。 - -**注意:**如果您使用自己的广播接收器来处理 `INSTALL_REFERRER` intent,则无需将 Adjust 广播接收器添加到清单文件中。请将其删除,但是按照 [安卓指南][android-custom-receiver] 中的说明,将调用添加到自己接收器中的 Adjust 广播接收器。 - -### SDK 签名 - -账户管理员可以为您激活 Adjust SDK 签名。如果您希望使用该功能,请发送电子邮件至 support@adjust.com 联系 Adjust 支持部门。 - -如果您的账户已启用 SDK 签名,并且您可访问控制面板中的应用密钥,则将所有的密钥参数(`secretId、`info2`、`info3`、`info4`)添加至 `AdjustConfig` 实例的 `setAppSecret` 方法: - -```cs -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setAppSecret(secretId, info1, info2, info3, info4); - -Adjust.start(adjustConfig); -``` - -现在,SDK 签名已集成到您的应用中。 - - -## 深度链接 - -### 深度链接概览 - -**我们支持在 iOS 和安卓平台上使用深度链接。** - -如果您使用的是已启用深度链接的 Adjust 跟踪链接,则可以接收有关深度链接 URL 及其内容的信息。不论用户的设备上已经安装了应用(标准深度链接)还是尚未安装应用(延迟深度链接),用户都可以与 URL 交互。 - -利用标准深度链接,您可以通过安卓平台接收深度链接内容;但是,安卓并不自动提供对延迟深度链接的支持。如需访问延迟深度链接内容,您可以使用 Adjust SDK。 - -在生成的 Xcode 项目(适用于 iOS)和安卓 Studio/Eclipse 项目(适用于安卓)中,以 **原生级别** 在应用中设置深度链接处理。 - -### 标准深度链接 - -与标准深度链接相关的信息无法以 Unity C# 代码的形式提供给您。一旦您启用应用来处理深度链接,您将在原生级别获取有关深度链接的信息。下面介绍针对 [安卓](#dl-app-android) 和 [iOS](#dl-app-ios) 应用启用深度链接的方法,您可在其中获得更多信息。 - -### 延迟深度链接 - -为了获取有关延迟深度链接的内容信息,请在 `AdjustConfig` 对象上设置回传方法。该方法将接收一个“字符串”参数,其中将传送 URL 内容。通过调用 `setDeferredDeeplinkDelegate` 方法,在 config 对象上设置该方法: - -```cs -// ... - -private void DeferredDeeplinkCallback(string deeplinkURL) { - Debug.Log("Deeplink URL: " + deeplinkURL); - - // ... -} - -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setDeferredDeeplinkDelegate(DeferredDeeplinkCallback); - -Adjust.start(adjustConfig); -``` - -利用延迟深度链接,您可以在 `AdjustConfig` 对象上进行一个额外设置。一旦 Adjust SDK 获得延迟深度链接信息,您便可选择我们的 SDK 是否应该打开 URL。您可在 config 对象上调用 `setLaunchDeferredDeeplink` 方法来设置此选项: - -```cs -// ... - -private void DeferredDeeplinkCallback(string deeplinkURL) { - Debug.Log ("Deeplink URL: " + deeplinkURL); - - // ... -} - -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setLaunchDeferredDeeplink(true); -adjustConfig.setDeferredDeeplinkDelegate(DeferredDeeplinkCallback); - -Adjust.start(adjustConfig); -``` - -如果未进行任何设置,**Adjust SDK默认情况下,将始终尝试打开 URL**。 - -为了让您的应用支持深度链接,请为每个受支持的平台设置方案。 - -### 安卓应用中的深度链接处理 - -如需在原生级别设置安卓应用中的深度链接处理,请按照我们官方 [安卓 SDK 自述文件][android-deeplinking] 中的说明进行操作。 - -此设置应在原生安卓 Studio/Eclipse 项目中完成。 - -### iOS 应用中的深度链接处理 - -**此设置应在原生 Xcode 项目中完成。** - -如需在原生级别设置 iOS 应用中的深度链接处理,请使用原生的 Xcode 项目并按照我们官方 [iOS SDK 自述文件][ios-deeplinking] 中的说明进行操作。 - -## 事件跟踪 - -### 跟踪事件 - -您可以使用 Adjust 来跟踪应用中的任何事件。如果您想要跟踪某个按钮的每次点击,请在您的控制面板中 [创建新的事件识别码](https://help.adjust.com/en/tracking/in-app-events/basic-event-setup#generate-event-tokens-in-the-adjust-dashboard)。假设事件识别码为 `abc123`。在按钮的点击处理程序方法中,添加以下行来跟踪点击: - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); -Adjust.trackEvent(adjustEvent); -``` - -### 跟踪收入 - -如果您的用户通过与广告互动或进行应用内购买的方式为您带来收入,您可以通过事件来跟踪此类收入:例如:如果增加一次点击值一欧分,您可以这样来跟踪收入事件: - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); -adjustEvent.setRevenue(0.01, "EUR"); -Adjust.trackEvent(adjustEvent); -``` - -设置货币识别码后,Adjust 会使用 openexchange API 自动将收入转化为您所选的报告收入。[在此处了解更多有关货币兑换的信息](http://help.adjust.com/tracking/revenue-events/currency-conversion)。 - -如果您想要跟踪应用内购买,请确保仅在购买完成且商品已购买后才调用 `trackEvent`。要想避免跟踪用户实际未产生的收入,这点十分重要。 - - -### 收入重复数据删除 - -添加可选的交易 ID,以避免跟踪重复的收入。SDK 会记住最近的十个交易 ID,并跳过交易 ID 重复的收入事件。这对于跟踪应用内购买尤其有用。 - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.setRevenue(0.01,"EUR"); -adjustEvent.setTransactionId("transactionId"); - -Adjust.trackEvent(adjustEvent); -``` - -### 应用内收入验证 - -利用服务器端收据验证工具 [Adjust 的收入验证][unity-purchase-sdk] 验证应用内购买。 - -## 自定义参数 - -### 自定义参数概览 - -除了 Adjust SDK 默认收集的数据点之外,您还可以使用 Adjust SDK 进行跟踪,并根据需要添加任意数量的自定义值(用户 ID、产品 ID 等)到事件或会话中。自定义参数仅作为原始数据提供,且 **不会** 出现在 Adjust 控制面板中。 - -针对自己内部使用而收集的值,使用 [回传参数](https://help.adjust.com/en/manage-data/export-raw-data/callbacks/best-practices-callbacks),并对与外部合作伙伴共享的值使用合作伙伴参数。如果某个值(如产品 ID)同时由于内外部合作伙伴使用而受到跟踪,我们建议同时使用回传和合作伙伴参数来跟踪该值。 - -### 事件参数 - -### 事件回传参数 - -如果您在 [控制面板] 中为事件标记了回传 URL,则无论事件何时受到跟踪,我们都会向该 URL 发送 GET 请求。您还可以在对象中放入键值对,然后将其传递至 `trackEvent` 方法。然后我们会将这些参数附加至您的回传 URL。 - -例如,如果您已注册 URL `http://www.example.com/callback`,则您将这样跟踪事件: - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.addCallbackParameter("key", "value"); -adjustEvent.addCallbackParameter("foo", "bar"); - -Adjust.trackEvent(adjustEvent); -``` - -在这种情况下,我们会跟踪该事件并发送请求至: - -``` -http://www.example.com/callback?key=value&foo=bar -``` - -Adjust 支持各种占位符,例如用于 iOS 的 `{idfa}` 或用于安卓的 `{gps_adid}`,这些占位符可用作参数值。使用此示例,我们会在产生的回传中将占位符替换为当前设备的 IDFA/Google Play 服务 ID。了解更多关于 [实时回传](https://help.adjust.com/en/manage-data/export-raw-data/callbacks) 的信息,并查看我们完整的 [占位符](https://partners.adjust.com/placeholders/) 列表。 - -**注意:**我们不会存储您的任何自定义参数。我们仅将这些参数附加到您的回传中。如果您尚未针对事件注册回传,我们不会读取这些参数。 - - -### 事件合作伙伴参数 - -参数在控制面板中激活后,您可以将其发送至网络合作伙伴。了解更多关于 [模块合作伙伴](https://docs.adjust.com/en/special-partners/) 及其扩展集成的信息。 - -工作方式与回传参数相同;可以通过调用 `AdjustEvent` 实例上的 `addPartnerParameter` 方法来进行添加。 - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.addPartnerParameter("key", "value"); -adjustEvent.addPartnerParameter("foo", "bar"); - -Adjust.trackEvent(adjustEvent); -``` - -您可以在我们的 [特殊合作伙伴指南][special-partners] 中了解更多有关特殊合作伙伴以及这些集成的信息。 - -### 事件回传标识符 - -您可以为想要跟踪的每个事件添加自定义字符串标识符。我们在事件回传中报告此标识符,以便您了解哪些事件得以成功跟踪。通过调用 `AdjustEvent` 实例上的 `setCallbackId` 方法来设置标识符: - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.setCallbackId("Your-Custom-Id"); - -Adjust.trackEvent(adjustEvent); -``` - -### 会话参数 - -会话参数在本地保存,并随每个 Adjust SDK **事件和会话** 一同发送。无论您何时添加这些参数,我们都会对其进行保存(因此您无需再次添加)。添加同样的参数两次不会有任何影响。 - -可以在启动 Adjust SDK 前发送会话参数。因此,利用 [SDK 延迟](#cp-delay-start),您可以检索其他值(例如应用服务器的身份验证识别码),以便通过 SDK 的初始化一次性发送所有信息。 - -### 会话回传参数 - -您可以保存与每个 Adjust SDK 会话一同发送的事件回传参数。 - -会话回传参数的接口与事件回传参数的接口类似。通过调用 `Adjust` 实例的 `addSessionCallbackParameter` 方法来添加密钥及其值,而不是将它们添加至事件: - -```cs -Adjust.addSessionCallbackParameter("foo", "bar"); -``` - -会话回传参数与事件回传参数相合并,从而将所有信息以整体的方式进行发送;但事件回传参数的优先级高于会话回传参数。如果您添加的事件回传参数与会话回传参数有相同的密钥,我们将显示事件值。 - -您可以通过将所需的密钥传递至 `Adjust` 实例的 `removeSessionCallbackParameter` 方法来删除特定的会话回传参数。 - -```cs -Adjust.removeSessionCallbackParameter("foo"); -``` - -若要从会话回传参数中删除所有密钥及其对应的值,您可以利用 `Adjust` 实例的 `resetSessionCallbackParameters` 方法来进行重置。 - -```cs -Adjust.resetSessionCallbackParameters(); -``` - -### 会话合作伙伴参数 - -与 [会话回传参数](#cp-session-callback-parameters) 的方式一样,会话合作伙伴参数也会与触发 SDK 的每个事件或会话一同发送。 - -这些参数会传送至在 [控制面板] 中已激活相关集成的渠道合作伙伴。 - -会话合作伙伴参数接口与事件合作伙伴参数接口类似;但是,并非将密钥及其值添加至事件,而是通过调用 `Adjust` 实例的 `addSessionCallbackParameter` 方法进行添加: - -```cs -Adjust.addSessionPartnerParameter("foo", "bar"); -``` - -会话合作伙伴与事件合作伙伴参数相合并。但是,事件合作伙伴参数的优先级高于会话合作伙伴参数。如果您添加的事件合作伙伴参数与会话合作伙伴参数有相同的密钥,我们将显示事件值。 - -要删除特定的会话合作伙伴参数,请将所需的密钥传递至 `Adjust` 实例的 `removeSessionPartnerParameter` 方法。 - -```cs -Adjust.removeSessionPartnerParameter("foo"); -``` - -若要从会话合作伙伴参数中删除所有的密钥及其对应的值,请利用 `Adjust` 实例的 `resetSessionPartnerParameters` 方法来将其重置。 - -```cs -Adjust.resetSessionPartnerParameters(); -``` - -### 延迟启动 - -延迟 Adjust SDK 的启动可以为您的应用提供更充裕的时间,来接收所有您想要随安装发送的会话参数(例如:唯一标识符)。 - -利用 `AdjustConfig` 实例中的 `setDelayStart` 方法,以秒为单位设置初始延迟时间: - -```cs -adjustConfig.setDelayStart(5.5); -``` - -在此示例中,Adjust SDK 无法在 5.5 秒内发送初始安装会话和任何新事件。5.5 秒后(或您在其此期间调用 `Adjust.sendFirstPackages()`),每个会话参数会添加至延迟的安装会话和事件,并且 Adjust SDK 会照常工作。 - -您最多可以将 Adjust SDK 的启动时间延长 10 秒。 - -## 其他功能 - -将 Adjust SDK 集成到项目中后,您即可利用以下功能: - -### AppTrackingTransparency 框架 - -**注意**:此功能仅限 iOS 平台。 - -每发送一个包,Adjust 的后端就会收到下列四 (4) 种许可状态之一,了解用户是否授权分享应用相关数据,用于用户或设备跟踪: - -- Authorized (授权) -- Denied (拒绝) -- Not Determined (待定) -- Restricted (受限) - -如果设备收到了用于用户设备跟踪目的应用相关数据访问授权请求,那么返回的状态要么是 Authorized,要么是 Denied。 - -如果设备尚未收到用于用户设备跟踪目的应用相关数据访问授权请求,那么返回的状态是 Not Determined。 - -如果应用跟踪数据授权受限,那么返回的状态是 Restricted。 - -如果您不需要自定义显示的弹出对话框,SDK 拥有内置机制可在用户回复弹出对话框后接收更新后的状态。为了简便、高效地向后端发送用户许可的新状态,Adjust SDK 会提供一个应用跟踪授权方法包装器,详情请参阅下一章节 "应用跟踪授权包装器"。 - -### 应用跟踪授权包装器 - -**注意**:此功能仅限 iOS 平台。 - -您可以使用 Adjust SDK 请求用户授权,让用户允许您访问他们的应用相关数据。基于[requestTrackingAuthorizationWithCompletionHandler:](https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547037-requesttrackingauthorizationwith?language=objc)方法,Adjust SDK 打造了一个包装器,您可以定义回传方法,了解用户是否授予了数据跟踪许可。借助该包装器,只要用户回复弹出对话框,这一信息就能通过您定义的回传方式传递回来。SDK 也会通知后端用户的许可选择。`NSUInteger` 值将通过您的回传方法传递,不同值的含义如下: - -- 0: `ATTrackingManagerAuthorizationStatusNotDetermined` (授权状态待定) -- 1: `ATTrackingManagerAuthorizationStatusRestricted` (授权状态受限) -- 2: `ATTrackingManagerAuthorizationStatusDenied`(已拒绝) -- 3: `ATTrackingManagerAuthorizationStatusAuthorized`(已授权) - -要使用该包装器,您可以按照下列方法进行调用: - -```csharp -Adjust.requestTrackingAuthorizationWithCompletionHandler((status) => -{ - switch (status) - { - case 0: - // ATTrackingManagerAuthorizationStatusNotDetermined case - break; - case 1: - // ATTrackingManagerAuthorizationStatusRestricted case - break; - case 2: - // ATTrackingManagerAuthorizationStatusDenied case - break; - case 3: - // ATTrackingManagerAuthorizationStatusAuthorized case - break; - } -}); -``` - -### SKAdNetwork 框架 - -**注意**:此功能仅限 iOS 平台。 - -如果您已经安装了 Adjust iOS SDK v4.23.0 或更新版本,且您的应用在 iOS 14 端运行,那么与 SKAdNetwork 之间的通讯会默认启用,但您可以自行禁用通讯。启用状态下,Adjust 会在 SDK 初始化时自动注册 SKAdNetwork 归因。如果您在 Adjust 控制面板中对事件进行了接收转化值设置,那么 Adjust 后端就会将转化值数据发送给 SDK。然后 SDK 会设定转化值。Adjust 收到 SKAdNetwork 回传数据后,会在控制面板中予以显示。 - -如果您不希望 Adjust SDK 自动与 SKAdNetwork 通讯,可以针对配置对象调用如下方法: - -```csharp -adjustConfig.deactivateSKAdNetworkHandling(); -``` - -### 推送标签(卸载跟踪) - -推送标签用于受众分群工具和客户回传;也是跟踪卸载和重装所需的信息。 - -如需向我们发送推送通知标签,请在获取应用的推送通知标签(或每当其值更改时)时,调用 `Adjust` 实例上的 `setDeviceToken` 方法: - -```cs -Adjust.setDeviceToken("YourPushNotificationToken"); -``` - -### 归因回传 - -您可以设置一个回传来获取归因变更的通知。我们考虑到归因有各种不同的来源,所以我们异步提供这些信息。与第三方共享您的任何数据之前,请务必考虑 [适用的归因数据政策][attribution_data]。 - -请按照以下步骤在您的应用程序中添加可选的回传: - -1. 创建一个带有委托 `Action` 签名的方法。 - -2. 创建 `AdjustConfig` 对象后,利用之前创建的方法调用 `adjustConfig.setAttributionChangedDelegate`。您也可以使用带有相同签名的 lambda。 - -3. 如果不是使用 `Adjust.prefab`,而是添加了 `Adjust.cs` 脚本到另一个 `GameObject`,请务必将 `GameObject` 的名称作为 `AdjustConfig.setAttributionChangedDelegate` 的第二参数来传递。 - -因为使用了 `AdjustConfig` 实例来配置回传,所以请在调用 `Adjust.start` 前调用 `adjustConfig.setAttributionChangedDelegate`。 - -```cs -using com.adjust.sdk; - -public class ExampleGUI : MonoBehaviour { - void OnGUI() { - if (GUI.Button(new Rect(0, 0, Screen.width, Screen.height), "callback")) { - AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); - adjustConfig.setLogLevel(AdjustLogLevel.Verbose); - adjustConfig.setAttributionChangedDelegate(this.attributionChangedDelegate); - - Adjust.start(adjustConfig); - } - } - - public void attributionChangedDelegate(AdjustAttribution attribution) { - Debug.Log("Attribution changed"); - - // ... - } -} -``` - -SDK 收到最终归因数据后,会调用回传函数。您可以在回传函数中利用“归因参数”。以下是其属性的快速摘要: - -- `string trackerToken` 当前归因的跟踪码 -- `string trackerName` 当前归因的跟踪链接名称 -- `string network` 当前归因的渠道分组级别 -- `string campaign` 当前归因的推广活动分组级别 -- `string adgroup` 当前归因的广告组分组级别 -- `string creative` 当前归因的素材分组级别 -- `string clickLabel` 当前归因的点击标签 -- `string adid` Adjust 设备标识符 - -### 广告收入跟踪 - -您可以通过使用以下方法,利用 Adjust SDK 对广告收入信息进行跟踪: - -```csharp -Adjust.trackAdRevenue(source, payload); -``` - -您需要传递的方法参数包括: - --`source` - 来源,表明广告收入信息来源的“字符串”对象。 --`payload` -- 负载,包含字符串形式广告收入 JSON 的“字符串”对象。 - -目前,我们支持以下`source` 参数值: - -- `AdjustConfig.AdjustAdRevenueSourceMopub` - 代表 [MoPub 聚合平台][sdk2sdk-mopub] - -### 订阅跟踪 - -**注意**:此功能仅适用于 SDK 4.22.0 及以上版本。 - -您可以用 Adjust SDK 跟踪 App Store 和 Play 应用商店的订阅,并验证这些订阅是否有效。订阅购买成功后,请向 Adjust SDK 进行如下调用: - -**针对 App Store 订阅:** - -```csharp -AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription( - price, - currency, - transactionId, - receipt); -subscription.setTransactionDate(transactionDate); -subscription.setSalesRegion(salesRegion); - -Adjust.trackAppStoreSubscription(subscription); -``` - -**针对 Play 应用商店订阅:** - -```csharp -AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription( - price, - currency, - sku, - orderId, - signature, - purchaseToken); -subscription.setPurchaseTime(purchaseTime); - -Adjust.trackPlayStoreSubscription(subscription); -``` - -针对 App Store 订阅的订阅跟踪参数: - -- [price](https://developer.apple.com/documentation/storekit/skproduct/1506094-price?language=objc) -- currency (您需要发送 [priceLocale](https://developer.apple.com/documentation/storekit/skproduct/1506145-pricelocale?language=objc) 对象的 [currencyCode](https://developer.apple.com/documentation/foundation/nslocale/1642836-currencycode?language=objc) ) -- [transactionId](https://developer.apple.com/documentation/storekit/skpaymenttransaction/1411288-transactionidentifier?language=objc) -- [receipt](https://developer.apple.com/documentation/foundation/nsbundle/1407276-appstorereceipturl) -- [transactionDate](https://developer.apple.com/documentation/storekit/skpaymenttransaction/1411273-transactiondate?language=objc) -- salesRegion (您需要发送 [priceLocale](https://developer.apple.com/documentation/storekit/skproduct/1506145-pricelocale?language=objc) 对象的 [countryCode](https://developer.apple.com/documentation/foundation/nslocale/1643060-countrycode?language=objc) ) - -针对 Play 应用商店订阅的订阅跟踪参数: - -- [price](https://developer.android.com/reference/com/android/billingclient/api/SkuDetails#getpriceamountmicros) -- [currency](https://developer.android.com/reference/com/android/billingclient/api/SkuDetails#getpricecurrencycode) -- [sku](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getsku) -- [orderId](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getorderid) -- [signature](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getsignature) -- [purchaseToken](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getpurchasetoken) -- [purchaseTime](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getpurchasetime) - -**注意:** Adjust SDK 提供的订阅跟踪 API 需要所有参数都以 `string` (字符串) 值的形式发送。在跟踪订阅前,API 需要您将上文中提到的参数发送给订阅对象。Unity 中处理应用购买的库有多种,每一种都会在订阅购买成功完成时,以具体的格式返回上文描述的信息。请找到处理应用购买的库,在库返回的响应中找到这些参数,提取参数值,并将参数值以字符串值 (string values) 的形式发送给 Adjust API。 - -与事件跟踪一样,您也可以向订阅对象附加回传和合作伙伴参数: - -**针对 App Store 订阅:** - -```csharp -AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription( - price, - currency, - transactionId, - receipt); -subscription.setTransactionDate(transactionDate); -subscription.setSalesRegion(salesRegion); - -// add callback parameters -subscription.addCallbackParameter("key","value"); -subscription.addCallbackParameter("foo","bar"); - -// add partner parameters -subscription.addPartnerParameter("key","value"); -subscription.addPartnerParameter("foo","bar"); - -Adjust.trackAppStoreSubscription(subscription); -``` - -**针对 Play 应用商店订阅:** - -```csharp -AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription( - price, - currency, - sku, - orderId, - signature, - purchaseToken); -subscription.setPurchaseTime(purchaseTime); - -// add callback parameters -subscription.addCallbackParameter("key","value"); -subscription.addCallbackParameter("foo","bar"); - -// add partner parameters -subscription.addPartnerParameter("key","value"); -subscription.addPartnerParameter("foo","bar"); - -Adjust.trackPlayStoreSubscription(subscription); -``` - -### 会话和事件回传 - -您可以设置各种回传,以通知您成功和失败的事件和/或会话。 - -请按照以下步骤为跟踪成功的事件添加回传函数: - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setEventSuccessDelegate(EventSuccessCallback); - -Adjust.start(adjustConfig); - -// ... - -public void EventSuccessCallback(AdjustEventSuccess eventSuccessData) { - // ... -} -``` - -为跟踪失败的事件添加以下回传函数: - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setEventFailureDelegate(EventFailureCallback); - -Adjust.start(adjustConfig); - -// ... - -public void EventFailureCallback(AdjustEventFailure eventFailureData) { - // ... -} -``` - -对于跟踪成功的会话: - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setSessionSuccessDelegate(SessionSuccessCallback); - -Adjust.start(adjustConfig); - -// ... - -public void SessionSuccessCallback (AdjustSessionSuccess sessionSuccessData) { - // ... -} -``` - -对于跟踪失败的会话: - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setSessionFailureDelegate(SessionFailureCallback); - -Adjust.start(adjustConfig); - -// ... - -public void SessionFailureCallback (AdjustSessionFailure sessionFailureData) { - // ... -} -``` - -SDK 尝试向服务器发送包后,将会调用回传函数。在回传中,您可以访问专门用于回传的响应数据对象。会话响应数据属性的摘要如下: - -- `string Message` 来自服务器的消息或 SDK 记录的错误 -- `string Timestamp` 服务器时间戳 -- `string Adid` 由 Adjust 提供的设备唯一标识符 -- `Dictionary JsonResponse` JSON对象及服务器响应 - -两个事件响应数据对象都包含: - -- `string EventToken` 跟踪的包为事件时的事件识别码 -- `string CallbackId` 为事件对象设置的自定义回传 ID - -事件和会话都跟踪失败的对象也包含: - -- `bool WillRetry` 表示稍后将尝试重新发送包 - -### 用户归因 - -只要归因信息发生更改,就会触发此回传,如归因回传。想要随时访问用户当前的归因信息,您可通过调用 `Adjust` 实例的以下方法来实现: - -```cs -AdjustAttribution attribution = Adjust.getAttribution(); -``` - -**注意**:只有在我们的后台跟踪到应用安装并触发归因回传后,您才能获取当前的归因信息。因此,在 SDK 经过初始化以及归因回传触发前,您无法访问用户的归因值。 - -### 设备 ID - -Adjust SDK 支持您接收设备标识符。 - -### iOS 广告标识符 - -如需获取 IDFA,请调用 `Adjust` 实例的函数 `getIdfa`: - -```cs -string idfa = Adjust.getIdfa(); -``` - -### Google Play 服务广告标识符 - -Google 广告 ID 只能在后台线程中读取。如果您利用 `Action` 委托调用 `Adjust` 实例的 `getGoogleAdId` 方法,则在任何情况下都能成功: - -```cs -Adjust.getGoogleAdId((string googleAdId) => { - // ... -}); -``` - -现在,您将能够以变量 `googleAdId` 来访问 Google 广告 ID。 - -### Amazon 广告标识符 - -如果您需要获取 Amazon 广告 ID,请调用` Adjust` 实例的 `getAmazonAdId` 方法: - -```cs -string amazonAdId = Adjust.getAmazonAdId(); -``` - -### Adjust 设备标识符 - -我们的后台会为安装了您应用的每台设备,生成唯一的 Adjust 设备标识符(称为 `adid`)。为了获得此标识符,请调用 `Adjust` 实例的此方法: - -```cs -String adid = Adjust.getAdid(); -``` - -只有在我们的后台跟踪到应用安装后,您才能获取有关 adid 的信息。因此,在 SDK 经过初始化以及成功跟踪到应用安装前,您无法访问 adid 值。 - -### 预安装跟踪链接 - -如需使用 Adjust SDK 来识别已在设备中预安装应用的用户,请按照以下步骤操作: - -1. 在 [控制面板] 中创建新的跟踪链接。 -2. 设置 ``AdjustConfig` 的默认跟踪链接: - - ```cs - AdjustConfig adjustConfig = new AdjustConfig(appToken, environment); - adjustConfig.setDefaultTracker("{TrackerToken}"); - Adjust.start(adjustConfig); - ``` - - 用您在步骤 2 中创建的跟踪码替换 `{TrackerToken}`。例如 `{abc123}` - -尽管控制面板中显示的是跟踪链接(包括 `http://app.adjust.com/`),但在源代码中,您应该仅输入六个或七个字符的识别码,而不是整个 URL。 - -3. 创建并运行应用。您应该可以在导出的日志中看到以下行: - - ``` - 默认跟踪链接:'abc123' - ``` - -### 脱机模式 - -脱机模式会暂停向我们的服务传输数据,但会保留要在以后发送的跟踪数据。Adjust SDK 处于脱机模式时,所有信息都会保存在一个文件中。请注意不要在脱机模式下触发太多事件。 - -调用参数为 `true` 的 `setOfflineMode` 即可激活脱机模式。 - -```cs -Adjust.setOfflineMode(true); -``` - -调用参数为 `false` 的 `setOfflineMode` 即可禁用脱机模式。当您将 Adjust SDK 调回在线模式后,保存的所有信息都会发送到我们的服务器,并保留正确的时间信息。 - -每次会话之间都不会记住该设置;这意味,即使应用在处于脱机模式时终止,每当 SDK 启动时,其都会处于在线模式。 - -### 禁用跟踪 - -您可以通过调用“启用”参数为 `false` 的 `setEnabled` 方法来禁用 Adjust SDK 的跟踪功能。每次会话之间都会记住该设置,但只能在第一个会话后被激活。 - -```cs -Adjust.setEnabled(false); -``` - -您可以利用 `isEnabled` 方法来查看 Adjust SDK 目前是否已激活。您始终可以通过调用`enabled` 参数设置为 `true` 的 `setEnabled` 来激活 Adjust SDK。 - -### 事件缓冲 - -如果您的应用大量使用事件跟踪,您可能想要延迟部分网络请求,以便每分钟按批量发送。您可以利用 `AdjustConfig` 实例来启用事件缓冲: - -```cs -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setEventBufferingEnabled(true); - -Adjust.start(adjustConfig); -``` - -如果未进行任何设置,事件缓冲功能将默认处于禁用状态。 - -### 后台跟踪 - -Adjust SDK 的默认行为,是当应用处于后台时暂停发送网络请求。您可以在 `AdjustConfig` 实例中更改此设置: - -```csharp -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setSendInBackground(true); - -Adjust.start(adjustConfig); -``` - -### GDPR 被遗忘权 - -根据欧盟的《一般数据保护条例》(GDPR) 第 17 条规定,用户行使被遗忘权时,您可以通知 Adjust。调用以下方法时,Adjust SDK 将会收到指示向 Adjust 后端传达用户选择被遗忘的信息: - -```cs -Adjust.gdprForgetMe(); -``` - -收到此信息后,Adjust 将清除用户数据,并且 Adjust SDK 将停止跟踪该用户。以后不会再向 Adjust 发送来自此设备的请求。 - -请注意,即便在测试环境中,此决定也是永久性的,不可逆转。 - - -### 针对特定用户禁用第三方分享 - -如果用户行使自己的权利,拒绝与合作伙伴分享自己的数据用于营销目的,但允许用于统计目的的数据分享,您现在可以向 Adjust 发送通知,告知这一情况。 - -请调用以下方法,指示 Adjust SDK 将用户禁用数据分享的选择传递给 Adjust 后端: - -```csharp -Adjust.disableThirdPartySharing(); -``` - -收到此信息后,Adjust 会停止向合作伙伴分享该用户的数据,而 Adjust SDK 将会继续如常运行。 - -## 测试与故障排查 - -### iOS 中的调试信息 - -即便使用创建后脚本,项目也可能还未准备好开箱即用。 - -如果需要,请禁用 dSYM 文件。在 `Project Navigator `(项目导航器)中,选择 `Unity-iPhone` 项目。点击 `Build Settings`(创建设置)选项卡,然后搜索“调试信息”。此时应当出现 `Debug Information Format` (调试信息格式)或 `DEBUG_INFORMATION_FORMAT` 选项。将其从 `DWARF with dSYM File` 更改为 `DWARF`。 - - -[dashboard]: http://dash.adjust.com -[adjust.com]: http://adjust.com - -[en-readme]: ../../README.md -[zh-readme]: ../chinese/README.md -[ja-readme]: ../japanese/README.md -[ko-readme]: ../korean/README.md - -[sdk2sdk-mopub]: doc/english/sdk-to-sdk/mopub.md - -[ios]: https://github.com/adjust/ios_sdk -[android]: https://github.com/adjust/android_sdk -[releases]: https://github.com/adjust/adjust_unity_sdk/releases -[google_ad_id]: https://developer.android.com/google/play-services/id.html -[ios-deeplinking]: https://github.com/adjust/ios_sdk/#deeplinking-reattribution -[attribution_data]: https://github.com/adjust/sdks/blob/master/doc/attribution-data.md -[special-partners]: https://docs.adjust.com/en/special-partners -[unity-purchase-sdk]: https://github.com/adjust/unity_purchase_sdk -[android-deeplinking]: https://github.com/adjust/android_sdk#deep-linking -[google_play_services]: http://developer.android.com/google/play-services/setup.html -[android_sdk_download]: https://developer.android.com/sdk/index.html#Other -[install-referrer-aar]: https://maven.google.com/com/android/installreferrer/installreferrer/1.0/installreferrer-1.0.aar -[android-custom-receiver]: https://github.com/adjust/android_sdk/blob/master/doc/english/referrer.md - -[menu_android]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/menu_android.png -[adjust_editor]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/adjust_editor.png -[import_package]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/import_package.png -[android_sdk_location]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/android_sdk_download.png -[android_sdk_location_new]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/android_sdk_download_new.png - -## 许可 - -### 许可管理 - -mod_pbxproj.py 文件已获得 Apache License 版本 2.0(“许可”)的授权。 -除非遵守本许可,否则不得使用此文件。 -您可以在 http://www.apache.org/licenses/LICENSE-2.0 上获取该许可的副本。 - -Adjust SDK 已获得 MIT 许可的授权。 - -Copyright (c) 2012-2020 Adjust GmbH, http://www.adjust.com - -特此授权,持有本软件及相关文档文件(“软件”)的任何人 -均可无限制地处理本软件, -其范围包括但不限于使用、复制、修改、合并、发布、分发、再许可 -和/或销售本软件的副本; -具备本软件上述权限之人员 -需遵守以下条件: - -上述版权声明和本许可声明应包含在 -本软件的所有副本或主要部分中。 - -本软件按“原样”提供, -不提供任何形式的明示或暗示保证, -包括但不限于有关适销性、适用于特定用途以及非侵权性的保证。在任何情况下, -作者或版权所有者都不应承担任何索赔、损害赔偿或其他责任, -无论是由本软件或本软件的使用或其他活动引起的 -相关或无关的合同行为、侵权行为 -或其他行为。 diff --git a/doc/chinese/sdk-to-sdk/mopub.md b/doc/chinese/sdk-to-sdk/mopub.md deleted file mode 100644 index 58facb49..00000000 --- a/doc/chinese/sdk-to-sdk/mopub.md +++ /dev/null @@ -1,24 +0,0 @@ -## 通过 Adjust SDK 跟踪 MoPub 广告收入 - -[Adjust Unity SDK 自述文件][unity-readme] - -[MoPub Unity 文档][mopub-docs] - -此功能最低 SDK 版本要求: - -- **Adjust SDK v4.18.0** -- **MoPub SDK v5.7.0** - -在实施 MoPub SDK `OnImpressionTrackedEvent` 回传方法时,请确保按照如下方式调用 Adjust SDK 的 `trackAdRevenue` 方法: - -```csharp -private void OnImpressionTrackedEvent(string adUnitId, MoPub.ImpressionData impressionData) { - // Pass impression data JSON to Adjust SDK. - Adjust.trackAdRevenue(AdjustConfig.AdjustAdRevenueSourceMopub, impressionData.JsonRepresentation); -} -``` - -如果您对 MoPub 广告收入跟踪有任何疑问,请联系您的专属客户经理,或发送邮件至 support@adjust.com。 - -[mopub-docs]: https://developers.mopub.com/publishers/unity/impression-data/ -[unity-readme]: ../../chinese/README.md diff --git a/doc/english/migration/migrate.md b/doc/english/migration/migrate.md deleted file mode 100644 index 28649ba5..00000000 --- a/doc/english/migration/migrate.md +++ /dev/null @@ -1,95 +0,0 @@ -## Migrate your Adjust SDK for Unity3d to 4.38.1 from 3.4.4 - -### Migration procedure - -Starting from version 4.0.0, the structure of this repository is adjusted to Unity 5. All files which are part of the -adjust SDK are now moved to the `Assets/Adjust` folder, since Unity 5 allows that native files can now be placed -outside of `Assets/Plugins` folder. This is done so that adjust files are no longer mixed with files you may be -keeping in `Assets/Plugins` folder. - -For migration purposes, we have prepared the Adjust SDK uninstall script written in Python (`adjust_uninstall.py`). - -Migration requires the following steps: - -1. Copy the `adjust_uninstall.py` script to your root Unity project directory and run it. This script should -delete all adjust source files from the previous SDK version you had. - -2. Depending on which Unity version you are using, import the appropriate Unity package file into your `Assets` folder. - -After this, the adjust SDK should be successfully integrated into your Unity project. - -### SDK initialization - -We have changed how you configure and start the adjust SDK. All initial setup is now done with a new -instance of the `AdjustConfig` object. The following steps should now be taken to configure the adjust SDK: - -1. Create an instance of an `AdjustConfig` config object with the app token and environment. -2. Optionally, you can now call methods of the `AdjustConfig` object to specify available options. -3. Launch the SDK by invoking `Adjust.start` with the config object. - -Here is an example of how the setup might look before and after the migration: - -##### Before - -```cs -Adjust.appDidLaunch("{YourAppToken}", AdjustUtil.AdjustEnvironment.Sandbox, AdjustUtil.LogLevel.Verbose, false); -``` - -##### After - -```cs -AdjustConfig adjustConfig = new AdjustConfig ("{YourAppToken}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel (AdjustLogLevel.Verbose); - -Adjust.start (adjustConfig); -``` - -### Event tracking - -We also introduced proper event objects that are set up before they are tracked. Again, an example of how it -might look like before and after: - -##### Before - -```cs -var parameters = new System.Collections.Generic.Dictionary (2); -parameters.Add("key", "value"); -parameters.Add("foo", "bar"); - -Adjust.trackEvent("{EventToken}", parameters); -``` - -##### After - -```cs -AdjustEvent adjustEvent = new AdjustEvent ("{EventToken}"); -adjustEvent.addCallbackParameter ("key", "value"); -adjustEvent.addCallbackParameter ("foo", "bar"); - -Adjust.trackEvent (adjustEvent); -``` - -### Revenue tracking - -Revenues are now handled like normal events. You just set a revenue and a currency to track revenues. -Note that it is no longer possible to track revenues without associated event tokens. You might need -to create an additional event token in your dashboard. - -*Please note* - the revenue format has been changed from a cent float to a whole currency-unit float. -Current revenue tracking must be adjusted to whole currency units (i.e., divided by 100) in order to -remain consistent. - -##### Before - -```cs -Adjust.trackRevenue(1.0, "{EventToken}"); -``` - -##### After - -```cs -AdjustEvent adjustEvent = new AdjustEvent ("{EventToken}"); -adjustEvent.setRevenue (0.01, "EUR"); - -Adjust.trackEvent (adjustEvent); -``` diff --git a/doc/english/plugins/imei.md b/doc/english/plugins/imei.md deleted file mode 100644 index d6975640..00000000 --- a/doc/english/plugins/imei.md +++ /dev/null @@ -1,44 +0,0 @@ -## IMEI plugin - -For specific markets, IMEI and MEID can be used for attribution on Android platform. In order to use this feature, please complete the [required steps][imei-doc] within your Adjust Dashboard and then use this plugin. - -This IMEI plugin respects the behavior of the native Adjust Android SDK in terms of device ID reading **while additionally** allowing the Adjust SDK to read the IMEI and MEID values of a device. - -**Important:** This Adjust plugin is meant to be used only in apps that are **NOT being published to the Google Play Store**. - -Before using this plugin, please make sure that you have read official [Unity SDK README][readme] and successfully completed Adjust SDK integration into your app. After that, please make sure to perform these additional steps if you want to enable Adjust SDK to collect and track IMEI identifier. - -### Add IMEI plugin to your app - -You can download Adjust IMEI plugin Unity package from our [releases page][releases] and add it to your app. - -### IMEI plugin post build task - -`AdjustImeiEditor.cs` script of IMEI plugin will run post build task in which it will check if your Android app's manifest file contains `android.permission.READ_PHONE_STATE` permission which is needed for IMEI identifier to be read. In case it doesn't contain it, it will be added. - -Remember that after `Android 6.0` it might be necessary to [request app permission](https://developer.android.com/training/permissions/requesting) if the Android OS has not already been altered to avoid it. - -### Use the plugin - -Finally, in order to read IMEI and MEID values, you need to call `AdjustImei.ReadImei()` **before starting the SDK**: - -```cs -AdjustImei.ReadImei(); - -// ... - -Adjust.start(config); -``` - -You can call a method `AdjustImei.DoNotReadImei()` to stop the SDK from reading IMEI and MEID values. - -You can as well use the IMEI plugin as prefab which is located under `AdjustImei/Prefab` folder. If you want to solely rely on prefab, make sure that `Start Manually` option is **not checked** and then feel free to check `Read Imei` option to enable IMEI reading. It is important to be aware that if prefab is used, `AdjustImei` prefab **must** be loaded **before** `Adjust` prefab, since instruction that IMEI should be read must precede SDK initialisation. - -### Final note - -**Please keep in mind** that IMEI and MEID are persistent identifiers and that it is your responsibility to ensure that the collection and processing of this personal data from your app's end-users is lawful. - -[readme]: ../../../README.md -[releases]: https://github.com/adjust/unity_sdk/releases -[imei-doc]: https://docs.adjust.com/en/imei-and-meid-attribution-for-android - diff --git a/doc/english/plugins/oaid.md b/doc/english/plugins/oaid.md deleted file mode 100644 index 4a4b935d..00000000 --- a/doc/english/plugins/oaid.md +++ /dev/null @@ -1,36 +0,0 @@ -## OAID plugin - -OAID is a new advertising ID available in devices with HMS (Huawei Mobile Service) version 2.6.2 or later. You can use it to attribute and track Android devices in markets where Google Play Services is not available. - -The OAID plugin lets the Adjust Unity SDK read a device’s OAID value *in addition* to the other device IDs it searches for by default. - -First, read the official [Unity SDK README][readme] and integrate the Adjust SDK into your app. - -To let the Adjust SDK collect and track the OAID, follow these steps. - -### Add the OAID plugin to your app - -You can download the Adjust OAID plugin for Unity package from our [releases page][releases] and add it to your app. - -### Use the plugin - -To read OAID values, call `AdjustOaid.ReadOaid()` before starting the SDK: - -```cs -AdjustOaid.ReadOaid(); - -// ... - -Adjust.start(config); -``` - -To stop the SDK from reading OAID values, call `AdjustOaid.DoNotReadOaid()`. - -### Use the plugin as a Prefab - -First, find it in the `AdjustOaid/Prefab` folder. To only use the Prefab to read the OAID, make sure the `Start Manually` option is **not checked**. Then check the `Read Oaid` option to turn on OAID reading. - -With this option, the `AdjustOaid` Prefab must be loaded **before** the `Adjust` Prefab. This ensures the instruction to read the OAID precedes the SDK initialization. - -[readme]: ../../../README.md -[releases]: https://github.com/adjust/unity_sdk/releases diff --git a/doc/english/sdk-to-sdk/admob.md b/doc/english/sdk-to-sdk/admob.md deleted file mode 100644 index 91205e27..00000000 --- a/doc/english/sdk-to-sdk/admob.md +++ /dev/null @@ -1,32 +0,0 @@ -# Track AdMob ad revenue with Adjust SDK - -[Adjust Unity SDK README][unity-readme] - -Minimum SDK version required for this feature: - -- **Adjust SDK v4.29.0** - -> Note: In order to enable this feature, please reach out to your Google point of contact. Your point of contact will be able to activate the feature for you to access it. - -If you want to track your ad revenue with the Admob SDK, you can use our SDK-to-SDK integration to pass this information to the Adjust backend. To do this, you will need to construct an Adjust ad revenue object containing the information you wish to record, then pass the object to the `trackAdRevenue` method. - -> Note: If you have any questions about ad revenue tracking with Admob, please contact your dedicated account manager or send an email to [support@adjust.com](mailto:support@adjust.com). - -### Example - -```cs -this.rewardedAd.OnPaidEvent += this.HandleAdPaidEvent; -public void HandleAdPaidEvent(object sender, AdValueEventArgs args) -{ - // ... - AdValue adValue = args.AdValue; - // send ad revenue info to Adjust - AdjustAdRevenue adRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceAdMob); - adRevenue.setRevenue(adValue.Value / 1000000f, adValue.CurrencyCode); - Adjust.trackAdRevenue(adRevenue); -} -``` - -For more information on how to properly integrate and set up AdMob SDK, please check out the [official documentation](https://developers.google.com/admob/unity/paid-events). - -[unity-readme]: ../../../README.md diff --git a/doc/english/sdk-to-sdk/applovin-max.md b/doc/english/sdk-to-sdk/applovin-max.md deleted file mode 100644 index d56b876a..00000000 --- a/doc/english/sdk-to-sdk/applovin-max.md +++ /dev/null @@ -1,40 +0,0 @@ -# Track AppLovin MAX ad revenue with Adjust SDK - -[Adjust Unity SDK README][unity-readme] - -Minimum SDK version required for this feature: - -- **Adjust SDK v4.29.0** - -If you want to track your ad revenue with the AppLovin MAX SDK, you can use our SDK-to-SDK integration to pass this information to the Adjust backend. To do this, you will need to construct an Adjust ad revenue object containing the information you wish to record, then pass the object to the `trackAdRevenue` method. - -> Note: If you have any questions about ad revenue tracking with AppLovin MAX, please contact your dedicated account manager or send an email to [support@adjust.com](mailto:support@adjust.com). - -### Example - -> Note: In order to successfully use SDK to SDK ad revenue tracking with MAX SDK, please make sure that your `AdjustConfig` instance you use for Adjust SDk initialization is configured so that [background tracking](../../../README.md#ad-background-tracking) is enabled. - -```cs -// Adjust SDK initialization -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", AdjustEnvironment.Sandbox); -adjustConfig.setSendInBackground(true); -Adjust.start(adjustConfig); - -// ... - -// pass MAX SDK ad revenue data to Adjust SDK -public static void OnInterstitialAdRevenuePaidEvent(string adUnitId) -{ - var info = MaxSdk.GetAdInfo(adUnitId); - - var adRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceAppLovinMAX); - adRevenue.setRevenue(info.Revenue, "USD"); - adRevenue.setAdRevenueNetwork(info.NetworkName); - adRevenue.setAdRevenueUnit(info.AdUnitIdentifier); - adRevenue.setAdRevenuePlacement(info.Placement); - - Adjust.trackAdRevenue(adRevenue); -} -``` - -[unity-readme]: ../../../README.md diff --git a/doc/english/sdk-to-sdk/helium-chartboost.md b/doc/english/sdk-to-sdk/helium-chartboost.md deleted file mode 100644 index 33d6a529..00000000 --- a/doc/english/sdk-to-sdk/helium-chartboost.md +++ /dev/null @@ -1,34 +0,0 @@ -# Track Helium Chartboost ad revenue with Adjust SDK - -[Adjust Unity SDK README][unity-readme] - -Minimum SDK version required for this feature: - -- **Adjust SDK v4.29.7** - -If you want to track your ad revenue with the Helium SDK, you can use our SDK-to-SDK integration to pass this information to the Adjust backend. To do this, you will need to construct an Adjust ad revenue object containing the information you wish to record, then pass the object to the `trackAdRevenue` method. - -> Note: If you have any questions about ad revenue tracking with Helium Chartboost, please contact your dedicated account manager or send an email to [support@adjust.com](mailto:support@adjust.com). - -### Example - -```cs -void DidReceiveImpressionLevelRevenueData(string placement, Hashtable impressionData) -{ - var json = HeliumJSON.Serialize(impressionData); - - ParsedJsonObject parsedJsonObject = foobar.parse(json); //app developer defined function to parse Helium impressionData JSON string - - AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceHeliumChartboost); - adjustAdRevenue.setRevenue(parsedJsonObject.ad_revenue, parsedJsonObject.currency_type); - - // optional fields - adjustAdRevenue.setAdRevenueNetwork(parsedJsonObject.network_name); // Helium demand network name - adjustAdRevenue.setAdRevenueUnit(parsedJsonObject.placement_name); // Helium placement name - adjustAdRevenue.setAdRevenuePlacement(parsedJsonObject.line_item_name); // Helium line item name - // track Adjust ad revenue - Adjust.trackAdRevenue(adjustAdRevenue); -} -``` - -[unity-readme]: ../../../README.md diff --git a/doc/english/sdk-to-sdk/ironsource.md b/doc/english/sdk-to-sdk/ironsource.md deleted file mode 100644 index c89b77f4..00000000 --- a/doc/english/sdk-to-sdk/ironsource.md +++ /dev/null @@ -1,32 +0,0 @@ -# Track ironSource ad revenue with Adjust SDK - -[Adjust Unity SDK README][unity-readme] - -Minimum SDK version required for this feature: - -- **Adjust SDK v4.29.0** - -If you want to track your ad revenue with the ironSource SDK, you can use our SDK-to-SDK integration to pass this information to the Adjust backend. To do this, you will need to construct an Adjust ad revenue object containing the information you wish to record, then pass the object to the `trackAdRevenue` method. - -> Note: If you have any questions about ad revenue tracking with ironSource, please contact your dedicated account manager or send an email to [support@adjust.com](mailto:support@adjust.com). - -### Example - -> Note: As of ironSource SDK 7.1.14.1, make sure to subscribe to `onImpressionDataReadyEvent` instead of `onImpressionSuccessEvent`. - -```cs -IronSourceEvents.onImpressionDataReadyEvent += ImpressionDataReadyEvent; -private void ImpressionDataReadyEvent(IronSourceImpressionData impressionData) -{ - AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceIronSource); - adjustAdRevenue.setRevenue(impressionData.revenue, "USD"); - // optional fields - adjustAdRevenue.setAdRevenueNetwork(impressionData.adNetwork); - adjustAdRevenue.setAdRevenueUnit(impressionData.adUnit); - adjustAdRevenue.setAdRevenuePlacement(impressionData.placement); - // track Adjust ad revenue - Adjust.trackAdRevenue(adjustAdRevenue); -} -``` - -[unity-readme]: ../../../README.md diff --git a/doc/english/sdk-to-sdk/mopub.md b/doc/english/sdk-to-sdk/mopub.md deleted file mode 100644 index 64f6a822..00000000 --- a/doc/english/sdk-to-sdk/mopub.md +++ /dev/null @@ -1,24 +0,0 @@ -## Track MoPub ad revenue with Adjust SDK - -[Adjust Unity SDK README][unity-readme] - -[MoPub Unity documentation][mopub-docs] - -Minimal SDK version required for this feature: - -- **Adjust SDK v4.18.0** -- **MoPub SDK v5.7.0** - -Inside of your MoPub SDK `OnImpressionTrackedEvent` callback method implementation, make sure to invoke `trackAdRevenue` method of Adjust SDK like this: - -```csharp -private void OnImpressionTrackedEvent(string adUnitId, MoPub.ImpressionData impressionData) { - // Pass impression data JSON to Adjust SDK. - Adjust.trackAdRevenue(AdjustConfig.AdjustAdRevenueSourceMopub, impressionData.JsonRepresentation); -} -``` - -In case you have any questions about ad revenue tracking with MoPub, please contact your dedicated account manager or send an email to support@adjust.com. - -[mopub-docs]: https://developers.mopub.com/publishers/unity/impression-data/ -[unity-readme]: ../../../README.md diff --git a/doc/english/sdk-to-sdk/unity.md b/doc/english/sdk-to-sdk/unity.md deleted file mode 100644 index 92502167..00000000 --- a/doc/english/sdk-to-sdk/unity.md +++ /dev/null @@ -1,38 +0,0 @@ -# Track Unity ad revenue with Adjust SDK - -[Adjust Unity SDK README][unity-readme] - -Minimum SDK version required for this feature: - -- **Adjust SDK v4.29.6** - -If you want to track your ad revenue with the Unity SDK, you can use our SDK-to-SDK integration to pass this information to the Adjust backend. To do this, you will need to construct an Adjust ad revenue object containing the information you wish to record, then pass the object to the `trackAdRevenue` method. - -> Note: If you have any questions about ad revenue tracking with Unity, please contact your dedicated account manager or send an email to [support@adjust.com](mailto:support@adjust.com). - -For more information, see the Unity Mediation [API documentation](https://docs.unity.com/mediation/APIReferenceUnity.html) and [impression event documentation](https://docs.unity.com/mediation/SDKIntegrationUnityImpressionEvents.html). - -### Example - -```cs -static void OnImpression(object sender, ImpressionEventArgs e) -{ - var impressionData = e.ImpressionData != null ? JsonUtility.ToJson(e.ImpressionData, true) : "null"; - Debug.Log($"Impression event from ad unit id {e.AdUnitId} : {impressionData}"); - - // send impression data to Adjust - if (e.ImpressionData != null) - { - AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourceUnity); - adjustAdRevenue.setRevenue(e.ImpressionData.PublisherRevenuePerImpression, e.ImpressionData.Currency); - // optional fields - adjustAdRevenue.setAdRevenueNetwork(e.ImpressionData.AdSourceName); - adjustAdRevenue.setAdRevenueUnit(e.ImpressionData.AdUnitId); - adjustAdRevenue.setAdRevenuePlacement(e.ImpressionData.AdSourceInstance); - // track Adjust ad revenue - Adjust.trackAdRevenue(adjustAdRevenue); - } -} -``` - -[unity-readme]: ../../../README.md diff --git a/doc/japanese/README.md b/doc/japanese/README.md deleted file mode 100644 index dcde8e50..00000000 --- a/doc/japanese/README.md +++ /dev/null @@ -1,1081 +0,0 @@ -## 概要 - -こちらはAdjust™のUnity SDKです。iOS、Android、Windows Store 8.1、Windows Phone 8.1、Windows 10をサポートしています。Adjust™については、[adjust.com]をご覧ください。 - -**注**:バージョン**4.12.0**以降より、Adjust Unity SDKは**Unity 5以降**のバージョンと互換性があります。 - -**注**:バージョン**4.19.2**以降より、Adjust Unity SDKは**Unity 2017.1.1以降**のバージョンと互換性があります。 - -**注**:バージョン**4.21.0**以降より、Adjust Unity SDKは**Unity 2017.4.1以降**のバージョンと互換性があります。 - -Read this in other languages:[English][en-readme]、[中文][zh-readme]、[日本語][ja-readme]、[한국어][ko-readme] - -## 目次 - -## クイックスタート - - * [基本的な連携方法](#qs-getting-started) - * [SDKダウンロード](#qs-get-sdk) - * [プロジェクトにSDKを追加](#qs-sdk-add) - * [アプリにSDKを実装](#qs-sdk-integrate) - * [Adjustログ](#qs-adjust-logging) - * [Google Play 開発者サービス](#qs-gps) - * [Proguardの設定](#qs-android-proguard) - * [Google インストールリファラ](#qs-install-referrer) - * [Huawei リファラAPI](#qs-huawei-referrer-api) - * [ポストビルドプロセス](#qs-post-build-process) - * [iOSポストビルドプロセス](#qs-post-build-ios) - * [Androidポストビルドプロセス](#qs-post-build-android) - * [SDK シグネチャー](#qs-sdk-signature) - -### ディープリンク - - * [ディープリンクの概要](#dl) - * [スタンダードディープリンク](#dl-standard) - * [ディファードディープリンク](#dl-deferred) - * [Androidアプリでのディープリンク処理](#dl-app-android) - * [iOSアプリでのディープリンク処理](#dl-app-ios) - -### イベントトラッキング - - * [イベントトラッキング](#et-tracking) - * [収益のトラッキング](#et-revenue) - * [収益の重複排除](#et-revenue-deduplication) - * [アプリ内購入の検証](#et-purchase-verification) - -### カスタムパラメータ - - * [カスタムパラメータの概要](#cp) - * [イベントパラメータ](#cp-event-parameters) - * [イベントコールバックパラメータ](#cp-event-callback-parameters) - * [イベントパートナーパラメータ](#cp-event-partner-parameters) - * [イベントコールバックID](#cp-event-callback-id) - * [セッションパラメータ](#cp-session-parameters) - * [セッションコールバックパラメータ](#cp-session-callback-parameters) - * [セッションパートナーパラメータ](#cp-session-partner-parameters) - * [ディレイスタート](#cp-delay-start) - -### 追加機能 - - * [AppTrackingTransparencyフレームワーク](#ad-att-framework) - * [アプリトラッキング承認ラッパー](#ad-ata-wrapper) - * [SKAdNetworkフレームワーク](#ad-skadn-framework) - * [Pushトークン(アンインストールトラッキング)](#ad-push-token) - * [アトリビューションコールバック](#ad-attribution-callback) - * [広告収益トラッキング](#ad-ad-revenue) - * [サブスクリプション計測](#ad-subscriptions) - * [セッションとイベントのコールバック](#ad-session-event-callbacks) - * [ユーザーアトリビューション](#ad-user-attribution) - * [デバイスID](#ad-device-ids) - * [iOS広告ID](#ad-idfa) - * [Google Play 開発者サービス広告ID](#ad-gps-adid) - * [Amazon広告ID](#ad-amazon-adid) - * [AdjustデバイスID](#ad-adid) - * [プリインストールトラッカー](#ad-pre-installed-trackers) - * [オフラインモード](#ad-offline-mode) - * [トラッキングの無効化](#ad-disable-tracking) - * [イベントバッファリング](#ad-event-buffering) - * [バックグラウンドでのトラッキング](#ad-background-tracking) - * [GDPRの忘れられる権利](#ad-gdpr-forget-me) - * [サードパーティーとの共有を無効にする](#ad-disable-third-party-sharing) - -### テストとトラブルシューティング - * [iOSデバッグ情報](#tt-debug-ios) - -### ライセンス - * [ライセンス契約](#license) - - -## クイックスタート - -### 基本的な連携方法 - -Adjust SDKをUnityプロジェクトに連携させるステップをご説明します。 - -### SDKダウンロード - -[リリースページ](https://github.com/adjust/unity_sdk/releases)より最新バージョンをダウンロードしてください。 - -### プロジェクトにSDKを追加 - -Unityエディターでプロジェクトを開き、`Assets → Import Package → Custom Package` と進み、ダウンロードしたUnityパッケージファイルを選択してください。 - -![][import_package] - -### アプリにSDKを実装 - -`Assets / Adjust / Adjust.prefab`にあるプレハブを1番目のシーンに追加してください。 - -プレハブの`Inspector menu`で、Adjustスクリプトのパラメータを編集してください。ここでは以下のオプションの設定ができます。 - -* [手動スタート](#start-manually) -* [イベントバッファリング](#event-buffering) -* [バックグラウンドでの送信](#background-tracking) -* [ディファードディープリンクの起動](#deeplinking-deferred-open) -* [アプリトークン](#app-token) -* [ログレベル](#adjust-logging) -* [環境設定](#environment) - -![][adjust_editor] - - `{YourAppToken}` にアプリトークンを入力してください。 [この手順](https://help.adjust.com/en/dashboard/apps/app-settings#view-your-app-token)は管理画面で確認できます。 - -EnvironmentにSandbox 又はProductionのどちらかを設定してください。これはテスト用アプリか本番用アプリかによって異なります。 - -**重要:**この値はアプリのテスト中のみ`Sandbox` に設定してください。アプリストアに提出する前に`Production` に更新されていることを必ず確認してください。テストを再度実施する場合は、`Sandbox` に戻してください。また、Adjust管理画面ではデフォルトでアプリの本番環境(プロダクション)のトラフィックを表示しているため、サンドボックスモードでテスト中に生成されたトラフィックを表示したい場合は、管理画面内でサンドボックス・モードに切り替えてください。 - -この環境設定は、本番環境からのトラフィックとテスト端末からのトラフィックをレポート画面で区別するために利用されます。正しく計測するために、環境設定には常に注意してください。 - -アプリの`Awake` イベントでAdjust SDKを自動で起動したくない場合、`Start Manually`を選択します。このオプションが選択されている場合、`ソースコード上でAdjust SDKの初期化、および起動を行う必要があります。AdjustConfig`オブジェクトをパラメータとして`Adjust.start` メソッドをコールし、Adjust SDKを起動してください。 - -例えばメニューボタンを利用したシーンなど、これらのオプションのサンプルは、`Assets/Adjust/ExampleGUI/ExampleGUI.unity`で確認できます。 - -このシーンのソースはAssets / Adjust / ExampleGUI / ExampleGUI.csにあります。 - -### Adjustロギング - -`Log Level` に設定する値を次のいずれかに変更すると、記録するログの粒度を調節できます。 - --`Verbose`- 全てのログを有効にする -- `Debug` - verboseログを無効にする -- `Info` - debugログを無効にする(デフォルト) -- `Warn` - infoログを無効にする -- `Error` - warningログを無効にする -- `Assert` - errorログを無効にする -- `Suppress` - 全てのログを無効にする - -Adjust SDKをマニュアルで初期化していて、全てのログ出力を非表示にしたい場合、ログレベルをSupressに設定し`てAdjustConfig`オブジェクトのコンストラクタを使います。これによってBoolean値のパラメータが開きますので、Supressログレベルがサポートされるべきかどうかを入力してください。 - -```cs -String appToken = "{YourAppToken}"; -AdjustEnvironment environment = AdjustEnvironment.Sandbox; - -AdjustConfig config = new AdjustConfig(appToken, environment, true); -config.setLogLevel(AdjustLogLevel.Suppress); - -Adjust.start(config); -``` - -アプリのターゲットがWindowsベースで、コンパイル時のログをライブラリから`released` モードで見るには、`debug` モードでテストされている間アプリへのログ出力をリダイレクトする必要があります。 - -SDKを開始する前に、`AdjustConfig`インスタンスの`setLogDelegate`メソッドをコールしてください。 - -```cs -//... -adjustConfig.setLogDelegate(msg=> Debug.Log(msg)); -//... -Adjust.start(adjustConfig); -``` - -### Google Play 開発者サービス - -2014年8月1日以降、Google Playストア内のアプリは、デバイスの特定のために[Google広告 ID][google_ad_id]の使用が義務付けられています。Adjust SDKでGoogle 広告 IDを使うためには、Google Play 開発者サービス[google_play_services]を連携させる必要があります。連携を行うには、`google-play-services_lib` フォルダ(Android SDKの一部)をUnityプロジェクトの`Assets/Plugins/Android` フォルダにコピーしてください。 - -Android SDKをダウンロードするには主に2つの方法があります。`Android SDK Manager` が入ったツールをお使いの場合は、Android SDK toolのダウンロードとインストールができるクイックリンクが提供されています。インストールが完了したら、`SDK_FOLDER/extras/google/google_play_services/libproject/` フォルダのライブラリをご覧ください。 - -![][android_sdk_location] - -Android SDK Managerの入ったツールをお使いでない場合は、公式ページから単独SDK[Android SDK][android_sdk_download]をダウンロードしてください。次に、`Google が提供するSDK Readme.txt` の指示に従ってAndoird SDKツールをダウンロードしてください。これは、Android SDKフォルダ内にあります。 - -**更新**:Android SDKの最新バージョンでは、GoogleはSDKのルートフォルダ内のGoogle Play 開発者サービスフォルダの構造を変更しています。新バージョンはこのように表示されます。 - -![][android_sdk_location_new] - -Adjust SDKが必要とするGoogle Play 開発者サービスのライブラリの一部、つまり、basementのみを追加することができるようになりました。これを行うためには、`play-services-basement-x.y.z.aar` ファイルを`Assets/Plugins/Android`フォルダに追加してください。 - -Google Play 開発者サービスのライブラリバージョン15.0.0では、Googleは、Google 広告 IDの取得に必要なクラスを`play-services-ads-identifier` パッケージに移行しました。バージョン15.0.0以降のライブラリを使用している場合は、このパッケージをアプリに追加してください。追加が完了したら、Adjust SDKがGoogle 広告 IDを正しく取得しているかテスト確認を行ってください。使用されているUnity の開発環境 (IDE)のバージョンによっては、いくつかの乖離が発生することが分かっています。 - -#### Google 広告 IDのテスト - -Adjust SDKがGoogle 広告 IDを取得しているかどうかを確認するには、`sandbox` モードでSDKを設定し、ログレベルを`verbose`にして起動してください。その後、アプリでセッションまたはイベントをトラッキングし、verboseログに記録されたパラメータリストをチェックします。`gps_adid` パラメータが表示されていれば、SDKはGoogle 広告 IDを正常に読み込んでいます。 - -Google 広告 IDの取得の際に問題が発生した場合は、Githubリポジトリでissueを開くか、support@adjust.comにお問い合わせください。 - -### Proguardの設定 - -Proguardをお使いの場合は、以下をProguardファイルに追加してください。 - -``` --keep public class com.adjust.sdk.** { *; } --keep class com.google.android.gms.common.ConnectionResult { - int SUCCESS; -} --keep class com.google.android.gms.ads.identifier.AdvertisingIdClient { - com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context); -} --keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info { - java.lang.String getId(); - boolean isLimitAdTrackingEnabled(); -} --keep public class com.android.installreferrer.**{ *; } -``` - -### Google インストールリファラ - -AdjustがAndroidアプリのインストールをアトリビュートするには、Googleのインストールリファラの情報が必要です。** Google Play リファラAPI **を使用するか、broadcastレシーバで**Google Play Store インテント**を受信するよう設定すると、アプリが情報を取得できます。 - -GoogleはGoogle Play リファラ APIを導入しました。インストールリファラの情報を取得し、アトリビューションプロバイダがクリックインジェクション(不正な広告クリック)を阻止する上で、Google Play Storeインテントよりも信頼性が高く安全です。暫定的にGoogle Play StoreインテントはAPIと並行して存在しますが、将来的には廃止される予定です。アプリでこれをサポートすることを強く推奨します。 - -Adjustのポストビルドプロセスにより、Google Play Storeインテントを受信します。いくつかの追加手順を実行するだけで、新しいGoogle Play リファラAPIをサポートできます。 - -Google Play リファラ APIのサポートを追加するには、Mavenリポジトリから[install referrer library][install-referrer-aar]をダウンロードし、AARファイルを`Plugins/Android` フォルダに入れてください。 - -#### HuaweiリファラAPI - -v4.21.1以降より、Adjust SDKはHuawei App Galleryバージョン10.4以降のHuawei端末へのインストール計測をサポートしています。HuaweiリファラAPIの使用を開始するために連携手順を追加で設定する必要はありません。 - -### ポストビルドプロセス - -アプリのビルドプロセスが完了するには、Adjust Unityのパッケージでポストビルドプロセスが実行されます。アプリ内でAdjust SDKが正しく動作するようにするためです。 - -このプロセスは、`AdjustEditor.cs` の`OnPostprocessBuild` メソッドで実行されます。Unity IDEコンソールの出力ウィンドウに、ログメッセージが書き込まれます。 - -#### iOSポストビルドプロセス - -iOSポストビルドプロセスを適切に実行するためには、Unity 5以降を使用し、`iOS build support` をインストールしてください。iOSポストビルドプロセスは、生成したXcodeプロジェクト内で次のような変更を実行します。 - -- `iAd.framework` を追加します(Apple Search Adsのトラッキングに必要) -- `AdSupport.framework` を追加します(IDFAの読み取りに必要) -- `CoreTelephony.framework` を追加します(接続されているネットワーク機器の種類の読み取りに必要) --その他のLinkerフラグ `-ObjC`を追加します(AdjustのObjective-Cカテゴリがビルド中に認識されるために必要) --`Objective-C exceptions`を有効化します - -iOS 14のサポート(`Assets/Adjust/Toggle iOS 14 Support`)を有効にした場合、iOSのポストビルドプロセスでは、Xcodeプロジェクトに2つのフレームワークが追加されます。 - -- `AppTrackingTransparency.framework` を追加します(ユーザーにトラッキングへの同意を求め、その同意に関するステータスを取得する必要がある) -- `StoreKit.framework` を追加します(SKAdNetworkフレームワークとの通信に必要) - -#### Androidポストビルドプロセス - -Androidポストビルドプロセスは、`Assets/Plugins/Android/`にある`AndroidManifest.xml` ファイルの変更を実行します。また、Android プラグインフォルダにAndroidManifest.xmlファイルがあるかどうかを確認します。ファイルがない場合は、互換性のあるマニフェストファイル`AdjustAndroidManifest.xml` からコピーを作成してください。`すでにAndroidManifest.xml` ファイルがある場合は、次の内容を確認し、変更してください。 - -- `INTERNET` のパーミッションを追加します (インターネット接続に必要) -- `ACCESS_WIFI_STATE` のパーミッションを追加します (Play Store経由でアプリを公開しない場合に必要) -- `ACCESS_NETWORK_STATE` のパーミッションを追加します(接続されているネットワーク機器の種類の読み取りに必要) -- `BIND_GET_INSTALL_REFERRER_SERVICE` のパーミッションを追加します (新しいGoogle install リファラAPI が機能するのに必要) -- Adjustのブロードキャストレシーバーを追加します (Google Play Storeインテント経由でインストールリファラ情報を取得するのに必要)。詳しくは、公式の[Android SDK README][android]を参照してください。 - -**注意:**独自のブロードキャストレシーバを使用して`INSTALL_REFERRER`インテントを処理している場合には、manifest fileにAdjustブロードキャストレシーバを追加する必要はありません。これを削除し、代わりに独自のレシーバー内にAdjustブロードキャストレシーバへのコールを追加してください。詳しくは、[Androidガイド][android-custom-receiver]をご覧ください。 - -### SDKシグネチャー - -担当のアカウントマネージャーがAdjust SDKシグネチャーを有効化する必要があります。この機能を使用する場合は、Adjustのサポート(support@adjust.com)にお問い合わせください。 - -アカウントでSDKシグネチャーが有効になっており、Adjust管理画面のアプリシークレットにアクセスできる場合は、全てのシークレットパラメータ(`secretId`, `info1`, `info2`, `info3`, `info4`)を`AdjustConfig`インスタンスの`setAppSecret`メソッドに追加してください。 - -```cs -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setAppSecret(secretId,info1, info2, info3, info4); - -Adjust.start(adjustConfig); -``` - -これでSDKシグネチャーがアプリに実装されました。 - - -## ディープリンク - -### ディープリンクの概要 - -**Adjustでは、iOSとAndroidのプラットフォームでのみディープリンクをサポートしています。** - -ディープリンクを有効にした状態でAdjustトラッカーURLをご利用の場合、ディープリンクURLとそのコンテンツに関する情報を取得できます。同じURLをユーザーがクリックした際、ユーザーのデバイスにアプリがインストールされてる場合はスタンダードディープリンクが作動し、インストールされていない場合はディファードディープリンクが作動します。 - -スタンダードディープリンクの場合、Androidプラットフォームにはディープリンクのコンテンツを取得できる仕組みがあります。ただし、ディファードディープリンクに対する自動サポートはありません。ディファードディープリンクのコンテンツを取得するには、Adjust SDKを使用してください。 - -ディープリンクの実装は**ネイティブレベル**で設定する必要があります。Xcodeプロジェクト(iOS向け)やAndroid Studio / Eclipseプロジェクト(Android向け)で設定してください。 - -### スタンダードディープリンク - -スタンダードディープリンクに関する情報は、Unity C#コードでは配信できません。ディープリンクの取り扱いをアプリで有効化すると、ネイティブレベルでディープリンクの情報が得られます。[Android](#dl-app-android)アプリや[iOS](#dl-app-ios)アプリでディープリンクを有効化する方法は、こちらのとおりです。 - -### ディファードディープリンク - -ディファードディープリンクのコンテンツ情報を取得するには、`AdjustConfig` オブジェクトにcallbackメソッドを設定してください。これにより、URLのコンテンツが配信される`1つのstring`パラメータを受信します。メソッド `setDeferredDeeplinkDelegate`をコールしてconfigオブジェクトでこのメソッドを実装してください。 - -```cs -// ... - -private void DeferredDeeplinkCallback(string deeplinkURL) { - Debug.Log("Deeplink URL: " + deeplinkURL); - - // ... -} - -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setDeferredDeeplinkDelegate(DeferredDeeplinkCallback); - -Adjust.start(adjustConfig); -``` - - ディファードディープリンクでは、`AdjustConfig` オブジェクトで設定できる追加機能があります。Adjust SDKがディファードディープリンクの情報を取得すると、SDK側でそのURLを開くかどうかを決めることができます。このオプションを設定するには、configオブジェクトで `setLaunchDeferredDeeplink`メソッドをコールしてください。 - -```cs -// ... - -private void DeferredDeeplinkCallback(string deeplinkURL) { - Debug.Log ("Deeplink URL: " + deeplinkURL); - - // ... -} - -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setLaunchDeferredDeeplink(true); -adjustConfig.setDeferredDeeplinkDelegate(DeferredDeeplinkCallback); - -Adjust.start(adjustConfig); -``` - -何も設定されていない場合、**Adjust SDKはデフォルトで常にディープリンクを起動します**。 - -アプリでディープリンクを有効化するには、サポートするプラットフォームごとにスキームを設定してください。 - -### Androidアプリでのディープリンク処理 - -ネイティブレベルでAndroidアプリのディープリンクを設定するには、公式[Android SDK README][android-deeplinking]の手順をご確認ください。 - -この設定はネイティブのAndroid Studio もしくは Eclipseプロジェクトで行ってください。 - -### iOSアプリでのディープリンク処理 - -**この設定はネイティブのXcodeプロジェクトで行ってください。** - -ネイティブレベルでiOSアプリのディープリンクを設定するには、ネイティブのXcodeプロジェクトを使用し、公式[iOS SDK README][ios-deeplinking]の手順をご確認ください。 - -### イベントトラッキング - -### イベントのトラッキング - -Adjustを使ってアプリ内のイベントをトラッキングすることができます。例えば、ボタンのタップを毎回トラッキングされたい場合は、管理画面の[create a new event token](https://help.adjust.com/en/tracking/in-app-events/basic-event-setup#generate-event-tokens-in-the-adjust-dashboard)にてイベントトークンを作成します。仮にそのイベントトークンを`abc123`とします。クリックをトラッキングするため、ボタンのクリックハンドラーメソッドに以下のような記述を追加します。 - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); -Adjust.trackEvent(adjustEvent); -``` - -### 収益(課金)のトラッキング - -ユーザーがアプリ内でアイテムを購入をした際に収益が発生する場合は、それらを課金イベントとしてトラッキングできます。例えば、1回のタップで1ユーロセントの収益があると仮定すると、その収益イベントは以下のようになります。 - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); -adjustEvent.setRevenue(0.01,"EUR"); -Adjust.trackEvent(adjustEvent); -``` - -通貨トークンを設定すると、Adjustはopenexchange APIを使用して、計測された売り上げを設定されたレポート通貨に自動換算します。[通貨換算についての詳細はこちらをご覧ください](http://help.adjust.com/tracking/revenue-events/currency-conversion) - -アプリ内購入をトラッキングする場合は、購入手続きが完了し、アイテムが購入された場合にのみ`trackEvent`をコールするようにしてください。こうすることで、実際には発生しなかった収益をトラッキングするのを防ぐことができます。 - - -### 収益の重複排除 - -収益を重複してトラッキングするのを防止するため、随意でトランザクションIDを追加することができます。SDKに最新10件のトランザクションIDが記憶され、トランザクションIDが重複する場合、その収益イベントは除外されます。これは、アプリ内購入のトラッキングに特に便利です。 - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.setRevenue(0.01,"EUR"); -adjustEvent.setTransactionId("transactionId"); - -Adjust.trackEvent(adjustEvent); -``` - -### アプリ内購入の検証 - -Adjustのサーバーサイドのレシート検証ツール[Adjust's Purchase Verification][unity-purchase-sdk]を使って、アプリ内購入を確認できます。 - -## カスタムパラメータ - -### カスタムパラメータの概要 - -Adjust SDKがデフォルトで収集するローデータに加えて、Adjust SDKを使用してカスタム値(ユーザーID、製品IDなど)を必要な数だけトラッキングし、イベントまたはセッションに追加できます。カスタムパラメータはローデータとして転送されます。Adjust管理画面には**表示されません**。 - -[コールバックパラメータ](https://help.adjust.com/en/manage-data/export-raw-data/callbacks/best-practices-callbacks)で収集したデータは社内用に、パートナーパラメータは、外部のパートナー(アドネットワークなど)に対して共有する場合に使用してください。値(製品IDなど)を社内と外部のパートナーのためにトラッキングする場合、コールバックとパートナーパラメータの両方を使用するよう推奨します。 - -### イベントパラメータ - -### イベントコールバックパラメータ - -[管理画面]に表示されたイベントにコールバックURLを登録すると、該当イベントが発生する度にそのURLに対してGETリクエストが送信されます。オブジェクトにキーと値の組を入れ、それを `trackEvent`メソッドに渡すこともできます。カスタムパラメータはコールバックURLに追加されます。 - -例えば、コールバックURLに `http://www.example.com/callback`と登録した場合、次のようにイベントをトラッキングします。 - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.addCallbackParameter("key","value"); -adjustEvent.addCallbackParameter("foo","bar"); - -Adjust.trackEvent(adjustEvent); -``` - -この場合、Adjustは以下のGETリクエストを送信します。 - -``` -http://www.example.com/callback?key=value&foo=bar -``` - -Adjustは数多くのプレースホルダー(パラメータ)をサポートしています。例えば広告IDを取得する際、iOSは`{idfa}` 、Androidは`{gps_adid}` がパラメータとなります。この例を使用して、得られるコールバック内でプレースホルダーを現在のデバイスのIDFAやgps_adid(Google Play開発者サービス 広告ID)に置き換えます。詳しくは[リアルタイムコールバック](https://help.adjust.com/en/manage-data/export-raw-data/callbacks)と[プレースホルダー](https://partners.adjust.com/placeholders/)の全リストをご覧ください。 - -**注:**Adjustは、カスタムパラメータを保存せず、コールバックへの追加だけを行います。イベントにコールバックが登録されていない場合は、これらのパラメータを取得しません。 - - -### イベントパートナーパラメータ - -管理画面でパラメータを有効にすると、ネットワークパートナーにパラメータが送信されます。[モジュールパートナー](https://docs.adjust.com/ja/special-partners/)やそれらの拡張連携についてご覧ください。 - -これはコールバックパラメータと同様に機能します。`AdjustEvent`インスタンスで` addPartnerParameter`メソッドをコールして追加してください。 - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.addPartnerParameter("key","value"); -adjustEvent.addPartnerParameter("foo","bar"); - -Adjust.trackEvent(adjustEvent); -``` - -スペシャルパートナーとの連携方法の詳細については、[スペシャルパートナーガイド][スペシャルパートナー]をご覧ください。 - -### イベントコールバックID - -トラッキングしたいイベントごとにカスタマイズしたストリングIDを追加できます。イベントコールバック時にこのIDを報告し、どのイベントが正常にトラッキングされたかを知らせます。`AdjustEvent` インスタンスで`setCallbackId` メソッドをコールして、IDを設定してください。 - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.setCallbackId("Your-Custom-Id"); - -Adjust.trackEvent(adjustEvent); -``` - -### セッションパラメータ - -セッションパラメータはローカルに保存され、Adjust SDK **イベントとセッション**ごとに送信されます。これらのパラメータは、追加される度に保存されます(したがって、再度追加する必要はありません)。同じパラメータを再度追加しても、何も起こりません。 - -Adjust SDKの起動前にセッションパラメータを送信することが可能です。したがって、[SDK ディレイスタート](#cp-delay-start)を使用すると、追加の値(アプリのサーバーからの認証トークンなど)を取得することができ、SDKの初期化タイミングで全ての情報を一度に送信できます。 - -### セッションコールバックパラメータ - -Adjust SDKのセッションごとに送信されるイベントコールバックパラメータを保存できます。 - -セッションコールバックパラメータの仕組みは、イベントコールバックパラメータのインターフェイスに似ています。キーとその値をイベントに追加する代わりに、`Adjust` インスタンスの `addSessionCallbackParameter` メソッドへのコールで追加されます。 - -```cs -adjustEvent.addCallbackParameter("foo", "bar"); -``` - -セッションコールバックパラメータは、イベントコールバックパラメータに統合されます。全ての情報が1つにまとめられて送信されますが、イベントコールバックパラメータは、セッションコールバックパラメータより優先されます。セッションコールバックパラメータと同じキーを持つイベントパートナーパラメータが追加された場合、イベントに追加されたパラーメータの値が表示されます。 - -`Adjust` インスタンスのremoveSessionCallbackParameter` メソッドに指定のキーを渡すことで、特定のセッションコールバックパラメータを削除できます。 - -```cs -AdjustEvent.addCallbackParameter("foo", "bar"); -``` - -セッションコールバックパラメータから全てのキーと値を削除するには、`Adjust` インスタンスの`resetSessionCallbackParameters` メソッドを使ってリセットすることができます。 - -```cs -Adjust.resetSessionCallbackParameters(); -``` - -### セッションパートナーパラメータ - -SDKをトリガーするイベントやセッションごとに[セッションコールバックパラメータ](#cp-session-callback-parameters)が送信されるのと同様に、セッションパートナーパラメータも用意されています。 - -これらは[管理画面]で連携を有効化した全てのネットワークパートナーに送信されます。 - -セッションコールバックパラメータの仕組みは、イベントコールバックパラメータに似ています。キーとその値をイベントに追加する代わりに、`Adjust` インスタンスの `addSessionPartnerParameter` メソッドへのコールで追加されます。 - -```cs -adjustEvent.addCallbackParameter("foo", "bar"); -``` - -セッションパートナーのパラメータは、イベントパートナーのパラメータに統合されます。ただし、イベントパートナーのパラメータは、セッションパートナーのパラメータより優先されます。セッションパートナーパラメータと同じキーを持つイベントパートナーパラメータが追加された場合、イベントに追加されたパラメータの値が表示されます。 - -Adjust` インスタンスの`removeSessionPartnerParameter` メソッドに指定のキーを渡すことで、特定のセッションパートナーパラメータを削除できます。 - -```cs -Adjust.removeSessionPartnerParameter("foo"); -``` - -セッションパートナーパラメータから全てのキーと値を削除するには、`Adjust` インスタンスの`resetSessionPartnerParameters` メソッドを使ってリセットすることができます。 - -```cs -Adjust.resetSessionPartnerParameters(); -``` - -###ディレイスタート - -Adjust SDKのスタート(初期化)を遅らせると、アプリがユニークIDなどのセッションパラメータを取得しインストール時にコールバックとして送信する時間を確保できます。 - -`AdjustConfig` インスタンスの` setDelayStart` メソッドで、遅らせる時間を秒単位で設定してください。 - -```cs -adjustConfig.setDelayStart(5.5); -``` - -この例では、Adjust SDKは初期化時のインストールセッションと新しいイベントを5.5秒間遅らせます。5.5秒後に(または、その時間内に `Adjust.sendFirstPackages()` がコールされると)、全てのセッションパラメータがディレイインストールセッションとイベントに追加され、Adjust SDKは通常どおり作動します。 - -ディレイスタートに設定できる最長時間は10秒です。 - -##追加機能 - -Adjust SDKをプロジェクトに導入すると、次の追加機能を利用できます。 - -### AppTrackingTransparencyフレームワーク - -**注**:この機能が存在するのはiOSプラットフォームのみです。 - -各パッケージが送信されるたびに、Adjustのバックエンドは、アプリ関連データへのアクセスに関するユーザーの許諾状況を表す、以下の4つの値のいずれかを受信します。 - -- Authorized(承認) -- Denied(拒否) -- Not Determined(未決定) -- Restricted(制限あり) - -デバイスがアプリ関連データへのアクセスに対するユーザーの許諾状況の承認リクエスト(ユーザーのデバイストラッキングに使用)を受信した後は、返されるステータスはAuthorizedあるいはDeniedになります。 - -デバイスがアプリ関連データへのアクセスの承認リクエスト(ユーザーあるいはデバイスのトラッキングに使用)を受信する前は、返されるステータスはNot Determinedになります。 - -アプリのトラッキングデータの使用が制限されている場合は、返されるステータスはRestrictedになります。 - -表示されるポップアップダイアログのカスタマイズを希望しない場合のために、このSDKには、ユーザーがポップアップダイアログに応答した後に、更新ステータスを受信するメカニズムが組み込まれています。新しい許諾ステータスをバックエンドに簡単かつ効率的に伝達するために、Adjust SDKはアプリのトラッキング承認メソッドのラッパーを提供しています。次の項目の説明をご覧ください。 - -### アプリトラッキング承認ラッパー(App-tracking authorisation wrapper) - -**注**:この機能が存在するのはiOSプラットフォームのみです。 - -Adjust SDKは、アプリトラッキング承認ラッパーを使用して、アプリ関連データへのアクセスに対するユーザーの許諾状況をリクエストすることができます。Adjust SDKには、[requestTrackingAuthorizationWithCompletionHandler:](https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547037-requesttrackingauthorizationwith?language=objc)メソッドに基づいて構築されたラッパーが用意されており、ユーザーの選択についての情報を取得するためのコールバックメソッドを定義することもできます。また、このラッパーを使用することで、ユーザーがポップアップダイアログに応答すると、その内容がコールバックメソッドで直ちに伝達されます。SDKは、ユーザーの選択をバックエンドにも通知します。「NSUInteger」の値はコールバックメソッドによって伝達されます。値の意味は次のとおりです。 - -- 0: `ATTrackingManagerAuthorizationStatusNotDetermined`(承認ステータスは「未決定」) -- 1: `ATTrackingManagerAuthorizationStatusRestricted`(承認ステータスは「制限あり」) -- 2: `ATTrackingManagerAuthorizationStatusDenied`(承認ステータスは「拒否」) -- 3: `ATTrackingManagerAuthorizationStatusAuthorized`(承認ステータスは「承認」) - -このラッパーを使用するためには、次のように呼び出してください。 - -```csharp -Adjust.requestTrackingAuthorizationWithCompletionHandler((status) => -{ - switch (status) - { - case 0: - // ATTrackingManagerAuthorizationStatusNotDetermined の場合 - break; - case 1: - // ATTrackingManagerAuthorizationStatusRestricted の場合 - break; - case 2: - // ATTrackingManagerAuthorizationStatusDenied の場合 - break; - case 3: - // ATTrackingManagerAuthorizationStatusAuthorizedの場合 - break; - } -}); -``` - -### SKAdNetworkフレームワーク - -**注**:この機能が存在するのはiOSプラットフォームのみです。 - -Adjust iOS SDK v4.23.0以上を実装済みであり、アプリがiOS14で実行されている場合、SKAdNetworkとの通信はデフォルトでONに設定されますが、選択によりOFFにすることもできます。ONに設定すると、SDKの初期化時にSKAdNetworkのアトリビューションがAdjustによって自動的に登録されます。conversion value(コンバージョン値)を受信するためにAdjust管理画面でイベントを設定する場合、conversaion valueのデータはAdjustバックエンドからSDKに送信されます。その後、SDKによってconversion valueが設定されます。SKAdNetworkコールバックデータをAdjustで受信した後、このデータが管理画面に表示されます。 - -Adjust SDKがSKAdNetworkと自動的に通信しないようにしたい場合は、設定オブジェクトで次のメソッドを呼び出すことによって通信を無効化できます。 - -```csharp -adjustConfig.deactivateSKAdNetworkHandling(); -``` - -### Pushトークン(アンインストールトラッキング) - -Pushトークンは、オーディエンスビルダーやコールバックに使用されます。また、アンインストールや再インストールのトラッキングにも必要です。 - -Push通知トークンをAdjustに送信するには、アプリのPush通知トークンの取得時に(またはその値の変更のたびに)、`Adjust` インスタンスで`setDeviceToken` メソッドをコールしてください。 - -```cs -Adjust.setDeviceToken("YourPushNotificationToken"); -``` - -### アトリビューションコールバック - -アトリビューション情報の変更通知をアプリ内で受けるようにコールバックを設定できます。アトリビューションには複数の流入元が存在するため、この情報は非同期的に送ります。サードパーティに対してデータを共有する際は、[アトリビューションデータに関するポリシー] [attribution_data]を必ずご確認ください。 - -アプリにこのコールバックを追加するには、次の手順に進んでください。 - -1.デリゲート `Action`の署名でメソッドを作成します。 - -2. `AdjustConfig` オブジェクトを作成し、前に作成したメソッドで`adjustConfig.setAttributionChangedDelegate`をコールしてください。同じ署名でラムダ式を使うことも可能です。 - -3. `Adjust.prefab` を使う代わりに、`Adjust.cs`スクリプトが別の`GameObject` に追加されている場合は、その``GameObject` の名前をAdjustConfig.setAttributionChangedDelegate`の2番目のパラメータとして必ず渡してください。 - -コールバックが`AdjustConfig` インスタンスを使用しているため、`Adjust.start`をコールする前に`adjustConfig.setAttributionChangedDelegate` をコールする必要があります。 - -```cs -using com.adjust.sdk; - -public class ExampleGUI : MonoBehaviour { - void OnGUI() { - if (GUI.Button(new Rect(0, 0, Screen.width, Screen.height), "callback")) { - AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); - adjustConfig.setLogLevel(AdjustLogLevel.Verbose); - adjustConfig.setAttributionChangedDelegate(this.attributionChangedDelegate); - - Adjust.start(adjustConfig); - } - } - - public void attributionChangedDelegate(AdjustAttribution attribution) { - Debug.Log("Attribution changed"); - - // ... - } -} -``` - -このコールバック関数は、SDKが最後のアトリビューションデータを取得した時に作動します。コールバック関数内で`attribution` パラメータを確認することができます。プロパティの概要は次のとおりです。 - -- `string trackerToken` 最新アトリビューションのトラッカートークン -- `string trackerName` 最新アトリビューションのトラッカー名 -- `string network` 最新アトリビューションのネットワークのグループ階層 -- `string campaign` 最新アトリビューションのキャンペーンのグループ階層 -- `string adgroup` 最新アトリビューションのアドグループのグループ階層 -- `string creative` 最新アトリビューションのクリエイティブのグループ階層 -- `string clickLabel` 最新アトリビューションのクリックラベル -- `string adid` AdjustユニークID - -### 広告収益のトラッキング - -Adjust SDKを利用して、以下のメソッドを呼び出し広告収益情報をトラッキングできます。 - -```csharp -Adjust.trackAdRevenue(source, payload); -``` - -Adjust SDKに渡す必要があるメソッドパラメータは次のとおりです。 - -- `source` - 広告収益情報のソースを指定する`string`オブジェクト -- `payload` -`広告収益のJSONをstring形態で格納する`string`オブジェクト - -現在Adjustでは以下の`source` パラメータ値のみをサポートしています。 - -- `AdjustConfig.AdjustAdRevenueSourceMopub` は、[メディエーションプラットフォームのMoPub mediation][sdk2sdk-mopub]を示します。 - -### サブスクリプション計測 - -**注**:この機能はSDK v4.22.0以降のみ利用可能です。 - -App StoreとPlay Storeのサブスクリプションをトラッキングし、それぞれの有効性をAdjust SDKで確認できます。サブスクリプションの購入が完了したら、次のようにAdjust SDKを呼び出します。 - -**App Storeサブスクリプションの場合:** - -```csharp -AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription( - price, - currency, - transactionId, - receipt); -subscription.setTransactionDate(transactionDate); -subscription.setSalesRegion(salesRegion); - -Adjust.trackAppStoreSubscription(subscription); -``` - -**Play Storeサブスクリプションの場合:** - -```csharp -AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription( - price, - currency, - sku, - orderId, - signature, - purchaseToken); -subscription.setPurchaseTime(purchaseTime); - -Adjust.trackPlayStoreSubscription(subscription); -``` - -App Storeサブスクリプションのためのサブスクリプション トラッキング パラメータ: - -- [price](https://developer.apple.com/documentation/storekit/skproduct/1506094-price?language=objc) -- currency([priceLocale](https://developer.apple.com/documentation/storekit/skproduct/1506145-pricelocale?language=objc)オブジェクトの[currencyCode](https://developer.apple.com/documentation/foundation/nslocale/1642836-currencycode?language=objc)を渡す必要がある) -- [transactionId](https://developer.apple.com/documentation/storekit/skpaymenttransaction/1411288-transactionidentifier?language=objc) -- [receipt](https://developer.apple.com/documentation/foundation/nsbundle/1407276-appstorereceipturl) -- [transactionDate](https://developer.apple.com/documentation/storekit/skpaymenttransaction/1411273-transactiondate?language=objc) -- salesRegion([priceLocale](https://developer.apple.com/documentation/storekit/skproduct/1506145-pricelocale?language=objc)オブジェクトの[countryCode](https://developer.apple.com/documentation/foundation/nslocale/1643060-countrycode?language=objc)を渡す必要がある) - -Play Storeサブスクリプションのサブスクリプション トラッキング パラメータ: - -- [price](https://developer.android.com/reference/com/android/billingclient/api/SkuDetails#getpriceamountmicros) -- [currency](https://developer.android.com/reference/com/android/billingclient/api/SkuDetails#getpricecurrencycode) -- [sku](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getsku) -- [orderId](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getorderid) -- [signature](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getsignature) -- [purchaseToken](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getpurchasetoken) -- [purchaseTime](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getpurchasetime) - -**注:** Adjust SDKが提供するサブスクリプション計測APIでは、全てのパラメータが `string` 値として渡されることを想定しています。上記で説明したパラメータは、サブスクリプションをトラッキングする前にAPIがサブスクリプションオブジェクトに渡すように要求するパラメータです。Unityにはアプリ内購入で取り扱っている様々なライブラリがありますが、各ライブラリはサブスクリプションの購入が正常に完了した時点で、上記の情報を何らかの形で返す必要があります。アプリ内課金で使用しているライブラリから取得したレスポンスの中で、これらのパラメータが配置されている場所を特定し、その値を抽出して文字列値としてAdjust APIに渡す必要があります。 - -イベント計測と同様に、コールバックやパートナーのパラメータをサブスクリプションオブジェクトに付与できます。 - -**App Storeサブスクリプションの場合:** - -```csharp -AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription( - price, - currency, - transactionId, - receipt); -subscription.setTransactionDate(transactionDate); -subscription.setSalesRegion(salesRegion); - -// コールバックパラメータの追加 -subscription.addCallbackParameter("key","value"); -subscription.addCallbackParameter("foo","bar"); - -// パートナーパラメータの追加 -subscription.addPartnerParameter("key","value"); -subscription.addPartnerParameter("foo","bar"); - -Adjust.trackAppStoreSubscription(subscription); -``` - -**Play Storeサブスクリプションの場合:** - -```csharp -AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription( - price, - currency, - sku, - orderId, - signature, - purchaseToken); -subscription.setPurchaseTime(purchaseTime); - -// コールバックパラメータの追加 -subscription.addCallbackParameter("key","value"); -subscription.addCallbackParameter("key","bar"); - -// パートナーパラメータの追加 -subscription.addPartnerParameter("key","value"); -subscription.addPartnerParameter("foo","bar"); - -Adjust.trackPlayStoreSubscription(subscription); -``` - -### セッションとイベントのコールバック - -イベントとセッションの両方、もしくはどちらかを計測し、成功か失敗かの通知を受け取れるようコールバックを設定できます。 - -トラッキングに成功したイベントへのコールバック関数を次のように追加してください。 - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setEventSuccessDelegate(EventSuccessCallback); - -Adjust.start(adjustConfig); - -// ... - -public void EventSuccessCallback(AdjustEventSuccess eventSuccessData) { - // ... -} -``` - -トラッキングに失敗したイベントへのコールバック関数を次のように追加してください。 - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setEventFailureDelegate(EventFailureCallback); - -Adjust.start(adjustConfig); - -// ... - -public void EventFailureCallback(AdjustEventFailure eventFailureData) { - // ... -} -``` - -トラッキングに成功したセッションの場合 - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setSessionSuccessDelegate(SessionSuccessCallback); - -Adjust.start(adjustConfig); - -// ... - -public void EventSuccessCallback(AdjustEventSuccess eventSuccessData) { - // ... -} -``` - -トラッキングに失敗したセッションの場合 - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setSessionFailureDelegate(SessionFailureCallback); - -Adjust.start(adjustConfig); - -// ... - -public void SessionFailureCallback (AdjustSessionFailure sessionFailureData) { - // ... -} -``` - -コールバック関数は、SDKがサーバーにパッケージ送信を試みた後でコールされます。コールバック内でコールバック用のレスポンスデータオブジェクトを確認することができます。セッションのレスポンスデータのプロパティ概要は次のとおりです。 - -- `string Message` サーバーからのメッセージまたはSDKのエラーログ -- `string Timestamp` サーバーからのタイムスタンプ -- `string Adid` Adjustが提供するユニークデバイスID --`Dictionary JsonResponse` サーバーからのレスポンスのJSONオブジェクト - -どちらのイベントレスポンスデータオブジェクトも以下を含みます。 - -- `string EventToken` トラッキングしたパッケージがイベントだった場合、そのイベントトークン -- `string CallbackId` イベントオブジェクトにカスタム設定されたコールバックID - -失敗したイベントとセッションのオブジェクトには以下を含みます。 - -- `bool WillRetry` 後に再送を試みる予定であるかどうかを示します。 - -### ユーザーアトリビューション - -アトリビューションコールバックと同様に、このコールバックは、アトリビューション値に変化があるたびに作動します。ユーザーの現在のアトビリューション値に関する情報にアクセスする場合は`Adjust`インスタンスの次のメソッドをコールしてください。 - -```cs -AdjustAttribution attribution = Adjust.getAttribution(); -``` - -**注**:現在のアトリビューションに関する情報は、バックエンドがアプリのインストールをトラッキングして、アトリビューションコールバックがトリガーされた後でのみ利用できます。SDKが初期化され最初のアトリビューションコールバックが作動する前にユーザーのアトリビューション値にアクセスすることはできません。 - -### デバイスID - -Adjust SDKがデバイスIDを受信するように設定できます。 - -### iOS広告ID - -IDFAを取得するには、`Adjust` インスタンスの関数`getIdfa` `をコースしてください。 - -```cs -string idfa = Adjust.getIdfa(); -``` - -### Google Play 開発者サービス広告ID - -Google 広告ID(gps_adid)は、バックグラウンドでのスレッドでしか読み込みできないという制約があります。Adjust` インスタンスの`getGoogleAdId` メソッドを`Action` デリゲートでコールすると、この条件以外でも取得できるようになります。 - -```cs -Adjust.getGoogleAdId((string googleAdId) => { - // ... -}); -``` - -Google 広告 IDを変数 `googleAdId`変数として利用できます。 - -### Amazon広告ID - -Amazon広告 IDを取得する必要がある場合は、`Adjust` インスタンスで`getAmazonAdId`メソッドをコールしてください。 - -```cs -string amazonAdId = Adjust.getAmazonAdId(); -``` - -### AdjustデバイスID - -Adjustのバックエンドでは、アプリがインストールされている各デバイスに対してユニークなAdjustデバイスID(`adid` )を生成します。このIDを取得するには、`Adjust` インスタンスの以下のこのメソッドをコールしてください。 - -```cs -String adid = Adjust.getAdid(); -``` - -adidに関する情報は、Adjustのバックエンドがアプリのインストールを計測した後でのみ利用できます。Adjust SDKが初期化され、アプリのインストールが正常に計測されrまで、adidにアクセスすることができません。 - -### プリインストールトラッカー - -Adjust SDKで、アプリがプリインストールされている(端末購入時にあらかじめインストールされている状態)デバイスのユーザーを認識するには、次の手順で設定を行なってください。 - -1. [管理画面]で新しいトラッカーを作成してください。 -2. `AdjustConfig`のデフォルトトラッカーを設定してください。 - - ```cs - AdjustConfig adjustConfig = new AdjustConfig(appToken, environment); - AdjustConfig adjustConfig = new AdjustConfig(appToken, environment); - Adjust.start(adjustConfig); - ``` - - `{TrackerToken}`にステップ2で作成したトラッカートークン(たとえば`{abc123}`)を入れてください。 - -管理画面にはトラッカーURL(`http://app.adjust.com/`など)が表示されますが、ソースコード内には、このURL全体ではなく、6文字または7文字のトークンのみを入力してください。 - -3. アプリをビルドして実行してください。ログ出力に次のような行が表示されるはずです。 - - ``` - Default tracker: 'abc123' - ``` - -### オフラインモード - -オフラインモードは、後から送信する計測データを保持しつつ、Adjustサーバーへの送信を一時停止します。Adjust SDKがオフラインモード中の場合、全ての情報がファイルに保存されるため、イベントを多く発生させすぎないようご注意ください。 - -`true`パラメータで`setOfflineMode` を呼び出すと、オフラインモードを有効にできます。 - -```cs -Adjust.setOfflineMode(true); -``` - -`false`パラメータで`setOfflineMode` with `false` を呼び出すと、オフラインモードを解除できます。Adjust SDKがオンラインモードに戻った時、保存されていた情報は正しいタイムスタンプでAdjustのサーバーに送信されます。 - -この設定はセッション間で記憶されません。つまり、オフラインモード時にアプリを終了しても、次にSDKが起動した時にはオンラインモードとしてアプリが起動します。 - -### トラッキングの無効化 - -` setEnabled`に`false`パラメータを渡すことで、Adjust SDKが行うデバイスアクティビティの計測を全て無効にできます。この設定はセッション間で記憶されますが、最初のセッションの後でしか有効化できません。 - -```cs -Adjust.setEnabled(false); -``` - -Adjust SDKが現在有効かどうかは、 `isEnabled`メソッドで確認できます。`enabled` パラメータを`true`に設定して `setEnabled`を呼び出すと、Adjust SDKをいつでも有効にできます。 - -### イベントバッファリング - -アプリでイベント計測を多用している場合は、一部のネットワークリクエストを遅らせて、1分間ごとにまとめて送信したほうがいい場合があります。`AdjustConfig` インスタンスでイベントのバッファリングを有効にしてください。 - -```cs -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setEventBufferingEnabled(true); - -Adjust.start(adjustConfig); -``` - -何も設定されていない場合、イベントバッファリングはデフォルトで無効になっています。 - -### バックグラウンドでのトラッキング - -Adjust SDKは、アプリがバックグラウンドにある間は、ネットワークリクエストをデフォルトで一時停止するようになっています。この設定は`AdjustConfig` インスタンスで変更できます。 - -```csharp -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setSendInBackground(true); - -Adjust.start(adjustConfig); -``` - -### GDPR 忘れられる権利 - -EUの一般データ保護規制(GDPR)第17条に基づいて、ユーザーが「忘れられる権利(right to be forgotten)」を行使した場合は、Adjustに通知することができます。次のメソッドを呼び出して、ユーザーの申請をAdjustバックエンドに伝えるようAdjust SDKに指示してください。 - -```cs -```Adjust.gdprForgetMe(); -``` - -この情報を受け取ると、Adjustは該当ユーザーのデータを消去し、Adjust SDKはユーザーのトラッキングを停止します。以降、そのデバイスからのリクエストはAdjustに送信されません。 - -テスト段階でこのメソッドを利用した場合も、消去処理は永続的なものであることに注意してください。元に戻すことはできません。 - - -### 特定のユーザーに対してサードパーティーとの共有を無効にする - -ユーザーがマーケティングを目的とするパートナーとのデータ共有を拒否する権利を行使した一方、統計目的でのデータ共有を許可した場合、Adjustに通知できるようになりました。 - -次のメソッドを呼び出して、ユーザーの選択(データ共有を無効にする)をAdjustバックエンドに伝えるようAdjust SDKに指示してください。 - -```csharp -Adjust.disableThirdPartySharing(); -``` - -この情報を受け取ると、Adjustは特定のユーザーに関してパートナーとのデータ共有をブロックし、Adjust SDKは通常通り機能します。 - -## テストとトラブルシューティング - -### iOSデバッグ情報 - -ポストビルドスクリプトを使っていても、プロジェクトがすぐに使える状態で実行できるとは限りません。 - -必要であれば、dSYMファイルを無効化してください。`Project Navigator` から`Unity-iPhone` プロジェクトを選択し、`Build Settings` タブをクリックして`debug information` を検索してください。`Debug Information Format` または`DEBUG_INFORMATION_FORMAT` オプションがあるはずです。これを`DWARF with dSYM File` から`DWARF`に変更してください。 - - -[dashboard]: http://dash.adjust.com -[adjust.com]: http://adjust.com - -[en-readme]: ../../README.md -[zh-readme]: ../chinese/README.md -[ja-readme]: ../japanese/README.md -[ko-readme]: ../korean/README.md - -[sdk2sdk-mopub]: doc/english/sdk-to-sdk/mopub.md - -[ios]: https://github.com/adjust/ios_sdk -[android]: https://github.com/adjust/android_sdk -[releases]: https://github.com/adjust/adjust_unity_sdk/releases -[google_ad_id]: https://developer.android.com/google/play-services/id.html -[ios-deeplinking]: https://github.com/adjust/ios_sdk/#deeplinking-reattribution -[attribution_data]: https://github.com/adjust/sdks/blob/master/doc/attribution-data.md -[special-partners]: https://docs.adjust.com/en/special-partners -[unity-purchase-sdk]: https://github.com/adjust/unity_purchase_sdk -[android-deeplinking]: https://github.com/adjust/android_sdk#deep-linking -[google_play_services]: http://developer.android.com/google/play-services/setup.html -[android_sdk_download]: https://developer.android.com/sdk/index.html#Other -[install-referrer-aar]: https://maven.google.com/com/android/installreferrer/installreferrer/1.0/installreferrer-1.0.aar -[android-custom-receiver]: https://github.com/adjust/android_sdk/blob/master/doc/english/referrer.md - -[menu_android]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/menu_android.png -[adjust_editor]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/adjust_editor.png -[import_package]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/import_package.png -[android_sdk_location]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/android_sdk_download.png -[android_sdk_location_new]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/android_sdk_download_new.png - -## ライセンス - -### ライセンス契約 - -ファイルmod_pbxproj.pyは、ApacheライセンスVer.2.0(以下「ライセンス」)に基づいて使用が許諾されています。 -このファイルを使用するためには、本ライセンスの規約に従ってください。 -本ライセンスのコピーはhttp://www.apache.org/licenses/LICENSE-2.0で入手できます。 - -Adjust SDKはMITライセンスを適用しています。 - -Copyright (c) 2012-2020 Adjust GmbH, http://www.adjust.com - -以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」) の複製を取得する全ての人に対し、 -ソフトウェアを無制限に扱うことを無償で許可します。 -これには、ソフトウェアの複製を -使用、複写、変更、マージ、掲載、流通、サブライセンス、および/または販売する権利、 -また、ソフトウェアを提供する相手に同じ許可を与える -権利も無制限に含まれます。 - -上記の著作権表示ならびに本許諾表示を、ソフトウェアの全ての -複製または重要な部分に記載するものとします。 - -本ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。 -ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証を含みますが、それに限定されたものではありません。 -いかなる場合でも、 -作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用 -またはその他の取り扱いによって生じる一切の請求、損害、その他の義務について -何らの責任も負わないものと -します。 diff --git a/doc/japanese/sdk-to-sdk/mopub.md b/doc/japanese/sdk-to-sdk/mopub.md deleted file mode 100644 index 19b20c82..00000000 --- a/doc/japanese/sdk-to-sdk/mopub.md +++ /dev/null @@ -1,24 +0,0 @@ -## MoPubの広告収益をAdjust SDKで計測 - -[Adjust Unity SDK README][unity-readme] - -[MoPub Unity documentation][mopub-docs] - -本機能には以下のSDKバージョンとそれ以降のバージョンが必須となります: - -- **Adjust SDK v4.18.0** -- **MoPub SDK v5.7.0** - -MoPub SDKの `OnImpressionTrackedEvent` コールバックメソッドの実装内で、以下のようにAdjust SDKの`trackAdRevenue` メソッドを呼び出す必要があります。 - -```csharp -private void OnImpressionTrackedEvent(string adUnitId, MoPub.ImpressionData impressionData) { - // Pass impression data JSON to Adjust SDK. - Adjust.trackAdRevenue(AdjustConfig.AdjustAdRevenueSourceMopub, impressionData.JsonRepresentation); -} -``` - -MoPub連携による広告収益計測についてご質問がございましたら、担当のアカウントマネージャーもしくはsupport@adjust.comまでお問い合わせください。 - -[mopub-docs]: https://developers.mopub.com/publishers/unity/impression-data/ -[unity-readme]: ../../japanese/README.md diff --git a/doc/korean/README.md b/doc/korean/README.md deleted file mode 100644 index ea76f69b..00000000 --- a/doc/korean/README.md +++ /dev/null @@ -1,1081 +0,0 @@ -## 요약 - -Adjust™의 Unity SDK 관련 문서입니다. Unity SDK는 iOS, Android, Windows Store 8.1, Windows Phone 8.1 및 Windows 10을 지원합니다. [adjust.com]에서 Adjust™에 대한 정보를 더 자세히 알아보세요. - -**참고**: Adjust Unity SDK **4.12.0** 버전부터는 **Unity 5 이상** 버전과 호환됩니다. - -**참고**: Adjust Unity SDK **4.19.2** 버전부터는 **Unity 2017.1.1 이상** 버전과 호환됩니다. - -**참고**: Adjust Unity SDK **4.21.0** 버전부터는 **Unity 2017.4.1 이상** 버전과 호환됩니다. - -다른 언어로 읽기: [English][en-readme], [中文][zh-readme], [日本語][ja-readme], [한국어][ko-readme]. - -## 목차 - -### 빠른 시작 - - * [시작하기](#qs-getting-started) - * [SDK 설치](#qs-get-sdk) - * [프로젝트에 SDK 추가](#qs-add-sdk) - * [앱에 SDK 연동](#qs-integrate-sdk) - * [Adjust 로깅(logging)](#qs-adjust-logging) - * [Google Play 서비스](#qs-gps) - * [Proguard 설정](#qs-android-proguard) - * [Google 설치 참조자](#qs-install-referrer) - * [Huawei 리퍼러 API](#qs-huawei-referrer-api) - * [빌드 후 절차](#qs-post-build-process) - * [iOS 빌드 후 절차](#qs-post-build-ios) - * [Android 빌드 후 절차](#qs-post-build-android) - * [SDK 서명](#qs-sdk-signature) - -### 딥링크 - - * [딥링크 개요](#dl) - * [표준 딥링크](#dl-standard) - * [디퍼드 딥링크](#dl-deferred) - * [Android 앱에서 딥링크 처리하기](#dl-app-android) - * [iOS 앱에서 딥링크 처리하기](#dl-app-ios) - -### 이벤트 추적 - - * [이벤트 추적](#et-tracking) - * [매출 추적](#et-revenue) - * [매출 중복 제거](#et-revenue-deduplication) - * [인앱 결제 검증](#et-purchase-verification) - -### 커스텀 파라미터 - - * [커스텀 파라미터 개요](#cp) - * [이벤트 파트너 파라미터](#cp-event-partner-parameters) - * [이벤트 콜백 파라미터](#cp-event-callback-parameters) - * [이벤트 파트너 파라미터](#cp-event-partner-parameters) - * [이벤트 콜백 식별자](#cp-event-callback-id) - * [세션 파라미터](#cp-session-parameters) - * [세션 콜백 파라미터](#cp-session-callback-parameters) - * [세션 파트너 파라미터](#cp-session-partner-parameters) - * [지연 시작](#cp-delay-start) - -### 부가 기능 - - * [AppTrackingTransparency 프레임워크](#ad-att-framework) - * [앱 추적 인증 래퍼](#ad-ata-wrapper) - * [SKAdNetwork 프레임워크](#ad-skadn-framework) - * [푸시 토큰(삭제 추적)](#ad-push-token) - * [어트리뷰션 콜백](#ad-attribution-callback) - * [광고 매출 추적](#ad-ad-revenue) - * [구독 추적](#ad-subscriptions) - * [세션 및 이벤트 콜백](#ad-session-event-callbacks) - * [사용자 어트리뷰션](#ad-user-attribution) - * [기기 ID](#ad-device-ids) - * [iOS 광고 식별자](#ad-idfa) - * [Google Play 서비스 광고 식별자](#ad-gps-adid) - * [Amazon 광고 식별자](#ad-amazon-adid) - * [Adjust 기기 식별자](#ad-adid) - * [사전 설치 트래커](#ad-pre-installed-trackers) - * [오프라인 모드](#ad-offline-mode) - * [추적 비활성화](#ad-disable-tracking) - * [이벤트 버퍼링](#ad-event-buffering) - * [백그라운드 추적](#ad-background-tracking) - * [GDPR 잊혀질 권리(Right to be Forgotten)](#ad-gdpr-forget-me) - * [타사 공유 비활성화](#ad-disable-third-party-sharing) - -### 테스트 및 문제 해결 - * [iOS에서 정보 디버그](#tt-debug-ios) - -### 라이센스 - * [라이센스 계약](#license) - - -## 빠른 시작 - -### 시작하기 - -Unity 프로젝트에 Adjust SDK를 연동하려면 다음과 같이 실행하세요. - -### SDK 설치 - -최신 버전은 [Adjust releases 페이지](https://github.com/adjust/unity_sdk/releases)에서 다운로드하실 수 있습니다. - -### 프로젝트에 SDK 추가 - -Unity 에디터에서 프로젝트를 열고, `Assets → Import Package → Custom Package`로 이동한 다음 다운로드한 Unity 패키지 파일을 선택합니다. - -![][import_package] - -### 앱에 SDK 연동 - -첫 씬에 `Assets/Adjust/Adjust.prefab`의 프리팹(prefab)을 추가합니다. - -`Inspector menu` 프리팹의 Adjust 스크립트 파라미터를 수정하여 다음 옵션을 설정할 수 있습니다. - -* [수동으로 시작](#start-manually) -* [이벤트 버퍼링](#event-buffering) -* [백그라운드에서 보내기](#background-tracking) -* [디퍼드 딥링크 실행](#deeplinking-deferred-open) -* [앱 토큰](#app-token) -* [로그 수준](#adjust-logging) -* [환경](#environment) - -![][adjust_editor] - -{YourAppToken}`을 실제 앱 토큰으로 교체합니다. 대시보드에서 앱 토큰을 찾으려면 [이 단계](https://help.adjust.com/en/dashboard/apps/app-settings#view-your-app-token)를 수행하세요. - -테스트와 배포 중 어느 목적으로 앱을 빌드하는지에 따라 환경 설정을 `Sandbox` 나 `Production` 으로 변경해야 합니다. - -**중요:** 앱을 테스트하는 경우 값을 `Sandbox`로 설정해야 합니다. 앱을 퍼블리시할 준비가 완료되면 환경 설정을 `Production`으로 변경하고, 앱 테스트를 새로 시작한다면 `Sandbox`로 다시 설정하세요. Adjust 대시보드는 기본적으로 앱의 Production 트래픽을 표시하므로, Sandbox 모드에서 테스트하는 동안 생성된 트래픽을 보려면 대시보드에서 Sandbox 트래픽 보기로 전환하세요. - -Adjust는 테스트 기기에서 발생하는 인위적 트래픽과 실제 트래픽을 구분하기 위해 환경 설정을 사용합니다. 환경 설정을 최신 상태로 유지하세요. - -앱의 `Awake` 이벤트 실행 시 Adjust SDK를 자동으로 시작하려면 `Start Manually` 를 선택합니다. 이 옵션을 선택하면 `AdjustConfig` 객체를 파라미터로 `Adjust.start` 메서드를 호출하여 코드 내에서 Adjust SDK를 초기화하고 시작합니다. - -`Assets/Adjust/ExampleGUI/ExampleGUI.unity`.에서 버튼 메뉴가 있는 씬 예시를 확인할 수 있습니다. - -이 씬의 소스는 `Assets/Adjust/ExampleGUI/ExampleGUI.cs`.에 있습니다. - -### Adjust 로깅(logging) - -`Log Level`을 다음과 같이 변경하여 로그의 데이터 분할도를 조절할 수 있습니다. - -- `Verbose` - 모든 로그 활성화 -- `Debug` - 자세한 로그 비활성화 -- `Info` - 디버그 로그 비활성화(기본) -- `Warn` - 정보 로그 비활성화 -- `Error` - 경고 로그 비활성화 -- `Assert` - 오류 로그 비활성화 -- `Suppress` - 모든 로그 비활성화 - -수동으로 Adjust SDK 초기화 시 모든 로그 출력을 비활성화하려면 로그 수준을 `Suppress`로 설정하고 `AdjustConfig` 객체에 생성자를 사용하세요. 그러면 Suppress 로그 수준 지원 여부를 입력할 수 있는 부울자료 파라미터가 열립니다. - -```cs -string appToken = "{YourAppToken}"; -AdjustEnvironment environment = AdjustEnvironment.Sandbox; - -AdjustConfig config = new AdjustConfig(appToken, environment, true); -config.setLogLevel(AdjustLogLevel.Suppress); - -Adjust.start(config); -``` - -타겟이 Windows 기반이며 Adjust 라이브러리의 컴파일된 로그를 `released` 모드로 보고 싶으시다면 `debug` 모드에서 앱을 테스트하면서 로그 출력을 앱으로 리다이렉트합니다. - -SDK를 시작하기 전에 `AdjustConfig` 인스턴스에서 `setLogDelegate` 메서드를 호출합니다. - -```cs -//... -adjustConfig.setLogDelegate(msg => Debug.Log(msg)); -//... -Adjust.start(adjustConfig); -``` - -### Google Play 서비스 - -2014년 8월 1일부터 고유 기기 식별을 위해 Google Play Store 앱에 대해 [Google 광고 식별자][google_ad_id] 사용이 의무화되었습니다. Adjust SDK가 Google 광고 식별자를 사용하도록 허용하려면 [Google Play 서비스][google_play_services]를 연동해야 합니다. 이를 위해서는 `google-play-services_lib` 폴더(Android SDK의 일부)를 Unity 프로젝트의 `Assets/Plugins/Android` 폴더로 복사합니다. - -주로 두 가지 방법으로 Android SDK를 다운로드할 수 있습니다. `Android SDK Manager`를 사용하는 모든 도구에는 Android SDK 도구를 다운로드 및 설치할 수 있는 빠른 링크가 있습니다. Android SDK 도구를 설치한 후에는 `SDK_FOLDER/extras/google/google_play_services/libproject/` 폴더에서 라이브러리를 찾을 수 있습니다. - -![][android_sdk_location] - -Android SDK Manager와 함께 사용하는 도구가 없다면 공식 독자적 솔루션인 [Android SDK][android_sdk_download]를 다운로드하세요. 그런 다음 `SDK Readme.txt`의 지침에 따라 Android SDK 도구를 다운로드하세요. Google이 제공한 README는 Android SDK 폴더에 있습니다. - -**업데이트**: Google은 최신 Android SDK 버전에서 루트 SDK 폴더 내 Google Play Services 폴더의 구조를 다음과 같이 변경했습니다. - -![][android_sdk_location_new] - -이제 Adjust SDK에서 필요로 하는 Google Play Services 라이브러리의 일부인 basement만 추가할 수 있습니다. 이를 위해 `Assets/Plugins/Android` 폴더에 `play-services-basement-x.y.z.aar` 파일을 추가하세요. - -Google Play 서비스 라이브러리 15.0.0 이후 버전부터 Google은 Google 광고 식별자 획득에 필요한 클래스를 `play-services-ads-identifier`] 패키지로 이동했습니다. 라이브러리 15.0.0 이후 버전을 사용하는 경우 이 패키지를 앱에 추가하세요. 완료되면 Adjust SDK가 Google 광고 식별자를 올바르게 획득하는지 테스트하세요. 사용되는 Unity 통합 개발 환경(IDE)에 따라 일부 불일치가 발생하는 경우가 확인되었습니다. - -#### Google 광고 식별자 테스트 - -Adjust SDK에서 Google 광고 식별자를 수신하고 있는지 확인하려면 `sandbox` 모드에서 구동되도록 SDK를 설정하고 로그 수준을 `verbose`로 지정한 후, 앱을 실행합니다. 세션이나 앱 내 이벤트를 추적하고, 추적이 완료되면 자세한 로그에 기록된 파라미터 리스트를 확인합니다. `gps_adid`라는 파라미터가 확인되면 Adjust SDK가 Google 광고 식별자를 읽는 데 성공한 것입니다. - -Google 광고 식별자를 읽는 데 문제가 있다면 Adjust의 Github 리포지토리에서 문제를 제시하거나 support@adjust.com으로 메일 주시기 바랍니다. - -### Proguard 설정 - -Proguard를 사용하는 경우, Proguard 파일에 다음 줄을 추가하세요. - -``` --keep public class com.adjust.sdk.** { *; } --keep class com.google.android.gms.common.ConnectionResult { - int SUCCESS; -} --keep class com.google.android.gms.ads.identifier.AdvertisingIdClient { - com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context); -} --keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info { - java.lang.String getId(); - boolean isLimitAdTrackingEnabled(); -} --keep public class com.android.installreferrer.** { *; } -``` - -### Google 설치 리퍼러 - -Android 앱의 설치를 올바르게 어트리뷰션하려면 Adjust에 Google 설치 리퍼러 대한 정보를 제공해야 합니다. 이를 위해 **Google Play Referrer API**를 사용하거나 **Google Play Store intent** 브로드캐스트 리시버를 캐치할 수 있습니다. - -Google은 Google Play Store intent보다 더 신뢰할 수 있고 안전한 방법으로 설치 참조자 정보를 획득하고 어트리뷰션 제공자가 클릭 인젝션에 대응할 수 있는 수단으로 Google Play Referrer API를 도입했습니다. Google Play Store intent는 당분간은 API와 함께 사용 가능하지만, 향후 지원이 중단될 예정입니다. 이러한 조치에 협조해주시기를 부탁드립니다. - -Adjust의 빌드 후 절차는 Google Play Store intent를 감지합니다. 몇 가지 단계를 수행하여 새로운 Google Play Referrer API 지원을 추가하세요. - -Google Play Referrer API 지원을 추가하려면 Maven 리포지토리에서 [설치 리퍼러 라이브러리][install-referrer-aar]를 다운로드하고 `Plugins/Android` 폴더로 AAR 파일을 가져오세요. - -#### Huawei 리퍼러 API - -Adjust SDK 4.21.1 버전부터는 Huawei 앱 갤러리 버전이 10.4 이상인 Huawei 기기에 설치 추적을 지원합니다. Huawei 리퍼러 API를 사용하기 위해 추가적인 연동 단계를 수행하지 않아도 됩니다. - -### 빌드 후 절차 - -Adjust Unity 패키지를 사용하면 앱 빌드 절차를 완료하기 위해 맞춤 빌드 후 작업을 수행하여 Adjust SDK가 앱 내에서 제대로 작동하도록 할 수 있습니다. - -이 절차는 `AdjustEditor.cs`의 `OnPostprocessBuild` 메서드에서 수행합니다. 또한 Unity IDE 콘솔 출력 창에 로그 출력 메시지가 작성됩니다. - -### iOS 빌드 후 절차 - -iOS 빌드 후 절차를 올바르게 실행하려면 Unity 이후 버전을 사용하고`iOS build support`를 설치하세요. iOS 빌드 후 절차는 생성한 Xcode 프로젝트를 다음과 같이 변경합니다. - -- `iAd.framework` 추가 (Apple Search Ads 추적에 필요) -- `AdSupport.framework` 추가 (IDFA 읽기에 필요) -- `CoreTelephony.framework` 추가 (네트워크 기기의 읽기 유형 연결에 필요) -- 다른 링커 플래그 `-ObjC` 추가(빌드 시간 동안 Objective-C 인식에 필요) -- `Objective-C exceptions` 활성화 - -iOS 14 지원을 활성화하면(`Assets/Adjust/Toggle iOS 14 Support`), 두 개의 프레임워크가 iOS 빌드 후 절차를 통해 Xcode 프로젝트에 추가됩니다. - -- `AppTrackingTransparency.framework` 추가(추적에 대한 사용자 동의 요청 및 동의 상태 획득에 필요) -- `StoreKit.framework` 추가 (SKAdNetwork 프레임워크와의 커뮤니케이션에 필요) - -### Android 빌드 후 절차 - -Android 빌드 후 절차는 `Assets/Plugins/Android/`에 있는 `AndroidManifest.xml` 파일을 변경하며, Android 플러그인 폴더에 `AndroidManifest.xml` 파일이 있는지도 확인합니다. 파일이 없으면 빌드 후 절차가 호환되는 manifest 파일`AdjustAndroidManifest.xml`의 사본을 생성합니다. 이미 `AndroidManifest.xml` 파일이 있다면 빌드 후 절차는 파일을 다음과 같이 변경합니다. - -- `INTERNET` 권한 추가(인터넷 연결에 필요) -- `ACCESS_WIFI_STATE` 권한 추가(Play Store를 통해 앱을 배포하지 않는 경우 필요) -- `ACCESS_NETWORK_STATE` 권한 추가(네트워크 기기의 읽기 유형 연결에 필요) -- `BIND_GET_INSTALL_REFERRER_SERVICE` 권한 추가(새로운 Google install referrer API 작동에 필요) -- Adjust 브로드캐스트 리시버 추가(Google Play Store intent를 통해 설치 참조자 정보를 획득하는 데 필요). 자세한 내용은 [Android SDK README][android]를 참조하세요. - -**참고:**: INSTALL_REFERRER intent를 처리하는 자체 브로드캐스트 리시버를 사용하는 경우, Adjust 브로드캐스트 리시버를 manifest 파일에 추가할 필요가 없습니다. 이를 삭제할 수 있지만, [Android 가이드][android-custom-receiver]에 설명된 대로 자체 리시버 내에서 호출을 Adjust 브로드캐스트 리시버에 추가하세요. - -### SDK 서명 - -계정 관리자는 여러분 대신 Adjust SDK 서명을 활성화할 수 있습니다. 이 기능의 사용에 관심이 있는 경우 Adjust 고객 지원팀(support@adjust.com)에 문의하시기 바랍니다. - -계정에서 SDK 서명을 활성화했으며 대시보드의 앱 시크릿에 액세스할 수 있는 경우, `AdjustConfig` 인스턴스에 `setAppSecret` 메서드에 모든 비밀 파라미터(`secretId`, `info1`, `info2`, `info3`, `info4`)를 추가합니다. - -```cs -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setAppSecret(secretId, info1, info2, info3, info4); - -Adjust.start(adjustConfig); -``` - -SDK 서명이 앱에 통합되었습니다. - - -## 딥링크 - -### 딥링크 개요 - -**Adjust는 iOS 및 Android 플랫폼에서 딥링크를 지원합니다.** - -Adjust 트래커 URL에 딥링크를 활성화한 경우, 딥링크 URL과 그 내용에 대한 정보를 받아볼 수 있습니다. 기기에 여러분의 앱을 설치(표준 딥링크)한 사용자와 설치하지 않은(디퍼드 딥링크) 사용자 모두 URL과 상호작용할 수 있습니다. - -표준 딥링크의 경우 Android 플랫폼에서 딥링크 내용을 받아볼 수 있지만, 디퍼드 링크는 Android는 디퍼드 딥링크를 자동 지원되지 않습니다. 디퍼드 딥링크 내용에 액세스하려면 Adjust SDK를 사용하세요. - -생성된 Xcode 프로젝트(iOS) 및 Android Studio/Eclipse 프로젝트(Android) 내에서 **네이티브 수준**에 딥링크 처리를 설정합니다. - -### 표준 딥링크 - -표준 딥링크 정보를 Unity C# 코드로 받아볼 수 없습니다. 앱에서 딥링크 처리를 활성화하면 네이티브 수준의 딥링크 정보를 받게 됩니다. 딥링크를 활성화하는 방법에 관한 자세한 내용([Android](#dl-app-android) 및 [iOS](#dl-app-ios) 앱)을 알아보세요. - -### 디퍼드 딥링크 - -디퍼드 딥링크 내용에 대한 정보를 획득하려면 `AdjustConfig` 객체에 콜백 메서드를 설정해야 합니다. 그러면 URL 내용이 전달되는`string` 파라미터 1개를 받게 됩니다. 다음과 같이 `setDeferredDeeplinkDelegate` 메서드를 호출하여 설정 객체에 이 메서드를 설정합니다. - -```cs -// ... - -private void DeferredDeeplinkCallback(string deeplinkURL) { - Debug.Log("Deeplink URL: " + deeplinkURL); - - // ... -} - -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setDeferredDeeplinkDelegate(DeferredDeeplinkCallback); - -Adjust.start(adjustConfig); -``` - -디퍼드 딥링크에서 `AdjustConfig` 개체에 설정할 수 있는 추가 설정이 하나 있습니다. Adjust SDK가 디퍼드 딥링크 정보를 획득하면 SDK가 이 URL을 열도록 할지 선택할 수 있습니다. 설정 개체의 `setLaunchDeferredDeeplink` 메서드를 호출하여 이 옵션을 설정할 수 있습니다. - -```cs -// ... - -private void DeferredDeeplinkCallback(string deeplinkURL) { - Debug.Log ("Deeplink URL: " + deeplinkURL); - - // ... -} - -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setLaunchDeferredDeeplink(true); -adjustConfig.setDeferredDeeplinkDelegate(DeferredDeeplinkCallback); - -Adjust.start(adjustConfig); -``` - -아무 것도 설정되지 않은 경우 **Adjust SDK는 기본적으로 항상 URL 실행을 시도합니다**. - -앱에서 딥링크 지원을 활성화하려면 지원되는 플랫폼별로 스킴을 설정해야 합니다. - -### Android 앱에서 딥링크 처리하기 - -Android 앱에서 네이티브 수준의 딥링크 처리를 설정하려면 Adjust의 공식 [Android SDK README][android-deeplinking] 지침을 따르세요. - -네이티브 Android Studio/Eclipse 프로젝트에 수행하는 작업입니다. - -### iOS 앱에서 딥링크 처리하기 - -**네이티브 Xcode 프로젝트에 수행하는 작업입니다.** - -iOS 앱에서 네이티브 수준의 딥링크 처리를 설정하려면 네이티브 Xcode 프로젝트를 사용하고 Adjust의 공식 [iOS SDK README][ios-deeplinking] 지침을 따르세요. - -## 이벤트 추적 - -### 이벤트 추적 - -Adjust를 사용하여 앱의 모든 이벤트를 추적할 수 있습니다. 버튼을 누르는 동작을 모두 추적하려면 대시보드에서 [새로운 이벤트 토큰을 생성](https://help.adjust.com/en/tracking/in-app-events/basic-event-setup#generate-event-tokens-in-the-adjust-dashboard)하세요. 이벤트 토큰이 abc123`이라고 가정해 보겠습니다. 버튼의 클릭 핸들러 메서드에 다음 라인을 추가하면 클릭을 추적할 수 있습니다. - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); -Adjust.trackEvent(adjustEvent); -``` - -### 매출 추적 - -사용자가 광고에 인게이지하거나 앱 내 구매를 진행하여 매출이 창출되면 이벤트를 이용하여 이를 추적할 수 있습니다. 예를 들어, 광고를 한 번 누르는 행위에 €0.01의 매출 금액이 발생한다고 가정해 보겠습니다. 이 경우, 매출 이벤트를 다음과 같이 추적할 수 있습니다. - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); -adjustEvent.setRevenue(0.01, "EUR"); -Adjust.trackEvent(adjustEvent); -``` - -사용자가 통화 토큰을 설정하면 Adjust는 openexchange API를 이용하여 사용자의 선택에 따라 발생 매출을 보고 매출로 자동 전환합니다. [여기에서 통화 전환에 대해 자세히 알아보세요](http://help.adjust.com/tracking/revenue-events/currency-conversion). - -앱 내 구매를 추적하려는 경우, 구매가 완료되고 품목이 구매되었을 때만 `trackEvent`를 호출하십시오. 이는 실제로 사용자에게서 발생하지 않은 매출을 추적하는 것을 방지할 수 있는 중요한 조치입니다. - - -### 매출 중복 제거 - -중복되는 매출을 추적하는 것을 방지하기 위해 트랜잭션 ID를 선택적으로 추가하세요. SDK가 마지막 열 개의 트랜잭션 ID를 기억하며, 중복되는 트랜잭션 ID가 있는 매출 이벤트는 건너뜁니다. 이러한 방식은 인앱 결제 추적에 특히 유용합니다. - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.setRevenue(0.01, "EUR"); -adjustEvent.setTransactionId("transactionId"); - -Adjust.trackEvent(adjustEvent); -``` - -### 인앱 결제 검증 - -서버측 수신 검증 도구인 [Adjust의 결제 검증][unity-purchase-sdk]을 사용하여 앱 결제를 검증하세요. - -## 맞춤 파라미터 - -### 맞춤 파라미터 개요 - -Adjust SDK가 기본적으로 수집하는 데이터 포인트 외에도 Adjust SDK를 사용하여 이벤트나 세션에 필요한 만큼의 맞춤 값을 추적하고 추가할 수 있습니다(사용자 ID, 제품 ID 등). 맞춤 파라미터는 로데이터로만 제공되며 Adjust 대시보드에 표시되지 **않습니다**. - -내부용으로 수집하는 값의 경우 [콜백 파라미터](https://help.adjust.com/en/manage-data/export-raw-data/callbacks/best-practices-callbacks)를 사용하고, 외부 파트너와 공유하는 값의 경우 파트너 파라미터를 사용하세요. 내/외부 공용으로 추적하는 값(예: 제품 ID)의 경우 콜백 파라미터와 파트너 파라미터를 모두 사용하도록 권장합니다. - -### 이벤트 파라미터 - -### 이벤트 콜백 파라미터 - -[대시보드에서] 이벤트에 대한 콜백 URL을 등록하면 이벤트가 추적될 때마다 Adjust가 해당 URL에 GET 요청을 전송합니다. 객체에 키-값 쌍을 입력하고 `trackEvent` 메서드에 전달할 수도 있습니다. 그런 다음 Adjust는 이러한 파라미터를 사용자의 콜백 URL에 추가합니다. - -예를 들어, 사용자가 이벤트를 위해 http://www.adjust.com/callback URL을 등록했으며 다음과 같은 이벤트를 추적한다고 가정해 보겠습니다. - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.addCallbackParameter("key", "value"); -adjustEvent.addCallbackParameter("foo", "bar"); - -Adjust.trackEvent(adjustEvent); -``` - -이 경우, Adjust가 이벤트를 추적하여 다음으로 요청을 전송합니다. - -``` -http://www.example.com/callback?key=value&foo=bar -``` - -Adjust는 iOS용 `{idfa}`나 Android용 `{gps_adid}` 등 파라미터 값으로 사용할 수 있는 다양한 자리 표시자를 지원합니다. 이 예에서는 결과 콜백의 자리 표시자를 현재 기기의 IDFA/Google Play 서비스 ID로 바꾸었습니다. [실시간 콜백](https://help.adjust.com/en/manage-data/export-raw-data/callbacks)에 대해 자세히 알아보고 [자리 표시자](https://partners.adjust.com/placeholders/) 전체 목록을 확인하세요. - -**참고:** Adjust는 맞춤 파라미터를 보관하지 않으며, 콜백에 추가하기만 하기 때문에 이벤트 콜백을 등록하지 않으면 Adjust가 맞춤 파라미터를 읽을 수 없습니다. - - -### 이벤트 파트너 파라미터 - -대시보드에서 파라미터를 활성화한 후에는 네트워크 파트너에게 전송할 수 있습니다. [모듈 파트너](https://docs.adjust.com/en/special-partners/)와 확장 연동 방법에 대해 자세히 알아보세요. - -이는 콜백 파라미터와 동일한 방식으로 이루어집니다. `AdjustEvent` 인스턴스의 `addPartnerParameter` 메서드를 호출하여 추가할 수 있습니다. - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.addPartnerParameter("key", "value"); -adjustEvent.addPartnerParameter("foo", "bar"); - -Adjust.trackEvent(adjustEvent); -``` - -[특별 파트너 가이드][special-partners]에서 특별 파트너와 연동 방법에 대한 자세한 내용을 알아보실 수 있습니다. - -### 이벤트 콜백 식별자 - -추적할 각 이벤트에 맞춤 문자열 ID를 추가할 수도 있습니다. 이 식별자는 이후에 이벤트 콜백에서 보고되며, 이를 통해 성공적으로 추적된 이벤트를 확인할 수 있습니다. AdjustEvent 인스턴스에 setCallbackId 메서드를 호출하여 이 ID를 설정할 수 있습니다. - -```cs -AdjustEvent adjustEvent = new AdjustEvent("abc123"); - -adjustEvent.setCallbackId("Your-Custom-Id"); - -Adjust.trackEvent(adjustEvent); -``` - -### 세션 파라미터 - -세션 파라미터는 로컬에 저장되며 모든 Adjust SDK **이벤트 및 세션**과 함께 전송됩니다. 이러한 파라미터를 추가할 때마다 Adjust가 해당 파라미터를 저장하므로, 다시 추가할 필요가 없습니다. 동일한 파라미터를 다시 추가해도 아무 일도 일어나지 않습니다. - -Adjust SDK가 실행되기 전에 세션 파라미터를 전송할 수 있습니다. [SDK 지연](#cp-delay-start)을 사용하면 추가적인 값(예: 앱 서버의 검증 토큰)을 획득하여 모든 정보를 SDK 초기화 시 일괄 전송할 수 있습니다. - -### 세션 콜백 파라미터 - -이벤트 콜백 파라미터를 저장하여 Adjust 세션마다 전송할 수 있습니다. - -세션 콜백 파라미터의 인터페이스는 이벤트 콜백 파라미터와 유사합니다. 키와 값을 이벤트에 추가하는 대신,`Adjust` 인스턴스의 `addSessionCallbackParameter` 메서드로의 호출을 통해 추가합니다. - -```cs -Adjust.addSessionCallbackParameter("foo", "bar"); -``` - -세션 콜백 파라미터는 콜백 파라미터와 병합되어 모든 정보를 일괄 전송하지만, 이벤트에 콜백 파라미터는 세션 콜백 파라미터보다 우선순위가 높습니다. 세션 콜백 파라미터와 동일한 키로 이벤트 콜백 파라미터를 추가하면 이벤트 값이 표시됩니다. - -원하는 키를 `Adjust` 인스턴스의`removeSessionCallbackParameter` 메서드에 전달하여 특정 세션 콜백 파라미터를 삭제할 수 있습니다. - -```cs -Adjust.removeSessionCallbackParameter("foo"); -``` - -세션 콜백 파라미터에서 모든 키와 키에 상응하는 값을 삭제하려면 Adjust` 클래스의 `resetSessionCallbackParameters` 메서드로 재설정하면 됩니다. - -```cs -Adjust.resetSessionCallbackParameters(); -``` - -### 세션 파트너 파라미터 - -Adjust SDK를 트리거하는 모든 이벤트 또는 세션마다 전송되는 [세션 콜백 파라미터](#cp-session-callback-parameters)가 있는 것처럼 세션 파트너 파라미터도 있습니다. - -이러한 세션 파트너 파라미터는 [대시보드]에서 활성화된 모든 네트워크 파트너 연동에 전송됩니다. - -세션 파트너 파라미터는 이벤트 파트너 파라미터와 유사한 인터페이스를 가집니다. 키와 값을 이벤트에 추가하는 대신,`Adjust` 인스턴스의 `addSessionPartnerParameter` 메서드로의 호출을 통해 추가합니다. - -```cs -Adjust.addSessionPartnerParameter("foo", "bar"); -``` - -세션 파트너 파라미터는 이벤트 파트너 파라미터와 병합됩니다. 단, 이벤트 파트너 파라미터는 세션 파트너 파라미터보다 높은 우선순위를 가집니다. 세션 파트너 파라미터와 동일한 키로 이벤트 파트너 파라미터를 추가하면 이벤트 값이 표시됩니다. - -원하는 키를 `Adjust` 인스턴스의 removeSessionPartnerParameter` 메서드에 전달하여 특정 세션 파트너 파라미터를 삭제할 수 있습니다. - -```cs -Adjust.removeSessionPartnerParameter("foo"); -``` - -세션 파트너 파라미터에서 모든 키와 키에 상응하는 값을 삭제하려면 Adjust` 클래스의 ``resetSessionPartnerParameters` 메서드로 재설정하면 됩니다. - -```cs -Adjust.resetSessionPartnerParameters(); -``` - -### 시작 지연 - -Adjust SDK의 시작을 지연시키면 앱이 고유 ID와 같은 세션 파라미터를 획득할 시간이 확보되므로, 세션 파라미터를 설치 시에 전송할 수 있게 됩니다. - -AdjustConfig 인스턴스의 setDelayStart 필드로 초기 지연 시간을 초 단위로 설정하세요. - -```cs -adjustConfig.setDelayStart(5.5); -``` - -이 예에서는 Adjust SDK가 초기 설치 세션과 5.5초 이내에 새로 생성된 이벤트를 전송하지 않습니다. 이 시간이 만료되거나 그동안 `Adjust.sendFirstPackages()`를 호출하면 모든 세션 파라미터가 지연된 설치 세션 및 이벤트에 추가되며 Adjust SDK가 평소대로 되돌아갑니다. - -Adjust SDK의 최대 시작 지연 시간은 10초입니다. - -## 부가 기능 - -Adjust SDK를 프로젝트에 연동하면 다음 기능을 활용할 수 있습니다. - -### AppTrackingTransparency 프레임워크 - -**참고**: 이 기능은 iOS 플랫폼에서만 사용할 수 있습니다. - -전송된 각 패키지에 대해 Adjust 백엔드는 사용자 또는 기기를 추적하는 데 사용할 수 있는 앱 관련 데이터에 대한 액세스 동의를 다음 네 가지 상태 중 하나로 수신합니다. - -- Authorized -- Denied -- Not Determined -- Restricted - -기기가 사용자 기기 추적에 사용되는 앱 관련 데이터에 대한 액세스를 승인하는 인증 요청을 수신한 후에는 Authorized 또는 Denied 상태가 반환됩니다. - -기기가 사용자 또는 기기를 추적하는 데 사용되는 앱 관련 데이터에 대한 액세스 인증 요청을 수신하기 전에는 Not Determined 상태가 반환됩니다. - -앱 추적 데이터 인증 권한이 제한되면 Restricted 상태가 반환됩니다. - -사용자에게 표시되는 대화 상자 팝업을 맞춤 설정하지 않으려는 경우, SDK에는 사용자가 대화 상자 팝업에 응답하면 업데이트된 상태를 수신하는 자체 메커니즘이 있습니다. 새로운 동의 상태를 백엔드에 편리하고 효율적으로 전달하기 위해 Adjust SDK는 다음 챕터 '앱 트래킹 인증 래퍼'에 설명된 앱 트래킹 인 메서드와 관련한 래퍼를 제공합니다. - -### 앱 트래킹 인증 래퍼 - -**참고**: 이 기능은 iOS 플랫폼에서만 사용할 수 있습니다. - -Adjust SDK를 사용하면 앱 관련 데이터에 액세스하는 데 대한 사용자 인증을 요청할 수 있습니다. Adjust SDK에는 [requestTrackingAuthorizationWithCompletionHandler:](https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547037-requesttrackingauthorizationwith?language=objc) 상에 빌드된 래퍼가 있습니다. 여기서 콜백 메서드를 정의하여 사용자의 선택에 대한 정보를 얻을 수도 있습니다. 또한 이 래퍼를 사용하면 사용자가 팝업 대화 상자에 응답하는 즉시 콜백 메서드를 사용하여 다시 전달됩니다. 또한 SDK는 사용자의 선택 정보를 백엔드에 알립니다. `NSUInteger` 값은 다음과 같은 의미로 콜백 메서드를 통해 전달됩니다. - -- 0: `ATTrackingManagerAuthorizationStatusNotDetermined` -- 1: `ATTrackingManagerAuthorizationStatusRestricted` -- 2: `ATTrackingManagerAuthorizationStatusDenied` -- 3: `ATTrackingManagerAuthorizationStatusAuthorized` - -이 래퍼를 사용하려면 다음과 같이 호출하면 됩니다: - -```csharp -Adjust.requestTrackingAuthorizationWithCompletionHandler((status) => -{ - switch (status) - { - case 0: - // ATTrackingManagerAuthorizationStatusNotDetermined case - break; - case 1: - // ATTrackingManagerAuthorizationStatusRestricted case - break; - case 2: - // ATTrackingManagerAuthorizationStatusDenied case - break; - case 3: - // ATTrackingManagerAuthorizationStatusAuthorized case - break; - } -}); -``` - -### SKAdNetwork 프레임워크 - -**참고**: 이 기능은 iOS 플랫폼에서만 사용할 수 있습니다. - -Adjust iOS SDK v4.23.0 이상을 설치했으며 iOS 14에서 앱을 실행하는 경우, SKAdNetwork와의 통신이 기본적으로 활성화되며 비활성화하도록 설정할 수 있습니다. 활성화하면 SDK가 실행될때 SKAdNetwork 어트리뷰션에 대해 Adjust가 자동으로 등록합니다. 이벤트가 Adjust 대시보드에서 전환 값을 수신하도록 설정된 경우, Adjust 백엔드가 전환 값 데이터를 SDK로 전송합니다. 그런 다음 SDK가 전환 값을 설정합니다. Adjust가 SKAdNetwork 콜백 데이터를 수신한 후에는 해당 정보가 대시보드에 표시됩니다. - -Adjust SDK가 SKAdNetwork와 자동으로 통신하지 않도록 하려면 구성 객체에 대해 다음 메서드를 호출하여 해당 메서드를 사용하지 않도록 설정할 수 있습니다: - -```csharp -adjustConfig.deactivateSKAdNetworkHandling(); -``` - -### 푸시 토큰(삭제 추적) - -푸시 토큰은 Audience Builder 및 클라이언트 콜백에 사용되며 삭제 및 재설치 추적 기능에 필요합니다. - -Adjust에 푸시 알림 토큰을 전송하려면 앱의 푸시 알림 토큰을 획득할 때(또는 앱 푸시 알림 토큰의 값이 바뀔 때)`Adjust` 인스턴스에서 `setDeviceToken` 메서드를 호출하세요. - -```cs -Adjust.setDeviceToken("YourPushNotificationToken"); -``` - -### 어트리뷰션 콜백 - -콜백을 설정하여 어트리뷰션의 변경 사항에 대한 알림을 받을 수 있습니다. Adjust는 다양한 어트리뷰션 소스를 고려하여 이러한 정보를 비동기식으로 제공합니다. 타사와 데이터를 공유하기 전에 [관련 어트리뷰션 데이터 정책][attribution_data]을 검토하세요. - -선택적 콜백을 애플리케이션에 추가하려면 다음 단계를 따르세요. - -1. `Action 위임`의 서명이 포함된 메서드를 생성합니다. - -2. `AdjustConfig` 객체를 생성한 다음, 이전에 생성한 메서드와 함께 `adjustConfig.setAttributionChangedDelegate`를 호출합니다. 같은 서명과 람다(lambda)를 함께 사용할 수도 있습니다. - -3. `Adjust.prefab`을 사용하지 않고 다른 `GameObject`에 `Adjust.cs`를 추가한 경우,`GameObject`의 이름을 `AdjustConfig.setAttributionChangedDelegate`의 두 번째 파라미터로 전달해야 합니다. - -콜백이 `AdjustConfig` 인스턴스를 사용하여 구성되었기 때문에 `Adjust.start`를 호출하기 전에 `adjustConfig.setAttributionChangedDelegate`를 호출해야 합니다. - -```cs -using com.adjust.sdk; - -public class ExampleGUI : MonoBehaviour { - void OnGUI() { - if (GUI.Button(new Rect(0, 0, Screen.width, Screen.height), "callback")) { - AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); - adjustConfig.setLogLevel(AdjustLogLevel.Verbose); - adjustConfig.setAttributionChangedDelegate(this.attributionChangedDelegate); - - Adjust.start(adjustConfig); - } - } - - public void attributionChangedDelegate(AdjustAttribution attribution) { - Debug.Log("Attribution changed"); - - // ... - } -} -``` - -SDK가 최종 어트리뷰션 데이터를 수신하면 콜백 함수가 호출됩니다. 콜백 함수 내에서 attribution 파라미터에 액세스할 수 있습니다. 그 속성에 대한 요약 정보는 다음과 같습니다. - -- `string trackerToken` 현재 어트리뷰션의 트래커 토큰 -- `string trackerName` 현재 어트리뷰션의 트래커 이름 -- `string network` 현재 어트리뷰션의 네트워크 그룹화 수준 -- `string campaign` 현재 어트리뷰션의 캠페인 그룹화 수준 -- `string adgroup` 현재 어트리뷰션의 광고 그룹 그룹화 수준 -- `string creative` 현재 어트리뷰션의 크리에이티브 그룹화 수준 -- `string clickLabel` 현재 어트리뷰션의 클릭 레이블 -- `string adid` Adjust 기기 식별자 - -### 광고 매출 추적 - -다음 메서드를 사용하여 Adjust SDK로 광고 매출 정보를 추적할 수 있습니다. - -```csharp -Adjust.trackAdRevenue(source, payload); -``` - -전달해야 할 메서드 파라미터는 다음과 같습니다. - -- `source` - 광고 매출 정보의 소스를 나타내는 `string` 객체 -- `payload` - 스트링 형태의 광고 매출 JSON을 포함하는 `string` 객체 - -Adjust는 현재 다음의 `source` 파라미터 값을 지원합니다. - -- `AdjustConfig.AdjustAdRevenueSourceMopub` - represents the [MoPub mediation platform][sdk2sdk-mopub] - -### 구독 추적 - -**참고**: 이 기능은 SDK 4.22.0 버전 이상에서만 사용할 수 있습니다. - -App Store 및 Play 스토어 구독을 추적한 후 Adjust SDK로 유효성을 검증할 수 있습니다. 구독 항목이 구매되면 다음을 Adjust SDK로 호출하세요. - -**App Store 구독의 경우** - -```csharp -AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription( - price, - currency, - transactionId, - receipt); -subscription.setTransactionDate(transactionDate); -subscription.setSalesRegion(salesRegion); - -Adjust.trackAppStoreSubscription(subscription); -``` - -**Play 스토어 구독의 경우** - -```csharp -AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription( - price, - currency, - sku, - orderId, - signature, - purchaseToken); -subscription.setPurchaseTime(purchaseTime); - -Adjust.trackPlayStoreSubscription(subscription); -``` - -App Store 구독에 대한 구독 추적 파라미터 - -- [가격](https://developer.apple.com/documentation/storekit/skproduct/1506094-price?language=objc) -- 통화([현지 가격](https://developer.apple.com/documentation/storekit/skproduct/1506145-pricelocale?language=objc) 객체의 [통화 코드](https://developer.apple.com/documentation/foundation/nslocale/1642836-currencycode?language=objc)를 전달해야 함) -- [거래 ID](https://developer.apple.com/documentation/storekit/skpaymenttransaction/1411288-transactionidentifier?language=objc) -- [영수증](https://developer.apple.com/documentation/foundation/nsbundle/1407276-appstorereceipturl) -- [거래 일자](https://developer.apple.com/documentation/storekit/skpaymenttransaction/1411273-transactiondate?language=objc) -- 판매 지역([현지 가격](https://developer.apple.com/documentation/storekit/skproduct/1506145-pricelocale?language=objc) 객체의 [국가 코드](https://developer.apple.com/documentation/foundation/nslocale/1643060-countrycode?language=objc)를 전달해야 함) - -Play 스토어 구독에 대한 구독 추적 파라미터 - -- [가격](https://developer.android.com/reference/com/android/billingclient/api/SkuDetails#getpriceamountmicros) -- [통화](https://developer.android.com/reference/com/android/billingclient/api/SkuDetails#getpricecurrencycode) -- [sku](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getsku) -- [주문 ID](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getorderid) -- [서명](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getsignature) -- [구매 토큰](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getpurchasetoken) -- [구매 시간](https://developer.android.com/reference/com/android/billingclient/api/Purchase#getpurchasetime) - -**참고:** Adjust SDK의 구독 추적 API를 사용하려면 모든 파라미터가 `string` 값으로 전달되어야 합니다. 위에 기술한 파라미터는 구독 추적 이전에 구독 객체로 전달되어야 합니다. Unity에서 인앱 구매를 처리하는 다양한 라이브러리는 각각 구독 구매가 완료된 후 위에 기술된 정보를 특정 형태로 반환해야 합니다. 인앱 구매를 위해 사용하고 있는 라이브러리에서 얻은 응답으로 이 파라미터가 어디에 있는지 확인한 후 그 값을 추출하고, Adjust API에 문자열 값으로 전달해야 합니다. - -이벤트 추적과 마찬가지로 콜백 및 파트너 파라미터를 구독 객체에 연결할 수 있습니다. - -**App Store 구독의 경우** - -```csharp -AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription( - price, - currency, - transactionId, - receipt); -subscription.setTransactionDate(transactionDate); -subscription.setSalesRegion(salesRegion); - -// add callback parameters -subscription.addCallbackParameter("key", "value"); -subscription.addCallbackParameter("foo", "bar"); - -// add partner parameters -subscription.addPartnerParameter("key", "value"); -subscription.addPartnerParameter("foo", "bar"); - -Adjust.trackAppStoreSubscription(subscription); -``` - -**Play 스토어 구독의 경우** - -```csharp -AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription( - price, - currency, - sku, - orderId, - signature, - purchaseToken); -subscription.setPurchaseTime(purchaseTime); - -// add callback parameters -subscription.addCallbackParameter("key", "value"); -subscription.addCallbackParameter("foo", "bar"); - -// add partner parameters -subscription.addPartnerParameter("key", "value"); -subscription.addPartnerParameter("foo", "bar"); - -Adjust.trackPlayStoreSubscription(subscription); -``` - -### 세션 및 이벤트 콜백 - -콜백을 설정하여 성공적으로 추적되었거나 추적에 실패한 이벤트 및/또는 세션에 대한 알림을 받을 수 있습니다. - -성공적으로 추적된 이벤트에 대한 콜백 함수를 추가하려면 다음 단계를 따르세요. - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setEventSuccessDelegate(EventSuccessCallback); - -Adjust.start(adjustConfig); - -// ... - -public void EventSuccessCallback(AdjustEventSuccess eventSuccessData) { - // ... -} -``` - -실패한 추적 이벤트의 경우 다음 콜백 함수를 추가합니다. - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setEventFailureDelegate(EventFailureCallback); - -Adjust.start(adjustConfig); - -// ... - -public void EventFailureCallback(AdjustEventFailure eventFailureData) { - // ... -} -``` - -성공적으로 추적된 세션의 경우: - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setSessionSuccessDelegate(SessionSuccessCallback); - -Adjust.start(adjustConfig); - -// ... - -public void SessionSuccessCallback (AdjustSessionSuccess sessionSuccessData) { - // ... -} -``` - -추적에 실패한 세션의 경우: - -```cs -// ... - -AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox); -adjustConfig.setLogLevel(AdjustLogLevel.Verbose); -adjustConfig.setSessionFailureDelegate(SessionFailureCallback); - -Adjust.start(adjustConfig); - -// ... - -public void SessionFailureCallback (AdjustSessionFailure sessionFailureData) { - // ... -} -``` - -SDK가 패키지를 서버로 전송하려고 시도한 후에 콜백 함수가 호출됩니다. 콜백 내에서 콜백에 대한 반응 데이터 개체에 액세스할 수 있습니다. 세션 반응 데이터 속성에 대한 요약 정보는 다음과 같습니다. - -- `string Message` 서버로부터의 메시지 또는 SDK에 의해 로깅된 오류. -- `string Timestamp` 서버의 타임스탬프. -- `string Adid` Adjust에서 제공하는 고유 기기 식별자. -- `Dictionary JsonResponse` 서버로부터의 응답을 포함하는 JSON 객체. - -두 이벤트 응답 데이터 개체는 다음을 포함합니다. - -- `string EventToken` 추적된 패키지가 이벤트인 경우 해당 이벤트 토큰. -- `string CallbackId` 이벤트 오브젝트에 맞춤 설정된 콜백 ID. - -두 이벤트 및 세션 실패 개체는 다음을 포함합니다. - -- `bool WillRetry` 이후 패키지 재전송 시도가 있을 것임을 알립니다. - -### 사용자 어트리뷰션 - -이 콜백은 어트리뷰션 콜백과 마찬가지로 어트리뷰션 정보가 변경될 때마다 트리거됩니다. 필요할 때마다`Adjust` 인스턴스의 다음 메서드를 호출하여 사용자의 현재 어트리뷰션 정보에 액세스하세요. - -```cs -AdjustAttribution attribution = Adjust.getAttribution(); -``` - -**참고**: 현재 어트리뷰션 정보는 Adjust 백엔드에서 앱 설치를 추적하고 어트리뷰션 콜백을 유발한 후 이용할 수 있습니다. SDK가 초기화되고 어트리뷰션 콜백이 실행되기 전까지는 사용자의 어트리뷰션 값에 액세스할 수 없습니다. - -### 기기 ID - -Adjust SDK를 사용하여 기기 식별자를 받아볼 수 있습니다. - -### iOS 광고 식별자 - -IDFA를 획득하려면`Adjust` 인스턴스의`getIdfa` 함수를 호출합니다. - -```cs -string idfa = Adjust.getIdfa(); -``` - -### Google Play 서비스 광고 식별자 - -Google 광고 식별자는 백그라운드 스레드에서만 읽을 수 있습니다. 다음과 같이 `Adjust` 인스턴스의 `getGoogleAdId` 메서드를 `Action` 위임으로 호출하면 어떤 상황에서든 작동합니다. - -```cs -Adjust.getGoogleAdId((string googleAdId) => { - // ... -}); -``` - -이제 `googleAdId`. 변수로 Google 광고 식별자에 액세스할 수 있습니다. - -### Amazon 광고 식별자 - -Amazon 광고 식별자를 확보하려면 `Adjust` 인스턴스에서`getAmazonAdId` 메서드를 호출합니다. - -```cs -string amazonAdId = Adjust.getAmazonAdId(); -``` - -### Adjust 기기 식별자 - -Adjust의 백엔드에서 여러분의 앱을 설치한 모든 기기를 위해 고유한 Adjust 기기 식별자(`adid`)를 생성합니다. 이 식별자를 받으려면`Adjust` 인스턴스에서 다음 메서드를 호출합니다. - -```cs -String adid = Adjust.getAdid(); -``` - -adid 정보는 Adjust 백엔드가 앱의 설치를 추적한 다음에만 확보할 수 있습니다. 따라서 SDK가 초기화되고 앱 설치가 추적되기 전까지는 adid 값에 액세스할 수 없습니다. - -### 사전 설치 트래커 - -Adjust SDK를 사용하여 본인의 앱이 사전에 설치된 기기가 있는 사용자를 인식하려면 다음 단계를 따르세요. - -1. [대시보드]에서 새 트래커를 생성합니다. -2. `AdjustConfig`의 기본 트래커를 설정합니다. - - ```cs - AdjustConfig adjustConfig = new AdjustConfig(appToken, environment); - adjustConfig.setDefaultTracker("{TrackerToken}"); - Adjust.start(adjustConfig); - ``` - - `{TrackerToken}`을 2단계에서 생성한 트래커 토큰({abc123}`)으로 교체합니다. - -대시보드에 `http://app.adjust.com/`을 포함한 트래커 URL이 표시되더라도 소스 코드에 전체 URL이 아닌 6~7글자의 토큰만 입력해야 합니다. - -3. 앱을 빌드하고 실행합니다. 로그 출력에서 다음과 같은 라인이 표시됩니다. - - ``` - Default tracker: 'abc123' - ``` - -### 오프라인 모드 - -오프라인 모드는 Adjust 서버로의 전송을 연기하고 추적된 데이터가 이후에 전송되도록 유지합니다. Adjust SDK가 오프라인 모드이면 모든 정보가 파일에 저장되기 때문에 오프라인 모드에서 너무 많은 이벤트를 발생시키지 않도록 주의해야 합니다. - -오프라인 모드를 활성화하려면 `setOfflineMode`를 호출하고 파라미터를 `true`로 설정합니다. - -```cs -Adjust.setOfflineMode(true); -``` - -오프라인 모드를 비활성화하려면 `setOfflineMode`를 호출하고 파라미터를 `false`로 설정합니다. Adjust SDK가 다시 온라인 모드가 되면 저장된 모든 정보가 정확한 시간 정보와 함께 Adjust 서버로 전송됩니다. - -이 설정은 세션 간에 유지되지 않습니다. 즉, 앱이 오프라인 모드에서 종료되었더라도 Adjust SDK는 항상 온라인 모드로 시작됩니다. - -### 추적 비활성화 - -Adjust 인스턴스의 setEnabled 메서드를 호출하고 활성화된 파라미터를 false로 설정하여 Adjust SDK의 추적을 비활성화할 수 있습니다. 이 설정은 세션 간에 유지되지만, 첫 세션 이후에만 활성화될 수 있습니다. - -```cs -Adjust.setEnabled(false); -``` - -Adjust SDK가 Adjust 인스턴스의 IsEnabled 메서드를 사용하여 현재 활성화된 경우 검증할 수 있습니다. 언제든지 `setEnabled` 메서드를 호출하고 `enabled` 파라미터를`true`로 설정하여 Adjust SDK를 활성화할 수 있습니다. - -### 이벤트 버퍼링 - -앱이 이벤트 추적을 많이 사용하는 경우, 일부 네트워크 요청을 연기하여 네트워크 요청을 1분에 한 번씩 일괄로 보낼 수 있습니다. `AdjustConfig` 인스턴스를 통해 이벤트 버퍼링을 활성화할 수 있습니다. - -```cs -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setEventBufferingEnabled(true); - -Adjust.start(adjustConfig); -``` - -아무것도 설정되지 않으면 이벤트 버퍼링이 기본적으로 비활성화됩니다. - -### 백그라운드 추적 - -Adjust SDK는 기본적으로 앱이 백그라운드에서 작동하는 동안 네트워크 요청 전송을 일시 중지하도록 설정되어 있습니다. 이 설정은 다음을 통해 `AdjustConfig` 인스턴스에서 변경할 수 있습니다. - -```csharp -AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}"); - -adjustConfig.setSendInBackground(true); - -Adjust.start(adjustConfig); -``` - -### GDPR 잊혀질 권리 - -EU의 개인정보보호법(GDPR) 제 17조에 따라, 사용자는 잊혀질 권리(Right to be Forgotten)를 행사했음을 Adjust에 알릴 수 있습니다. 다음 메서드를 호출하면 Adjust SDK가 잊혀질 권리에 대한 사용자의 선택과 관련된 정보를 Adjust 백엔드에 보냅니다. - -```cs -Adjust.gdprForgetMe(); -``` - -이 정보를 수신한 후 Adjust는 해당 사용자의 데이터를 삭제하며 Adjust SDK는 해당 사용자에 대한 추적을 중지합니다. 이 기기로부터의 요청은 향후 Adjust에 전송되지 않습니다. - -이러한 설정은 테스트에서 적용하더라도 영구적으로 유지되며, 취소할 수 없습니다. - - -### 특정 사용자의 경우 타사 공유 비활성화 - -이제 사용자가 마케팅 목적으로 파트너와 데이터가 공유되지 않도록 중단할 수 있는 권리를 행사했으나 통계 목적으로는 공유할 수 있도록 허용한 경우, 이를 Adjust에 알릴 수 있습니다. - -다음 메서드를 호출하여 Adjust SDK가 데이터 공유 비활성화에 대한 사용자의 선택과 관련된 정보를 Adjust 백엔드에 보냅니다: - -```csharp -Adjust.disableThirdPartySharing(); -``` - -이 정보를 수신하면 Adjust는 특정 사용자의 데이터를 파트너와 공유하는 것을 차단하고 Adjust SDK는 계속 정상적으로 작동합니다. - -## 테스트 및 문제 해결 - -### iOS에서 정보 디버그 - -빌드 후 스크립트가 있어도 프로젝트를 즉시 실행하지 못할 수 있습니다. - -필요한 경우 dSYM 파일을 비활성화하세요. `Project Navigator`에서`Unity-iPhone` 프로젝트를 선택합니다. `Build Settings` 탭을 클릭하고 `debug information`을 검색합니다. `Debug Information Format` 또는 `DEBUG_INFORMATION_FORMAT` 옵션이 표시됩니다. 이 옵션의 설정을 `DWARF with dSYM File`에서 `DWARF`로 변경합니다. - - -[dashboard]: http://dash.adjust.com -[adjust.com]: http://adjust.com - -[en-readme]: ../../README.md -[zh-readme]: ../chinese/README.md -[ja-readme]: ../japanese/README.md -[ko-readme]: ../korean/README.md - -[sdk2sdk-mopub]: doc/english/sdk-to-sdk/mopub.md - -[ios]: https://github.com/adjust/ios_sdk -[android]: https://github.com/adjust/android_sdk -[releases]: https://github.com/adjust/adjust_unity_sdk/releases -[google_ad_id]: https://developer.android.com/google/play-services/id.html -[ios-deeplinking]: https://github.com/adjust/ios_sdk/#deeplinking-reattribution -[attribution_data]: https://github.com/adjust/sdks/blob/master/doc/attribution-data.md -[special-partners]: https://docs.adjust.com/en/special-partners -[unity-purchase-sdk]: https://github.com/adjust/unity_purchase_sdk -[android-deeplinking]: https://github.com/adjust/android_sdk#deep-linking -[google_play_services]: http://developer.android.com/google/play-services/setup.html -[android_sdk_download]: https://developer.android.com/sdk/index.html#Other -[install-referrer-aar]: https://maven.google.com/com/android/installreferrer/installreferrer/1.0/installreferrer-1.0.aar -[android-custom-receiver]: https://github.com/adjust/android_sdk/blob/master/doc/english/referrer.md - -[menu_android]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/menu_android.png -[adjust_editor]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/adjust_editor.png -[import_package]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/import_package.png -[android_sdk_location]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/android_sdk_download.png -[android_sdk_location_new]: https://raw.github.com/adjust/adjust_sdk/master/Resources/unity/v4/android_sdk_download_new.png - -## 라이센스 - -### 라이센스 계약 - -mod_pbxproj.py 파일은 Apache 라이센스 버전 2.0('라이센스') 하에 사용이 허가됩니다. -이 파일은 반드시 라이센스를 준수하여 사용해야 합니다. -라이센스 사본은 http://www.apache.org/licenses/LICENSE-2.0에서 받을 수 있습니다. - -Adjust SDK는 MIT 라이센스 하에 사용이 허가됩니다. - -Copyright (c) 2012-2020 Adjust GmbH, http://www.adjust.com - -다음 조건하에서 본 소프트웨어와 관련 문서 파일 -(이하 "소프트웨어")의 사본을 보유한 제3자에게 소프트웨어의 -사용, 복사, 수정, 병합, 게시, 배포, 재실시권 및/또는 사본의 판매 등을 포함하여 -소프트웨어를 제한 없이 사용할 수 있는 권한을 무료로 부여하며, -해당 제3자는 소프트웨어를 보유한 이에게 -이러한 이용을 허가할 수 있습니다. - -본 소프트웨어의 모든 사본 또는 상당 부분에 -위 저작권 공고와 본 권한 공고를 포함해야 합니다. - -소프트웨어는 "있는 그대로" 제공되며, -소프트웨어의 상품성과 특정 목적에의 적합성 및 비 침해성에 대해 -명시적이거나 묵시적인 일체의 보증을 하지 않습니다. 저자 또는 저작권자는 -본 소프트웨어나 이의 사용 또는 기타 소프트웨어 관련 거래로 인해 -발생하는 모든 클레임, 손해 또는 기타 법적 책임에 있어서 -계약 또는 불법 행위와 관련된 소송에 대해 어떠한 책임도 부담하지 -않습니다. diff --git a/doc/korean/sdk-to-sdk/mopub.md b/doc/korean/sdk-to-sdk/mopub.md deleted file mode 100644 index 364570ca..00000000 --- a/doc/korean/sdk-to-sdk/mopub.md +++ /dev/null @@ -1,24 +0,0 @@ -## Adjust SDK를 이용한 MoPub 광고 매출 트래킹 - -[Adjust Unity SDK README][unity-readme] - -[MoPub Unity 문서][mopub-docs] - -이 기능에 필요한 최소 SDK 버전: - -- **Adjust SDK v4.18.0** -- **MoPub SDK v5.7.0** - -MoPub SDK `OnImpressionTrackedEvent` 콜백 메서드 구현 중에 다음과 같이 `trackAdRevenue` Adjust SDK 메서드를 호출하세요. - -```csharp -private void OnImpressionTrackedEvent(string adUnitId, MoPub.ImpressionData impressionData) { - // Pass impression data JSON to Adjust SDK. - Adjust.trackAdRevenue(AdjustConfig.AdjustAdRevenueSourceMopub, impressionData.JsonRepresentation); -} -``` - -MoPub을 이용한 광고 매출 트래킹에 관해 질문이 있는 경우 담당 계정 관리자에게 문의하거나 support@adjust.com에 이메일을 보내 주시기 바랍니다. - -[mopub-docs]: https://developers.mopub.com/publishers/android/impression-data/ -[unity-readme]: ../../korean/README.md From 4ae724d37d20f73226ed8eb1f559c2d834cf81dc Mon Sep 17 00:00:00 2001 From: uerceg Date: Mon, 19 Aug 2024 20:16:31 +0200 Subject: [PATCH 4/6] feat: update version to 5.0.1 --- Assets/Adjust/Scripts/AdjustAndroid.cs | 2 +- Assets/Adjust/Scripts/AdjustiOS.cs | 2 +- Assets/Adjust/package.json | 4 ++-- VERSION | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Assets/Adjust/Scripts/AdjustAndroid.cs b/Assets/Adjust/Scripts/AdjustAndroid.cs index e671cc1e..f88491c0 100644 --- a/Assets/Adjust/Scripts/AdjustAndroid.cs +++ b/Assets/Adjust/Scripts/AdjustAndroid.cs @@ -8,7 +8,7 @@ namespace AdjustSdk #if UNITY_ANDROID public class AdjustAndroid { - private const string sdkPrefix = "unity5.0.0"; + private const string sdkPrefix = "unity5.0.1"; private static bool isDeferredDeeplinkOpeningEnabled = true; private static AndroidJavaClass ajcAdjust = new AndroidJavaClass("com.adjust.sdk.Adjust"); private static AndroidJavaObject ajoCurrentActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic("currentActivity"); diff --git a/Assets/Adjust/Scripts/AdjustiOS.cs b/Assets/Adjust/Scripts/AdjustiOS.cs index 3f7d483a..2b21c4b3 100644 --- a/Assets/Adjust/Scripts/AdjustiOS.cs +++ b/Assets/Adjust/Scripts/AdjustiOS.cs @@ -8,7 +8,7 @@ namespace AdjustSdk #if UNITY_IOS public class AdjustiOS { - private const string sdkPrefix = "unity5.0.0"; + private const string sdkPrefix = "unity5.0.1"; // app callbacks as method parameters private static List> appIsEnabledGetterCallbacks; diff --git a/Assets/Adjust/package.json b/Assets/Adjust/package.json index bf2df094..125790de 100644 --- a/Assets/Adjust/package.json +++ b/Assets/Adjust/package.json @@ -1,6 +1,6 @@ { "name": "com.adjust.sdk", - "version": "5.0.0", + "version": "5.0.1", "unity": "2019.4", "displayName": "Adjust", "license": "MIT", @@ -9,4 +9,4 @@ "name": "Adjust", "url": "https://github.com/adjust/unity_sdk" } -} \ No newline at end of file +} diff --git a/VERSION b/VERSION index bcdb5803..6b244dcd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.38.1 +5.0.1 From fa684622f5bc08c8bb8548230099918e83b4912b Mon Sep 17 00:00:00 2001 From: uerceg Date: Mon, 19 Aug 2024 20:17:33 +0200 Subject: [PATCH 5/6] docs: update changelog --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 159fb028..11b15d1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +### Version 5.0.1 (19th August 2024) +#### Fixed +- Fixed handling of deferred deep links on iOS platform. + +#### Native SDKs +- [iOS@v5.0.0][ios_sdk_v5.0.0] +- [Android@v5.0.0][android_sdk_v5.0.0] + +--- + ### Version 5.0.0 (12th August 2024) We're excited to release our major new SDK version (v5). Among many internal improvements, our spoofing protection solution is now included out of the box, reinforcing our commitment to accurate, actionable, and fraud-free data. From d11f0e7f80e74cace3c6919e402cc348190def4f Mon Sep 17 00:00:00 2001 From: uerceg Date: Mon, 19 Aug 2024 20:25:14 +0200 Subject: [PATCH 6/6] docs: update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 11b15d1b..3a320517 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ #### Fixed - Fixed handling of deferred deep links on iOS platform. +#### Changed +- Added attribution and deferred deep link callbacks to example app. + #### Native SDKs - [iOS@v5.0.0][ios_sdk_v5.0.0] - [Android@v5.0.0][android_sdk_v5.0.0]