基本的な統合

ドキュメント
新しいビデオガイド

統合プロセスの詳細については、このビデオをご覧ください。ビデオと以下のガイドの両方を使用することをお勧めします。

始める前にSDKの前提条件

Singular SDKの統合の手順に従ってください:計画と前提条件』の手順に従ってください。

これらのステップはSingular SDKを統合するための前提条件です。


SDKのインストール

Gradleを使用してSDKを追加する

注:Gradle 7 以降、Android は プロジェクトまたはモジュールレベルの build.gradle 宣言よりもsettings.gradle集中リポジトリ宣言を使用することを推奨しています

  1. SingularのSDKリポジトリを settings.gradleファイルに追加します:

    setting.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ファイルに追加します:

    project/build.gradle
    repositories {
         mavenCentral()
         maven { url 'https://maven.singular.net/' }
    }
  2. app/build.gradleの依存関係リストにSingularライブラリを追加します:

    app/build.gradle
    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のインストールリファラーをサポートするために以下を追加します:

    app/build.gradle
    dependencies {
         ...
         implementation 'store.galaxy.samsung.installreferrer:samsung_galaxystore_install_referrer:4.0.0'
         ...
    }
  3. Singular SDKのtransitive dependenciesを無効にしている場合は、 app/build.gradleに以下を追加してください:

    app/build.gradle
    dependencies {
        ...
        implementation 'com.android.installreferrer:installreferrer:2.2'
        implementation 'com.google.android.gms:play-services-appset:16.0.0'
        ...
    }
  4. アプリがGoogle Play Services API 17.0.0 以降を実装していない場合は、app/build.gradleファイルに以下の依存関係を追加します:

    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をダウンロードする
  1. ページ上部のリンクからSDKをダウンロードします。
  2. SDKパッケージを解凍し、Singular.aarをAndroidプロジェクトのlibsディレクトリに追加します。存在しない場合は、プロジェクトフォルダ(通常は<project>/app/libs)にlibsというディレクトリを作成します。
Mavenを使用したSDKの追加

プロジェクトのpom.xmlにmavenリポジトリを追加します:

pom.xml
<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を使用したSDKの追加

EclipseのAARプラグインを使うことができます: gradle-eclipse-aar-plugin

プラグインを使いたくない場合は、以下の手順に従ってください:

  1. singular_sdk-12.7.2.aar を解凍します
  2. classes.jarをsingular_sdk-12.7.2.jarにリネームします(これがメインのSDK jarです)。
  3. com.android.installreferrer:installreferrer:2.2」ライブラリを、お好みの方法でプロジェクトに追加します。
  4. AARに含まれるAndroidManifest.xmlからBIND_GET_INSTALL_REFERRER_SERVICEパーミッションをAndroidManifest.xmlにコピーします。
  5. AARに含まれるAndroidManifest.xmlからCHECK_LICENSEパーミッションをAndroidManifest.xmlにコピーします。

Proguardを使用する場合の要件

以下のコード行をproguard.config ファイルに追加します:

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>タグの下にこれらのパーミッションを追加します:

AndroidManifest.xml
<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" />
Kids SDKを統合する場合は、com.google.android.gms.permission.AD_ID パーミッションを除外して ください。

Samsung Galaxy Storeのインストール・リファラーをサポートするには、以下を追加します:

AndroidManifest.xml
<queries>
   <package android:name="com.sec.android.app.samsungapps" />
</queries>

SDKを統合する

:Singular SDKを実装する際には、GDPR、CCPA、COPPAなど、お客様がビジネスを展開している地域で制定されている様々なプライバシー法に準拠することを忘れないでください。詳しくはSDKのオプトインとオプトアウトをご覧ください。

Singularライブラリのインポート

Singularライブラリをインポートするには、以下のインポートをMainActivityファイルに追加します:

Java (MainActivity.java) Kotlin (MainActivity.kt)
import com.singular.sdk.*;

Singular SDKの初期化

プライベート関数によるSingular SDKの初期化

セッショントラッキングとアトリビューションを有効にするには、アプリを起動するたびにSingular SDKを初期化する必要があります。プライベートメソッドinitSingularSDK() を作成し、MainActivityonCreate() メソッドから呼び出すことをお勧めします。

以下の手順に従ってください:

  1. 関数を追加します:関数の追加:MainActivity クラス(または任意のエントリーポイントActivity )内に以下のメソッドを配置します。
  2. 資格情報を挿入します: "SDK KEY""SDK SECRET" を Singular ダッシュボードの Singular SDK キーとシークレットに置き換えます。
  3. 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)。

  4. 関数を呼び出します: onCreate() 、UIセットアップの後、イベントをロギングする前にinitSingularSDK()

これが基本的な実装です:

Java - MainActivity Kotlin - MainActivity
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());
    }
}

MainActivityでの使用例

Java - MainActivity Kotlin - 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)

}

キーの詳細

  • 配置:適切なセッション追跡を保証するために、このメソッドをApplication クラスではなくMainActivity に追加してください。
  • エラー処理: try-catch ブロックは、アプリをクラッシュさせることなく、初期化エラー(たとえば、無効な認証情報)をログに記録します。
  • ディープリンク(オプション):ディープリンク(アプリを起動するURLなど)を処理するには、拡張セットアップのサポートディープリンクの記事を参照してください。
  • METAインストールのリファラー帰属をサポートします: config.withFacebookAppId("FacebookAppID") 設定オプションを追加して、"Meta Install Referrer" 属性を有効にします。

Pro Tip:アプリが複数のエントリーポイント(ディープリンクなど)をサポートしている場合、一貫した動作を保証するために、関連する各アクティビティの onCreate()initSingularSDK() が呼び出されるようにしてください。