Unity SDK実装手順

過去のバージョン履歴については、こちらのリリースノートを御覧ください。

Tenjin Unity プラグイン

  • TenjinのインストールAPIを用いて、Unityの実装を行います。
  • iOSおよびAndroidのドキュメントをご確認いただき、ビルドに適切なプラットフォーム設定を適用ください。
    1. iOS: ビルド設定、および必要なiOSフレームワークが含まれていることをご確認ください。(下記参照)
    2. Android: すでにGoogle Play ServiceがインストールされているSDK、またはPlayServiceResolverをお使いの場合、下記のファイルを削除する必要があります。 /Assets/Plugins/Android/play-services-basement-11.0.4.aar
    3. お客様のAPI_KEYについてはこちらをご確認ください。

Tenjin インストール/セッションイベントの実装方法:


  • お使いのUnityプロジェクトにアセットフォルダが含まれていることをご確認ください
  • プロジェクトの初めに、Start()メソッド及びBaseTenjin instance = Tenjin.getInstance("API_KEY")instance.Connect()メソッドを実装ください。

下記が具体的な実装例です:

using UnityEngine;
using System.Collections;

public class TenjinExampleScript : MonoBehaviour {

  // Use this for initialization
  void Start () {

    BaseTenjin instance = Tenjin.getInstance("API_KEY");
    instance.Connect();
  }

  // Update is called once per frame
  void Update () {

  }

  void OnApplicationPause(bool pauseStatus){
    if(pauseStatus){
      //do nothing
    }
    else
    {
      BaseTenjin instance = Tenjin.getInstance("API_KEY");
      instance.Connect();
    }
  }
}

Tenjin GDPR対応について:


GDPRへの対応において、Tenjin SDKではデバイス/ユーザのオプトイン, オプトアウトおよび各デバイスパラメータのオプトイン, オプトアウトが可能です。OptOut()メソッドにより、Tenjinにリクエストが送られることはありません。

オプトイン, オプトアウトの具体例:

void Start () {

  BaseTenjin instance = Tenjin.getInstance("API_KEY");

  boolean userOptIn = CheckOptInValue();

  if (userOptIn) {
    instance.OptIn();
  }
  else {
    instance.OptOut();
  }

  instance.Connect();
}

boolean CheckOptInValue(){
  // check opt-in value
  // return true; // if user opted-in
  return false;
}

特定のデバイスパラメータをオプトイン,オプトアウトするにはOptInParams() または OptOutParams()メソッドを使用します。OptInParams()メソッドにより指定されたパラメータのみを送信します。OptOutParams()メソッドにより、指定されたパラーメータ以外のパラメータを送信します。

特定のデバイスパラメータのみを取得するには、OptInParams()を使用します。下記具体例では、ip_address, advertising_id, developer_device_id, limit_ad_tracking, referrer, and iadのみを取得しています。

void Start () {

  BaseTenjin instance = Tenjin.getInstance("API_KEY");

  List<string> optInParams = new List<string> {"advertising_id", "developer_device_id", "limit_ad_tracking", "referrer", "device_all", "iad"};
  instance.OptInParams(optInParams);

  instance.Connect();
}

特定のデバイスパラメータ以外のパラメータを取得するには、OptOutParams()メソッドを使用します。下記具体例では、locale, timezone, and build_id以外のパラメータを送信ししています。

void Start () {

  BaseTenjin instance = Tenjin.getInstance("API_KEY");

  List<string> optOutParams = new List<string> {"country", "timezone", "language"};
  instance.OptOutParams(optOutParams);

  instance.Connect();
}

デバイスパラメータ

パラメータ 詳細 プラットフォーム 参照
advertising_id 広告ID Android)
developer_device_id ベンダーID iOS
limit_ad_tracking limit ad tracking enabled Android)
platform platform All
os_version OSバージョン Android
device デバイス名 Android
device_manufacturer デバイス製造元 Android
device_model デバイスモデル Android
device_brand デバイスブランド Android
device_product デバイスプロダクト Android
carrier キャリア Android)
connection_type セルラーまたはWifi All Android)
screen_width デバイススクリーン幅 All Android
screen_height デバイススクリーン高さ All Android
os_version_release リリース時OSバージョン All Android
build_id ビルドID All Android
locale デバイスロケール All Android)

Tenjinアプリ内課金実装手順:


アプリ内課金(IAP)のトランザクション情報をマニュアルでTenjinに連携します。string productIdstring currencyCodeint quantity、そしてdouble unitPriceを連携することが可能です。他のすべてのパラメータにはnullをセットします。

//Here is an example of how to implement the purchase in your post-validated purchase event
void CompletedPurchase(string ProductId, string CurrencyCode, int Quantity, double UnitPrice){

  //pass in the required data for the transaction without receipts

  BaseTenjin instance = Tenjin.getInstance ("API_KEY");
  instance.Transaction(ProductId, CurrencyCode, Quantity, UnitPrice, null, null, null);

  //any other code you want to handle in a completed purchase client side
}
  • ProductId -> ユーザが購入したプロダクトID
  • CurrencyCode -> 通貨コード
  • Quantity -> ユーザが購入したプロダクトの個数
  • UnitPrice -> ユーザが購入したプロダクトのユニットプライス

また追加でstring transactionIdstring receipt、そして string signatureをこの順で含めることにより、レシートの検証が可能です。

  • transactionId -> iOSの場合のtransactionId(Androidの場合はnullを設定)
  • receipt -> iOSの場合Bas64エンコードのreceipt、 Androidの場合receipt
  • signature -> Androidの場合、 signature (iOSの場合はnull)

iOSでのレシートの検証では、transactionIdreceiptが必要となります。(signatureにはnullをセットします)

//Here is an example of how to implement iOS transaction receipt validation
void CompletedIosPurchase(string ProductId, string CurrencyCode int Quantity, double UnitPrice, string TransactionId, string Receipt){

  #if UNTIY_IOS
  //pass the necessary data including the transactionId and the receipt

  BaseTenjin instance = Tenjin.getInstance("API_KEY");
  instance.Transaction(ProductId, CurrencyCode, Quantity, UnitPrice, TransactionId, Receipt, null);
}

Androidの場合、receiptsignatureが必要となります。(transactionIdにはnullをセットします)

//Here is an example of how to implement iOS transaction receipt validation
void CompletedAndroidPurchase(string ProductId, string CurrencyCode int Quantity, double UnitPrice, string Receipt, string Signature){

  #if UNTIY_ANDROID
  //pass the necessary data including the transactionId and the receipt

  BaseTenjin instance = Tenjin.getInstance("API_KEY");
  instance.Transaction(ProductId, CurrencyCode, Quantity, UnitPrice, null, Receipt, Signature);
}

トータルの売上は、Quantity*UnitPriceで計算されます。

Tenjinのカスタムイベント実装:


  • お使いのUnityプロジェクトにてAssetsフォルダを含めます
  • プロジェクト上で下記のメソッドを実装します。

Tenjin.getInstance("<API_KEY>").SendEvent("name")

イベント名、値を同時に送る場合には下記のメソッドを実装します。

Tenjin.getInstance("<API_KEY>").SendEvent("nameWithValue","value")

  • valueはinteger型としてください。valueがintejer出ない場合、イベントは送信されません。

下記がコードの例です。

void MethodWithCustomEvent(){
    //event with name
    BaseTenjin instance = Tenjin.getInstance ("API_KEY");
    instance.SendEvent("name");

    //event with name and integer value
    instance.SendEvent("nameWithValue", "value");
}

.SendEvent("name")は例えば、アプリ内のマイルストーンなどで実行されます。例えば、tutorial_completeregistrationlevel_1などです。

.SendEvent("name", "value")は特定のイベントに値を付随したい場合に使われます。例えば、("coins_purchased", "100") とするとコイン購入イベントでのコインの総数や平均を計算することができます。

Tenjinディファードディープリンク実装手順:


TenjinのトラッキングURL経由でユーザがインストールした後、そのユーザをアプリ内の特定ページに遷移させることが可能です。getDeeplinkメソッドとコールバックにより、ディファードディープリンクにアクセスすることが可能です。 詳細なテスト手順はこちらをご確認ください。


public class TenjinExampleScript : MonoBehaviour {

  // Use this for initialization
  void Start () {
    BaseTenjin instance = Tenjin.getInstance("API_KEY");
    instance.Connect();
    instance.GetDeeplink(DeferredDeeplinkCallback);
  }

  public void DeferredDeeplinkCallback(Dictionary<string, string> data) {
    bool clicked_tenjin_link = false;
    bool is_first_session = false;

    if (data.ContainsKey("clicked_tenjin_link")) {
      //clicked_tenjin_link is a BOOL to handle if a user clicked on a tenjin link
      clicked_tenjin_link = (data["clicked_tenjin_link"] == "true");
      Debug.Log("===> DeferredDeeplinkCallback ---> clicked_tenjin_link: " + data["clicked_tenjin_link"]);
    }

    if (data.ContainsKey("is_first_session")) {
      //is_first_session is a BOOL to handle if this session for this user is the first session
      is_first_session = (data["is_first_session"] == "true");
      Debug.Log("===> DeferredDeeplinkCallback ---> is_first_session: " + data["is_first_session"]);
    }

    if (data.ContainsKey("ad_network")) {
      //ad_network is a STRING that returns the name of the ad network
      Debug.Log("===> DeferredDeeplinkCallback ---> adNetwork: " + data["ad_network"]);
    }

    if (data.ContainsKey("campaign_id")) {
      //campaign_id is a STRING that returns the tenjin campaign id
      Debug.Log("===> DeferredDeeplinkCallback ---> campaignId: " + data["campaign_id"]);
    }

    if (data.ContainsKey("advertising_id")) {
      //advertising_id is a STRING that returns the advertising_id of the user
      Debug.Log("===> DeferredDeeplinkCallback ---> advertisingId: " + data["advertising_id"]);
    }

    if (data.ContainsKey("deferred_deeplink_url")) {
      //deferred_deeplink_url is a STRING that returns the deferred_deeplink of the campaign
      Debug.Log("===> DeferredDeeplinkCallback ---> deferredDeeplink: " + data["deferred_deeplink_url"]);
    }

    if (clicked_tenjin_link && is_first_session) {
      //use the deferred_deeplink_url to direct the user to a specific part of your app   
      if (String.IsNullOrEmpty(data["deferred_deeplink_url"]) == false) {
      }
    }
  }

}

Androidではマニフェストファイルに下記が必要です

  • manifestタグ内にINTERNETパーミッションを含めてください
  • applicationタグ内にGoogle Play Servicesを含めてください
  • TenjinのINSTALL_REFERRER receiverを含めてください
<manifest>
  ...
    <application ...>
      <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
      ...
      <receiver android:name="com.tenjin.android.TenjinReferrerReceiver" android:exported="true">
        <intent-filter>
          <action android:name="com.android.vending.INSTALL_REFERRER"/>
        </intent-filter>
      </receiver>
      ...
    </application>
    ...
  <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  ...
</manifest>

iOSでは下記フレームワークが必要です

  • AdSupport.framework
  • iAd.framework
  • StoreKit.framework

results matching ""

    No results matching ""