Chiến dịch LiveOps #
Phản hồi từ tính năng LiveOps không phải lúc nào cũng diễn ra theo thời gian thực. Chúng tôi không thể đảm bảo thời gian phản hồi, vì vậy vui lòng triển khai cơ chế thử lại nếu bạn không nhận được phản hồi kịp thời.
Tại Tenjin, bạn có thể thiết lập một hành trình người dùng tùy chỉnh dựa trên nguồn Attribution của họ. Điều này mở ra vô số cơ hội khác nhau để mang lại trải nghiệm trong ứng dụng tốt hơn và sáng tạo hơn.
Ví dụ 1: Tặng phần thưởng trong trò chơi cho những người dùng đến từ một chiến dịch quảng cáo cụ thể (ví dụ: chiến dịch quảng bá chéo).
Ví dụ 2: Thiết lập các luồng người dùng khác nhau (quá trình giới thiệu, kiếm tiền và các luồng khác) tùy thuộc vào việc người dùng đến từ một chiến dịch quảng cáo hay từ nguồn truy cập tự nhiên.
Các chiến dịch LiveOps hoạt động như thế nào? #
Sau khi dữ liệu Attribution được xử lý trên máy chủ Tenjin, dữ liệu này có thể được trả về cho ứng dụng (client) theo yêu cầu. Sau đó, dữ liệu sẽ được ứng dụng xử lý và sử dụng để hiển thị nội dung trong ứng dụng cho phù hợp.
Tenjin chỉ đảm nhận phần chuyển đổi dữ liệu trong quy trình làm việc này. Việc thay thế động nội dung trong ứng dụng là trách nhiệm của các nhà phát triển ứng dụng.
Tôi có thể truyền những dữ liệu về nguồn gốc nào cho một ứng dụng? #
Khi có sẵn, các tham số sau đây có thể được truyền trở lại ứng dụng:
| Tham số | Mô tả | Ví dụ về giá trị trả về |
advertising_id | Mã nhận dạng quảng cáo của thiết bị | 11de7924d076456d9a203c8dee56632a |
ad_network | Mạng quảng cáo của chiến dịch | mintegral |
campaign_id | Mã chiến dịch Tenjin | 6ebd3332-68f8-4919-875c-73fe6780d4f7 |
campaign_name | Tên chiến dịch của Tenjin hoặc tên chiến dịch từ Mạng quảng cáo (nếu Mạng quảng cáo truyền tên chiến dịch đến Tenjin qua liên kết gán nguồn hoặc API, bao gồm tất cả các kênh chính: Meta, Google, TikTok, Axon của Applovin, v.v.) | mtg_us_1103 |
site_id | ID kênh con hoặc ID ứng dụng nguồn | mtg_1256527 |
creative_name | Tên sáng tạo từ Mạng quảng cáo | video_123 |
remote_campaign_id | ID chiến dịch mạng quảng cáo | ss_mtg_US_1123 |
deferred_deeplink_url | URL liên kết sâu được hoãn lại | |
click_id | ID nhấp chuột của mạng quảng cáo | mtg65cebc77cddec80001c17f4w |
analytics_installation_id | Tenjin đã tạo ra mã định danh riêng cho ứng dụng này | f024e65f3dd94f16983726bcef192d68 |
Dưới đây là ví dụ về cách đối tượng dữ liệu được trả về có thể trông như thế nào:
{"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"}Tôi cần những gì để thiết lập các chiến dịch LiveOps với Tenjin? #
Bạn sẽ cần những thứ sau đây:
- Đã tích hợp thành công Tenjin SDK phiên bản 1.12.19 trở lên
- Hãy đảm bảo rằng bạn khởi chạy Tenjin SDK mỗi khi mở ứng dụng
- Đối với Android, trong phương thức onResume, hãy gọi instance.connect();
- Đối với plugin Unity, trong các phương thức onStart và onApplicationPause của ứng dụng, hãy gọi instance.connect();
Ví dụ về tích hợp – 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"];
}]
;Ví dụ về tích hợp – 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
}
}
});
}
}
Ví dụ về tích hợp – 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");
});