LiveOpsキャンペーン #
LiveOps機能からの応答は必ずしもリアルタイムではありません。応答時間を保証することはできませんので、時間内に応答が得られない場合は再試行ロジックを実装してください。
Tenjinでは、ユーザーのアトリビューションソースに応じて、カスタムのユーザー体験を設定できます。これにより、より優れた革新的なアプリ内体験を実現するための、さまざまな可能性が広がります。
例1:特定の広告キャンペーン(例: クロスプロモーションキャンペーン)からアクセスしたユーザーにゲーム内報酬を与える。
例2: ユーザーが広告キャンペーン経由かオーガニックソース経由かに応じて、異なるユーザーフロー(オンボーディング、収益化など)を設定します。
LiveOpsキャンペーンはどのように実行されますか? #
Tenjinサーバー上でアトリビューションデータが処理された後、リクエストに応じてクライアント(アプリ)に返されます。その後、アプリはこのデータを処理し、アプリ内コンテンツの表示に利用します。
Tenjinは、このワークフローにおけるデータ移行部分のみを担当しています。アプリ内コンテンツの動的な置き換えは、アプリ開発者の責任となります。
アプリに渡せるアトリビューションデータは何ですか? #
以下のパラメータをアプリに渡すことができます。
| パラメータ | 説明 | 例 |
advertising_id | デバイスの広告ID | 11de7924d076456d9a203c8dee56632a |
ad_network | キャンペーンのネットワーク | mintegral |
campaign_id | TenjinキャンペーンID | 6ebd3332-68f8-4919-875c-73fe6780d4f7 |
campaign_name | Tenjinキャンペーン名、または広告ネットワークからのキャンペーン名(アドネットワークがアトリビューションリンクまたはAPIを介してTenjinにキャンペーン名を渡している場合。Meta、Google、TikTok、Axon by AppLovinなど、主要なチャネルすべてを含む) | mtg_us_1103 |
site_id | ソースID | mtg_1256527 |
creative_name | クリエイティブ名 | video_123 |
remote_campaign_id | アドネットワークのキャンペーンID | ss_mtg_US_1123 |
deferred_deeplink_url | ディファードディープリンクURL | |
click_id | クリックID | mtg65cebc77cddec80001c17f4w |
analytics_installation_id | Tenjin生成アプリケーションのインストール固有識別子 | f024e65f3dd94f16983726bcef192d68 |
返されるデータオブジェクトの例を以下に示します。
JSON
{"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"}TenjinでLive Opsキャンペーンをセットアップするには何が必要ですか? #
下記が必要となります:
- Tenjin SDK v1.12.19+の実装
- アプリ起動時にTenjin SDKを初期化
- Androidの場合、メインアクティビティのonResumeでinstance.connect()を呼び出します。
- Unityプラグイン、アプリケーションのonStartおよびonApplicationPauseにおいて、instance.connect()を呼び出します。
実装例 - iOS:
Objective-C
[[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:
Java
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:
Objective-C
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");
});