Кампании LiveOps #
Ответ от функции LiveOps не всегда будет поступать в режиме реального времени. Мы не можем гарантировать время ответа, поэтому, если вы не получили ответ вовремя, пожалуйста, реализуйте алгоритм повторных попыток.
В Tenjin вы можете настроить индивидуальный путь пользователя в зависимости от источника атрибуции. Это открывает целый ряд различных возможностей для создания более качественного и инновационного пользовательского опыта в приложении.
Пример 1: Награждайте игровыми наградами пользователей, пришедших из конкретной рекламной кампании (например, кросс-промо-кампании).
Пример 2: Настройте различные пользовательские маршруты (введение в приложение, монетизация и другие) в зависимости от того, пришел ли пользователь из рекламной кампании или из органического источника.
Как работают кампании LiveOps? #
После обработки данных атрибуции на сервере Tenjin они могут быть возвращены клиенту (приложению) по запросу. Затем данные обрабатываются приложением и используются для соответствующего отображения контента в приложении.
Tenjin охватывает только часть этого рабочего процесса, связанную с передачей данных. Динамическая замена контента в приложении входит в сферу ответственности разработчиков приложений.
Какие данные об атрибуции я могу передать приложению? #
При наличии возможности в приложение можно передать следующие параметры:
| Параметр | Описание | Пример возвращаемого значения |
advertising_id | Рекламный идентификатор устройства | 11de7924d076456d9a203c8dee56632a |
ad_network | Рекламная сеть кампании | mintegral |
campaign_id | Идентификатор кампании «Тэндзин» | 6ebd3332-68f8-4919-875c-73fe6780d4f7 |
campaign_name | Название кампании Tenjin или название кампании от рекламной сети (если рекламная сеть передает название кампании в Tenjin через атрибуционную ссылку или API, включая все основные каналы: Meta, Google, TikTok, Axon by Applovin и т. д.) | mtg_us_1103 |
site_id | Идентификатор подканала или исходного приложения | mtg_1256527 |
creative_name | Креативное название от рекламной сети | video_123 |
remote_campaign_id | Идентификатор кампании в рекламной сети | ss_mtg_US_1123 |
deferred_deeplink_url | URL отложенной глубокой ссылки | |
click_id | Идентификатор клика в рекламной сети | mtg65cebc77cddec80001c17f4w |
analytics_installation_id | Tenjin сгенерировал идентификатор, уникальный для данной установки приложения | f024e65f3dd94f16983726bcef192d68 |
Вот пример того, как может выглядеть возвращаемый объект данных:
{"referrer":"utm_source=(not%20set)&utm_medium=(not%20set)","referrer_params":{"utm_source":"(not set)","utm_medium":"(not set)"},"advertising_id":"00000000000000000000000000000000","ad_network":"ironsource","campaign_id":"f92aa3f1-8f2c-4110-ac2c-37c9a39618c4","campaign_name":"T1_ALL","site_id":"23445433","creative_name":"trees_playing_football"}Что нужно для настройки кампаний LiveOps с помощью Tenjin? #
Вам понадобятся следующие вещи:
- Успешно интегрировать Tenjin SDK версии 1.12.19 и выше
- Обязательно запускайте Tenjin SDK при каждом запуске приложения
- Для Android: в методе onResume основной функционал — вызов instance.connect();
- В плагине Unity в методах onStart и onApplicationPause приложения вызовите instance.connect();
Пример интеграции — iOS:
[[TenjinSDK sharedInstance]
getAttributionInfo:^(NSMutableDictionary *attributionInfo) {
NSLog(@"TenjinSDK getAttributionInfo result: %@", attributionInfo);
// Extract individual parameters
NSString *advertisingId = attributionInfo[@"advertising_id"];
NSString *adNetwork = attributionInfo[@"ad_network"];
NSString *campaignId = attributionInfo[@"campaign_id"];
NSString *campaignName = attributionInfo[@"campaign_name"];
NSString *siteId = attributionInfo[@"site_id"];
NSString *creativeName = attributionInfo[@"creative_name"];
NSString *deferredDeeplinkUrl = attributionInfo[@"deferred_deeplink_url"];
}]
;Пример интеграции — Android:
import com.tenjin.android.Callback;
import com.tenjin.android.TenjinSDK;
public class TenjinDemo extends ActionBarActivity {
//...other Callbacks are here
@Override
public void onResume() {
// standard code
super.onResume()
// Integrate TenjinSDK connect call
String apiKey = "<API_KEY>";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
instance.connect();
instance.getAttributionInfo(new Callback() {
@Override
public void onSuccess(Map<String, String> data) {
if (data.containsKey(TenjinConsts.ATTR_PARAM_ADVERTISING_ID)) {
// Advertising ID of the device
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_AD_NETWORK)) {
// Ad Network of the campaign
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_CAMPAIGN_ID)) {
// Tenjin campaign ID
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_CAMPAIGN_NAME)) {
// Tenjin campaign name
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_SITE_ID)) {
// Tenjin Site ID
}
if (data.containsKey(TenjinConsts.ATTR_PARAM_CREATIVE_NAME)) {
// Tenjin creative name
}
}
});
}
}
Пример интеграции — Unity:
BaseTenjin instance = Tenjin.getInstance("<SDK_KEY>");
instance.GetAttributionInfo((Dictionary<string, string> attributionInfoData) => {
// Extract individual parameters
string advertisingId = GetValueOrDefault(attributionInfoData, "advertising_id");
string adNetwork = GetValueOrDefault(attributionInfoData, "ad_network");
string campaignId = GetValueOrDefault(attributionInfoData, "campaign_id");
string campaignName = GetValueOrDefault(attributionInfoData, "campaign_name");
string siteId = GetValueOrDefault(attributionInfoData, "site_id");
string creativeName = GetValueOrDefault(attributionInfoData, "creative_name");
string deferredDeeplinkUrl = GetValueOrDefault(attributionInfoData, "deferred_deeplink_url");
});