統合プロセスの詳細については、このビデオをご覧ください。ビデオと以下のガイドの両方を使用することをお勧めします。
始める前にSDKの前提条件
Singular SDKの統合の手順に従ってください:計画と前提条件』の手順に従ってください。
これらのステップはSingular SDKを統合するための前提条件です。
SDKのインストール
Gradleを使用してSDKを追加する
注:Gradle 7 以降、Android は プロジェクトまたはモジュールレベルの build.gradle 宣言よりもsettings.gradle の 集中リポジトリ宣言を使用することを推奨しています 。
-
SingularのSDKリポジトリを settings.gradleファイルに追加します:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven{ url = uri("https://maven.singular.net/") } } }
または古いバージョンのGradleでは、Singular SDKリポジトリをproject/build.gradleファイルに追加します:
repositories { mavenCentral() maven { url 'https://maven.singular.net/' } }
-
app/build.gradleの依存関係リストにSingularライブラリを追加します:
dependencies { ... implementation 'com.google.android.gms:play-services:6.5.87' implementation 'com.singular.sdk:singular_sdk:12.7.2' ... }
さらに、アプリがSamsung Galaxy Storeを通じて配布される場合は、Samsung Galaxy Storeのインストールリファラーをサポートするために以下を追加します:
dependencies { ... implementation 'store.galaxy.samsung.installreferrer:samsung_galaxystore_install_referrer:4.0.0' ... }
-
Singular SDKのtransitive dependenciesを無効にしている場合は、 app/build.gradleに以下を追加してください:
dependencies { ... implementation 'com.android.installreferrer:installreferrer:2.2' implementation 'com.google.android.gms:play-services-appset:16.0.0' ... }
-
アプリがGoogle Play Services API 17.0.0 以降を実装していない場合は、app/build.gradleファイルに以下の依存関係を追加します:
dependencies { ... implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0+' ... }
Note:Gradle 1.x-2.xのユーザは、依存関係を追加するために "implementation "の代わりに "compile "を使用してください。
Gradleを使用しないSDKの追加
- ページ上部のリンクからSDKをダウンロードします。
- SDKパッケージを解凍し、Singular.aarをAndroidプロジェクトのlibsディレクトリに追加します。存在しない場合は、プロジェクトフォルダ(通常は<project>/app/libs)にlibsというディレクトリを作成します。
プロジェクトのpom.xmlにmavenリポジトリを追加します:
<project ...>
<repositories>
<repository>
<id>singular.net</id>
<url>http://maven.singular.net/</url>
</repository>
</repositories>
</project>
依存関係を追加します:
<dependency>
<groupId>com.singular.sdk</groupId>
<artifactId>singular_sdk</artifactId>
<version>12.7.2</version>
</dependency>
EclipseのAARプラグインを使うことができます: gradle-eclipse-aar-plugin
プラグインを使いたくない場合は、以下の手順に従ってください:
- singular_sdk-12.7.2.aar を解凍します。
- classes.jarをsingular_sdk-12.7.2.jarにリネームします(これがメインのSDK jarです)。
- com.android.installreferrer:installreferrer:2.2」ライブラリを、お好みの方法でプロジェクトに追加します。
- AARに含まれるAndroidManifest.xmlからBIND_GET_INSTALL_REFERRER_SERVICEパーミッションをAndroidManifest.xmlにコピーします。
- AARに含まれるAndroidManifest.xmlからCHECK_LICENSEパーミッションをAndroidManifest.xmlにコピーします。
Proguardを使用する場合の要件
以下のコード行をproguard.config ファイルに追加します:
-keep class com.singular.sdk.** { *; }
-keep public class com.android.installreferrer.** { *; }
# Uncomment this line in case your are calling the 'revenue' function using the Google billing library
#-keep public class com.android.billingclient.** { *; }
必要なパーミッションの追加
AndroidManifest.xmlファイルの<manifest>タグの下にこれらのパーミッションを追加します:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="BIND_GET_INSTALL_REFERRER_SERVICE" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
Samsung Galaxy Storeのインストール・リファラーをサポートするには、以下を追加します:
<queries>
<package android:name="com.sec.android.app.samsungapps" />
</queries>
SDKを統合する
注:Singular SDKを実装する際には、GDPR、CCPA、COPPAなど、お客様がビジネスを展開している地域で制定されている様々なプライバシー法に準拠することを忘れないでください。詳しくはSDKのオプトインとオプトアウトをご覧ください。
Singularライブラリのインポート
Singularライブラリをインポートするには、以下のインポートをMainActivityファイルに追加します:
import com.singular.sdk.*;
import com.singular.sdk.*
Singular SDKの初期化
プライベート関数によるSingular SDKの初期化
セッショントラッキングとアトリビューションを有効にするには、アプリを起動するたびにSingular SDKを初期化する必要があります。プライベートメソッドinitSingularSDK() を作成し、MainActivityのonCreate() メソッドから呼び出すことをお勧めします。
以下の手順に従ってください:
- 関数を追加します:関数の追加:MainActivity クラス(または任意のエントリーポイントActivity )内に以下のメソッドを配置します。
- 資格情報を挿入します: "SDK KEY" と"SDK SECRET" を Singular ダッシュボードの Singular SDK キーとシークレットに置き換えます。
-
SingularConfig オブジェクトを更新します:SDKを初期化する前に、SingularConfigオブジェクトを作成する必要があります。オプションで、設定したいSDKの設定はここに設定します。以下のSingularConfigメソッドリファレンスを使用して、オプションを確認してください:
SingularConfig メソッドリファレンス:利用可能なすべての ".with" オプションを見る下の表は、SingularConfig オブジェクトで利用可能な、アプリにオプションや機能を追加するための ".with" メソッドの一覧です。
各機能の詳細は以下のセクションかAdvanced Options にあります。
メソッド
説明
.withFacebookAppId(String facebookAppID)
FacebookアプリIDを設定します。Meta Install Referrer」アトリビューションに必要です。
"Where can I find an app's Facebook App ID?" を参照してください。
.withCustomUserId(String customId)
ユーザーIDをSingularに送信します。
.withSingularLink(getIntent(), SingularLinkHandler handler)
Singular Linksでディープリンクを有効にする。
.withDDLTimeoutInSec (long timeout)
アプリが最初に開かれたときに、Singularが遅延されたディープリンクを検索する時間の長さを設定します。
.withOpenURI (URI openURI)
インテントからURIを取得します(Singularから発信されていないリンクを通じてアプリが開かれた場合にディープリンクを処理するため)。
.withGlobalProperty(String key, String value, boolean overrideExisting)
グローバルプロパティを指定された値に設定します。キーと値は、アプリから送信されるイベント/セッションと一緒にSingularに送信されます。
.withSessionTimeoutInSec (long timeout)
セッションタイムアウトを設定します。
.withFCMDeviceToken(String token)
最初のセッションで送信するFCMトークンを設定します。
.withLoggingEnabled()
ロギングを有効にします。
.withLogLevel (int level)
ロギングレベルを設定します(デフォルトはLog.ERROR)。
- 関数を呼び出します: onCreate() 、UIセットアップの後、イベントをロギングする前にinitSingularSDK() 。
これが基本的な実装です:
private void initSingularSDK() {
// Configure Singular with SDK key and secret
SingularConfig config = new SingularConfig("SDK KEY", "SDK SECRET");
try {
Singular.init(getApplicationContext(), config);
Log.d("Singular", "SDK initialized successfully");
} catch (Exception e) {
Log.e("Singular", "SDK initialization failed: " + e.getMessage());
}
}
private fun initSingularSDK() {
// Configure Singular with SDK key and secret
val config = SingularConfig("SDK KEY", "SDK SECRET")
try {
Singular.init(applicationContext, config)
Log.d("Singular", "SDK initialized successfully")
} catch (e: Exception) {
Log.e("Singular", "SDK initialization failed: ${e.message}")
}
}
MainActivityでの使用例
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize Singular SDK
initSingularSDK();
// Proceed with your app setup (e.g., UI initialization)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Initialize Singular SDK
initSingularSDK()
}
キーの詳細
- 配置:適切なセッション追跡を保証するために、このメソッドをApplication クラスではなくMainActivity に追加してください。
- エラー処理: try-catch ブロックは、アプリをクラッシュさせることなく、初期化エラー(たとえば、無効な認証情報)をログに記録します。
- ディープリンク(オプション):ディープリンク(アプリを起動するURLなど)を処理するには、拡張セットアップのサポートディープリンクの記事を参照してください。
- METAインストールのリファラー帰属をサポートします: config.withFacebookAppId("FacebookAppID") 設定オプションを追加して、"Meta Install Referrer" 属性を有効にします。
Pro Tip:アプリが複数のエントリーポイント(ディープリンクなど)をサポートしている場合、一貫した動作を保証するために、関連する各アクティビティの onCreate() でinitSingularSDK() が呼び出されるようにしてください。