• デベロッパーガイド
  • SDK Integration
  • Unity SDK

Unity SDK

SDKのインストール

Airbridge Unity SDKには2018.4バージョン以上のUnityが必要です。

Attention

Airbridge Unity SDKは、unity-jar-resolver(External Dependency Manager for Unity)を通じてライブラリ従属性を管理しています。
Airbridge Unity SDK 1.9.3より以前のバージョンを使う場合は、次のページを参考してそのUnityに対するパッケージ設定を予め完了してください。

Airbridge Unity SDK 1.9.3以降のバージョンからは、Airbridge PluginとEDM4Uアセットをすべて自動的に読み込むので、別途にUnityパッケージを設定する必要はありません。

パッケージのインストール

  1. 最新バージョンの Airbridge Unity SDK をダウンロードしてください。

  2. Unity上部の Assets > Import Package > Custom Package ... をクリックしてパッケージを追加してください。

  3. インストールが完了するとUnity上部にAB180のタブが表示されます。

プロジェクト設定

Unity上部の AB180 > Airbridge Settings をクリックすると、以下のような画面が表示されます。

Attention

フィールドに入力した後、 Update iOS App Setting または Update Android Manifest を必ずクリックして適用してください。

Attention

Android マニフェスト ファイルをユーザーが直接マージする場合、 Project > Plugins > Airbridge > Android > AndroidManifest.xml ファイルを参照してください。

アプリ情報の設定

Unity上部の AB180 > Airbridge Settings の App Name および App Token フィールドに、ダッシュボードで設定されたアプリ名(Unique ID)とアプリのSDKトークン情報をそれぞれ入力してください。
上記の情報はAirbridgeダッシュボードの Settings → Tokens タブで確認できます。

初期化

Airbridge Unity SDKは基本的に初期化作業は不要ですが、各プラットフォームごとに別途マイグレーション作業が必要なケースも存在します。

SDKインストールの確認

設定が完了すれば、アプリケーションのインストール後、Airbridgeダッシュボードの Raw Data → App Real-time Log タブでアプリのイベントを確認できます。

Attention

Real-time Logは最長5分まで遅延が発生することがあります。

ディープリンクの設定

ダッシュボード設定

iOSとAndroid、各プラットフォームごとのディープリンクダッシュボード設定は以下の通りです。

  • iOSディープリンクダッシュボード設定 を見る

  • Androidディープリンクダッシュボード設定 を見る

プロジェクト設定

iOSディープリンクの設定

Unity上部の AB180 > Airbridge Settings の iOS URI Scheme フィールドに、ダッシュボードで設定された iOS URI Scheme 情報を入力してください。
上記の情報はAirbridgeダッシュボードの Tracking Link → Deep Link タブで確認できます。

Androidディープリンクの設定

Unity上部の AB180 > Airbridge Settings の Android URI Scheme フィールドに、ダッシュボードで設定された iOS URI Scheme 情報を入力してください。
上記の情報はAirbridgeダッシュボードの Tracking Link → Deep Link タブで確認できます。

カスタムドメインの設定

Airbridgeダッシュボードでトラッキングリンクを生成する場合、 deeplink.page または abr.ge の形のトラッキングリンクを使用できますが、広告主の方ではトラッキングリンクのブランディングおよびクリック率(CTR)の向上のため、以下のような設定をすることで go.my_company.com/abcd のようなカスタマイズURLをトラッキングリンクとして利用することができます。

  1. 使用するカスタムドメインを こちらのガイド に沿って設定してください。

  2. 設定したカスタムドメインのURLをUnity上部の AB180> Airbridge SettingsCustom Domainフィールドに入力してください。

ディープリンクのコールバック設定

ユーザーがクリックしたディープリンクのデータを取得するためには、以下のようにメッセージを取得するためのオブジェクト名を登録してください。

1234
private void Awake()
{
    AirbridgeUnity.SetDeeplinkCallback("AirbridgeManager");
}

上記のように コールバックを登録すると、このクラスは以下のような関数でディープリンクURLを取得します。

1234567891011121314
using UnityEngine;

public class AirbridgeManager : MonoBehaviour
{ 
  private void Awake() {
    AirbridgeUnity.SetDeeplinkCallback("AirbridgeManager");
  }
  
  // Method will call by Airbridge when deeplink detected
  private void OnTrackingLinkResponse(string url)
  {

  }
}

Airbridge UnityはUnityから提供する UnitySendMessage 機能を使ってディープリンクの情報を送信します。

ディープリンク設定の確認

Airbridge Unity SDKのディープリンク設定が完了した後、以下のようなリンクからアプリのページに正しく遷移するかを確認できます。

  • YOUR_APP_URI_SCHEME://

ディープリンクの設定および確認が完了すれば、Airbridgeダッシュボード → Raw Data → App Real-time Log タブで以下のように確認できます。

ユーザー設定

ユーザー識別子および設定

Airbridgeではウェブ(Web)とアプリ(App)間で断片化されたユーザーの貢献度を計測するために、以下のようなユーザーの識別子情報を収集します。

  • User Email : Eメール

  • User Phone : 電話番号

  • User ID : ユーザー固有のID(ユーザーを特定できるID値で、ウェブとアプリで1:1の関係になるもの)

  • User Alias : ユーザーを表すことができるその他のID (e.g. ロイヤルティプログラム用のID、関連会社の統合IDなど)

入力したユーザーのEメールと電話番号は自動でハッシュ(SHA256)され、サーバーに渡されます。

Airbridge Unity SDKでは以下の方法でユーザーの識別子情報を設定できます。

1234567
Dictionary<string, string> alias = new Dictionary<string, string>();
AirbridgeUser user = new AirbridgeUser();
user.SetId("personID");
user.SetEmail("persondoe@airbridge.io");
user.SetPhoneNumber("1(123)123-1234");
user.SetAlias("key", "value");
AirbridgeUnity.SetUser(user);
  • User Aliasの数は最大10個までです。

  • User AliasのkeyはStringタイプで、長さは最大128文字です。

  • User Aliasのkeyは^[a-z_][a-z0-9_]*$の正規表現と一致する必要があります。

  • User AliasのvalueはStringタイプで、Stringは最大128文字です。

ユーザーの識別子情報を一度設定すれば、全てのイベントで識別子情報が一緒に送られます。

ユーザー属性の設定

MTA(Multi-Touch Attribution)分析の正確性向上、内部データ分析、サードパーティ(3rd Party)ソリューションとの連携などの目的で、ユーザーの追加属性データを設定できます。

1234
Dictionary<string, object> attrs = new Dictionary<string, object>();
AirbridgeUser user = new AirbridgeUser();
user.SetAttributes("key", "value");
AirbridgeUnity.SetUser(user);
  • User Attributeの数は最大100個までです。

  • User AttributeのkeyはStringタイプで、長さは最大128文字です。

  • User Attributeのkeyは^[a-z_][a-z0-9_]*$の正規表現と一致する必要があります。

  • User AttributeのvalueはInteger, Float, Long, BooleanタイプとStringタイプで、Stringは最大1024文字です。

ユーザー設定の確認

Airbridge Unity SDKで設定したユーザー情報は、Airbridgeダッシュボード → Raw Data → App Real-time Log タブで以下のように確認できます。

デバイス設定

デバイス識別子の設定

SDKにデバイス識別子情報を設定すると、設定後から収集される全てのイベントにデバイス識別情報を追加することができます。デバイス識別子を一度設定すれば、削除しない限り、アプリを終了しても設定は維持されます。

123
AirbridgeUnity.SetDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");
AirbridgeUnity.RemoveDeviceAlias("DELETE_THIS_KEY");
AirbridgeUnity.ClearDeviceAlias();

メソッド

説明

SetDeviceAlias(string key, string value)

送信したキーと値のペアをデバイス識別子に追加します。

RemoveDeviceAlias(string key)

送信したキーに該当するデバイス識別子を削除します。該当する識別子がない場合、動作はありません。

ClearDeviceAlias()

全てのデバイス識別子を削除します。

イベント設定

Airbridge Unity SDKで呼び出される全てのイベントは、以下のように6つの属性値と一緒に送ることができます。

  • Event Category : イベント名 Required (String)

  • Event Action : イベントの属性値 1 (String)

  • Event Label : イベントの属性値 2 (String)

  • Event Value : イベントの属性値 3 (Double)

  • Event Custom Attributes : イベントのカスタムデータ (Map<String, Object>)

  • Event Semantic Attributes : イベントのセマンティックデータ (Map<String, Object>)

ユーザーイベント送信

Airbridge Unity SDKでは利便性のため、以下の3つのユーザーイベントを提供しています。

会員登録 (Sign up)

12345678910
Dictionary<string, string> alias = new Dictionary<string, string>();
AirbridgeUser user = new AirbridgeUser();
user.SetId(UserId);
user.SetEmail(Email);
user.SetPhoneNumber(Phone);
user.SetAlias(alias);
AirbridgeUnity.SetUser(user);

AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.SIGN_UP);
AirbridgeUnity.TrackEvent(@event);

ログイン (Sign in)

12345678910
Dictionary<string, string> alias = new Dictionary<string, string>();
AirbridgeUser user = new AirbridgeUser();
user.SetId(UserId);
user.SetEmail(Email);
user.SetPhoneNumber(Phone);
user.SetAlias(alias);
AirbridgeUnity.SetUser(user);

AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.SIGN_IN);
AirbridgeUnity.TrackEvent(@event);

ログアウト (Sign out)

123
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.SIGN_OUT);
AirbridgeUnity.TrackEvent(@event);
AirbridgeUnity.ExpireUser();

Eコマースイベント送信

Airbridge Unity SDKでは利便性のために、以下のような商品クラスと一緒にEコマースイベントを提供しています。

1234567
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);

ホーム画面 (Home Screen)

12
AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.VIEW_HOME);
AirbridgeUnity.TrackEvent(@event);

検索結果を表示 (Search Results)

123456789101112131415161718192021222324
List<Airbridge.Ecommerce.Product> beverages = new List<Airbridge.Ecommerce.Product>();
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
beverages.Add(cocacola);

Airbridge.Ecommerce.Product fanta = new Airbridge.Ecommerce.Product();
fanta.SetId("beverage_2");
fanta.SetName("Fanta");
fanta.SetPrice(10.99);
fanta.SetCurrency("USD");
fanta.SetQuantity(1);
fanta.SetPosition(1);
beverages.Add(fanta);

AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.VIEW_SEARCH_RESULT);
@event.SetQuery("SELECT * FROM beverages");
@event.SetProducts(beverages.ToArray());
@event.SetValue(12.24);
AirbridgeUnity.TrackEvent(@event);

商品リストを表示 (Product List)

123456789101112131415161718192021222324
List<Airbridge.Ecommerce.Product> beverages = new List<Airbridge.Ecommerce.Product>();
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
beverages.Add(cocacola);

Airbridge.Ecommerce.Product fanta = new Airbridge.Ecommerce.Product();
fanta.SetId("beverage_3");
fanta.SetName("Fanta");
fanta.SetPrice(10.99);
fanta.SetCurrency("USD");
fanta.SetQuantity(1);
fanta.SetPosition(2);
beverages.Add(fanta);

AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.VIEW_PRODUCT_LIST);
@event.SetProductListId("beverage_list_0");
@event.SetProducts(beverages.ToArray());
@event.SetValue(12.24);
AirbridgeUnity.TrackEvent(@event);

商品詳細ページを表示 (Product Details)

1234567891011
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);

AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.VIEW_PRODUCT_DETAILS);
@event.SetProducts(cocacola);
AirbridgeUnity.TrackEvent(@event);

カートに追加 (Add to Cart)

12345678910111213
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);

AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.ADDED_TO_CART);
@event.SetProducts(cocacola);
@event.SetCurrency("USD");
@event.SetValue(1.25);
AirbridgeUnity.TrackEvent(@event);

決済完了 (Order Complete)

1234567891011121314151617181920212223242526
List<Airbridge.Ecommerce.Product> beverages = new List<Airbridge.Ecommerce.Product>();
Airbridge.Ecommerce.Product cocacola = new Airbridge.Ecommerce.Product();
cocacola.SetId("beverage_1");
cocacola.SetName("Coca Cola");
cocacola.SetPrice(1.25);
cocacola.SetCurrency("USD");
cocacola.SetQuantity(1);
cocacola.SetPosition(0);
beverages.Add(cocacola);

Airbridge.Ecommerce.Product fanta = new Airbridge.Ecommerce.Product();
fanta.SetId("beverage_3");
fanta.SetName("Fanta");
fanta.SetPrice(10.99f);
fanta.SetCurrency("USD");
fanta.SetQuantity(1);
fanta.SetPosition(2);
beverages.Add(fanta);

AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.ORDER_COMPLETED);
@event.SetTransactionId("transaction_123");
@event.SetProducts(beverages.ToArray());
@event.SetCurrency("USD");
@event.SetInAppPurchased(true);
@event.SetValue(1.25);
AirbridgeUnity.TrackEvent(@event);

カスタムイベント送信

Airbridge Unity SDKでは以下のような方法でカスタマイズされたイベントを送信することができます。

1234567
AirbridgeEvent @event = new AirbridgeEvent("category");
@event.SetAction("action");
@event.SetLabel("label");
@event.SetValue(9999);
@event.AddCustomAttribute("custom_key", "value");
@event.AddSemanticAttribute("query", "query_123");
AirbridgeUnity.TrackEvent(@event);

Semantic Attributesを直接構成して送信するには、こちらのページを参照してください。

イベント送信確認

Airbridge Unity SDKから送信されたイベント情報はAirbridgeダッシュボード → Raw Data → App Real-time Log タブで以下のように確認できます。

詳細設定

ユーザー情報ハッシュ化設定

内部でのデータ分析などのため、ハッシュ(SHA256)せずにユーザーの識別子情報を送信したい場合、Unity上部のAB180 > Airbridge Settings の User Info Hash Enabled フィールドで設定することでユーザーのEメールや電話番号などの情報のハッシュ化(SHA256)を中止することができます。

Attention

このオプションはユーザーのEメールや電話番号など、敏感な個人情報を第3者に提供することになるため、あらかじめ内部的なセキュリティ措置が必要となります。

セッションタイムアウト設定

Airbirdge Unity SDKではUnity上部の AB180 > Airbridge Settings の Session Timeout Seconds フィールドで設定することで、特定のセッション時間内にユーザーがアプリを再起動しても同じセッションと判断し、アプリ実行イベントを再送信しないように変更することができます。

個人情報保護設定

この機能はGDPRCCPAのように、お客様から個人情報保護に関する同意を取得してデータを収集、送信するときに有効な機能です。

Unity上部の AB180 > Airbridge Settings の Auto Start Tracking Enabled フィールドの設定を利用し、データの収集と送信を自動的に開始するかどうかを選択することができます。

1
AirbridgeUnity.StartTracking();

Airbridgeリンクのトラッキング設定

広告主のアプリ内で複数のディープリンクの動作があり、Airbridgeでリエンゲージメントの成果を確認しにくい場合、Unity上部の AB180 > Airbridge Settings の Track Airbridge Link Only フィールドで設定することで、Airbridgeのディープリンクからの成果のみフィルタリングすることができます。

この機能を有効化すると、以下の条件付きのディープリンクからアプリが起動された場合のみ、ディープリンクの成果として計測します。

  • ダッシュボードに登録された形のディープリンクからアプリが起動された場合

  • airbridge.io のディープリンクからアプリが起動された場合

  • deeplink.page のディープリンクからアプリが起動された場合

  • airbridge_referrer クエリ情報が存在する場合

位置情報の収集

Airbridge Unity SDKでは、Unity上部の AB180 > Airbridge Settings の Location Collection Enabled フィールドで設定することで、ユーザーの位置情報を収集することができます。

Attention

位置情報は合法的な目的と方法で収集することが大前提となるため、この機能の使用には注意が必要です。

この機能はAndroidでのみ利用できます。また、以下のような権限が AndroidManifest.xml に含まれる必要があります。

12
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Facebookのディファードアプリリンクの設定

FacebookのディファードアプリリンクをUnity上部の AB180 > Airbridge Settings の Facebook Deferred App Link Enabled フィールドで設定することで、Airbridge Unity SDKで一緒に取得することができます。

Attention

この機能を使うには、あらかじめFacebook SDKの設定が必要です。
参照 - https://developers.facebook.com/docs/unity/

アプリのトラッキング許可設定

iOS 14の政策変更によって、iOSではアプリのトラッキング許可設定(App Tracking Transparency)を通じてユーザーから同意を得てから IDFA 情報を収集できるようになりました。

Airbridge Unity SDKではUnity上部の AB180 > Airbridge Settings の iOS Tracking Authorize Timeout Seconds を設定することで、インストールイベントを遅延させ、IDFAが正常にインストールイベントに含まれるように設定することができます。

アプリのアンインストールトラッキング設定

アプリのアンインストールのトラッキング設定はAirbridge Unity SDK v1.9.0 以降のバージョンから利用できます。

アンインストールトラッキングの設定方法

Androidアンインストールトラッキング

1. Firebase Cloud Messagingの設定

Firebase Cloud Messagingの公式ドキュメントを参考に、アプリの基本設定を完了してください。

2. Firebaseのプッシュトークンを送信

Firebase Cloud Messagingの設定によって生成されるプッシュトークンを、以下のガイドを参考に送信してください。

12345678910111213141516
public void Start() {
  Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
  Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
}

public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
#if UNITY_ANDROID
  AirbridgeUnity.RegisterPushToken(token.Token);
#endif
}

// Make sure the notification is not shown on the device if the remote message value is airbridge-uninstall-tracking.
public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
  if (e.Message.Data.ContainsKey("airbridge-uninstall-tracking")) return;
  ...
}

iOSアンインストールトラッキング

1. Apple Push Notification serviceの設定

Unity Mobile Notificationsパッケージの公式ドキュメントを参考に、パッケージをインストールしてください。

2. デバイストークンを送信

APNsのデバイストークンを以下のガイドを参考に送信してください。

123456789101112131415161718192021222324
void Start()
{
#if UNITY_IOS
  StartCoroutine(RequestAuthorization());
#endif
}

#if UNITY_IOS
IEnumerator RequestAuthorization()
{
  var authorizationOption = AuthorizationOption.Alert | AuthorizationOption.Badge;
  using (var req = new AuthorizationRequest(authorizationOption, true))
  {
    while (!req.IsFinished)
    {
      yield return null;
    };
    if (req.Granted && req.DeviceToken != "")
    {
      AirbridgeUnity.RegisterPushToken(req.DeviceToken);
    }
  }
}
#endif

トラブルシューティング

Android

Android端末でAirbridge Unityが正常に初期化されない場合

Airbridge Unity Androidはコンテンツプロバイダで自動的に初期化されます。正しい初期化作業のため、Project > Plugins > Android > AndroidManifest.xml ファイルに以下のような Xml Tag を正確に記す必要があります。

1234
<provider
    android:authorities="${applicationId}.co.ab180.airbridge.unity.AirbridgeContentProvider"
    android:name="co.ab180.airbridge.unity.AirbridgeContentProvider"
    android:exported="false" />

Android端末でユーザーがすでにカスタムアクティビティを使用している場合

Airbridge Unityはディープリンクを正しく呼び出すためにカスタムアクティビティを使用しています。ユーザーがすでにカスタムアクティビティを使っている場合、そのカスタムアクティビティに以下のようなコードを追加してください。

1234567891011
@Override
protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  setIntent(intent);
}

@Override
protected void onResume() {
  super.onResume();
  AirbridgeUnity.processDeeplinkData(getIntent());
}

Androidのマニフェストファイルが正常にマージされない場合

Airbridge Unityが提供するAndroidマニフェストマージャーは、すでに存在する Project > Plugins > Android > AndroidManifest.xml を読み込み、Airbridge Unityが提供する Project > Plugins > Airbridge > Android > AndroidManifest.xml を単純にマージしてくれるコンポーネントです。そのため、全てのユーザーのケースに合わせて出力するには限界があります。このようなケースでは、ユーザーが直接その AndroidManifest.xml をマージする必要があります。

Missing 'package' key attribute on element package at ...

Android 11バージョンではパッケージ公開設定に関する政策が追加されました。この政策により、全てのアプリケーションはマニフェスト<queries>要素を利用し、他のアプリケーションと相互作用が発生するパッケージをユーザーに告知する必要があります。

Airbridgeではこの政策を遵守するため、Android SDKモジュールにその変更事項を反映しています。 <queries> タグをサポートするためには Gradle は 5.6.4 以上のバージョン、そして Android Gradle Plugin は3.6.0以上のバージョンが必要です。

Unityのバージョンによってどの Gradle バージョンが適用されているかについてはこちらのページで確認できます。

もし、使用しているUnityの Gradle が 5.6.4 より前のバージョン、そして/または Android Gradle Plugin が 3.6.0より前のバージョンの場合、以下のようなUnity設定をすることでバージョンを特定して使うことができます。

- Unity 2020.1 またはそれ以降のバージョン

このバージョンには Gradle 5.6.4以降のバージョンと Android Gradle Plugin 3.6.0以降のバージョンがすでに適用されているため、追加の作業は不要です。

- Unity 2019.3 バージョン ~ 2019.4 バージョン

このカスタムオプションはUnity 2019.3 パッチ7 以降のバージョンのみ適用可能です。

1. Gradle Build Tool ページに移動し、 Gradle5.6.4以上のバージョンをダウンロードしてください。

2. Preferences> External Toolsに移動し、 Gradle Installed with Unity (recommended)のチェックを解除し、ダウンロードした Gradleファイルの経路を以下のように設定してください。

3. Project Settings> Player> Android tab> Publishing Settings> Buildに移動し、以下のオプションを全て選択してください。

a. Custom Main Gradle Template
b. Custom Launcher Gradle Template

4. 自動生成された2つのファイルを全て以下のように変更してください。

  • Assets/Plugins/Android/mainTemplate.gradle

  • Assets/Plugins/Android/launcherTemplate.gradle

12345678910111213141516171819202122
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        // Must be Android Gradle Plugin 3.6.0 or later. For a list of
        // compatible Gradle versions refer to:
        // https://developer.android.com/studio/releases/gradle-plugin
        classpath 'com.android.tools.build:gradle:3.6.0'
    }
}

allprojects {
   repositories {
      google()
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

- Unity 2019.1 バージョン ~ 2019.2 バージョン

  1. Gradle Build Tool ページに移動し、Gradle 5.6.4以上のバージョンをダウンロードしてください。

  2. Preferences> External Toolsに移動し、 Gradle Installed with Unity (recommended)  のチェックを解除し、ダウンロードした Gradleファイルの経路を以下のように設定してください。

Project Settings> Player> Android tab> Publishing Settings> Buildに移動し、 Custom Gradle Templateのオプションを以下のように選択してください。

4. 生成された Assets/Plugins/Android/mainTemplate.gradleファイルに移動し、以下のように変更してください。

12345678
buildscript {
    dependencies {
        // Must be Android Gradle Plugin 3.6.0 or later. For a list of
        // compatible Gradle versions refer to:
        // https://developer.android.com/studio/releases/gradle-plugin
        classpath 'com.android.tools.build:gradle:3.6.0'
    }
}

- Unity 2018.4 バージョン

このカスタムオプションはUnity 2018.4 patch 24以降のバージョンのみ適用可能です。

1. Gradle Build Tool ページに移動し、Gradle 5.6.4以上のバージョンをダウンロードしてください。

2. Build Settings> Androidに移動し、以下のイメージのように Build SystemGradleを選択してください。

3. Preferences> External Toolsに移動し、 Gradle Installed with Unity (recommended)のチェックを解除し、ダウンロードした Gradleファイルの経路を以下のように設定してください。

4. Project Settings> Player> Android tab> Publishing Settings> Buildに移動し、Custom Gradle Templateのオプションを以下のように選択してください。

5. 生成された Assets/Plugins/Android/mainTemplate.gradleファイルに移動し、以下のように変更してください。

12345678
buildscript {
    dependencies {
        // Must be Android Gradle Plugin 3.6.0 or later. For a list of
        // compatible Gradle versions refer to:
        // https://developer.android.com/studio/releases/gradle-plugin
        classpath 'com.android.tools.build:gradle:3.6.0'
    }
}

- Unity 2018.3 より前のバージョン

Gradleカストマイズオプションは 2018.3 より前のバージョンのUnityではサポートしていません。.

iOS

iOSでCustom AppControllerを使う場合

Airbridge Unity iOSはUnityが提供する IMPL_APP_CONTROLLER_SUBCLASS を使って Custom AppController を生成します。すでに IMPL_APP_CONTROLLER_SUBCLASS を使って Custom AppController を実装している場合、その Custom AppController に以下のようなコードを追加してください。

12345678910
- (BOOL) application:(UIApplication*)application 
continueUserActivity:(NSUserActivity*)userActivity 
  restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>>* _Nullable))restorationHandler 
{
    [AUAppDelegate.instance application:application 
                   continueUserActivity:userActivity 
                     restorationHandler:restorationHandler];

    return YES;
}

この作業が完了した後、既存のAirbridge Unity SDK Assets > Plugins > Airbridge > iOS > Delegate > AUAppController.mm ファイルを削除してください。

このページは役に立ちましたか?

ご質問やご提案はありますか?