Singular SDKはCordovaのプラグインとして提供されています。以下の手順では、SingularをCordovaアプリに統合する方法を説明します。
前提条件
- この記事は機能するCordovaアプリがあることを前提としています。
- SDKを初期化するには、Singular SDK KeyとSDK Secretが必要です。これらはSingularプラットフォームの"Developer Tools > SDK Integration > SDK Keys"から入手できます。
Singularプラグインの追加
SingularプラグインをCordovaプロジェクトに追加するには、以下を実行します:
cordova plugin add singular_cordova_sdk
Ionic
Ionicを使用している場合:
-
Singular SDKプラグインをインストールします:
$ ionic cordova plugin add singular_cordova_sdk
-
メインのtsファイルで、window変数を宣言します:
declare var cordova;
-
これで、Cordovaから直接Singularプラグインを使用できるようになります:
import {Component} from '@angular/core'; import {Platform} from '@ionic/angular'; declare var cordova; ... export class HomePage { constructor(public platform: Platform) { this.platform.ready().then(() => { // Add code to initialize the Singular SDK here }); }}
SDKの初期化(必須)
Singular SDKの初期化コードは、アプリを開くたびに呼び出す必要があります。これはすべてのSingular属性機能の前提条件です。また、新しいユーザーセッションをSingularに送信します(セッションはユーザーのリテンションを計算するために使用されます)。
Singular SDKを初期化します:
- SingularConfig オブジェクトを作成します。このオブジェクトにはSingular SDK KeyとSecretが含まれます。
- アプリでディープリンクやSKAdNetworkをサポートしたい場合は、オプションの設定を行います(下記の「ディープリンクサポートの追加」と「SKAdNetworkサポートの追加」を参照してください)。
- METAインストールリファラー帰属のサポート
2025年6月18日より、MetaのAdvanced Mobile Measurement Reporting (AMM)では、Meta Install Referrerを実装する必要がなくなりました。AMMレポートが有効になっている場合、Meta Install Referrerを実装することは推奨されません。Meta Install Referrer」アトリビューションを有効にするには、SDKの設定が必要です:
- Singular Configuration ObjectにFacebookアプリIDを入力してください。
// To enable META Install Referrer singularConfig.withFacebookAppId("INSERT YOUR FACEBOOK APP ID HERE");
- Singular Configuration ObjectにFacebookアプリIDを入力してください。
- SingularConfigオブジェクトを使用してSDKを初期化します。
コード例(オプション設定はコメントアウトされています):
// Create the configuration object
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");
/*
// Optional: Enable deep linking (requires additional setup steps, see guide)
var linkHandler = function(data){
var deeplink = data.deeplink;
var passthrough = data.passthrough;
var isDeferred = data.isDeferred;
// Add link handling logic here
}
singularConfig.withSingularLink(linkHandler);
*/
// Initialize Singular
cordova.plugins.SingularCordovaSdk.init(singularConfig);
イベントのトラッキング(非収益)
SDKを初期化して)ユーザーセッションをSingularに送信するだけでなく、ユーザーイベントを送信することもできます。アプリ内イベントのデータは、Singularがユーザー獲得キャンペーンのパフォーマンスを分析し、KPIを測定するのに役立ちます。
例えば、ゲームアプリでユーザーのログイン、登録、チュートリアルの完了、レベルアップなどのデータを収集したい場合があります。
Singularにイベントを送信するには、eventWithArgs メソッドを使います。イベントに名前を付け、追跡したい属性を追加します。
// Example: Report an event called View Product with event attributes
cordova.plugins.SingularCordovaSdk.eventWithArgs(
'ViewProduct', // Event name
{
// Event attributes
productID:"123",
productCategory:"Outerwear"
}
)
収益のトラッキング
アプリ内課金による収益をSingularにトラッキングさせるには、IAPイベントをSingularに報告します。
eventWithArgsメソッドを使い、IAPオブジェクトをイベント属性として渡すことをお勧めします。SingularはIAPオブジェクトを使用して購入を検証し、不正購入を検出することで、収益指標を歪めないようにします(アプリ内購入の検証に関するFAQを参照)。
https://github.com/j3k0/cordova-plugin-purchaseライブラリを使用している場合は、以下のコードを使用できます:
store.when('product123 verified', onProductVerified);
product.verify();
function onProductVerified(product){
const iap = new cordova.plugins.SingularCordovaSdk.SingularIAP(product);
cordova.plugins.SingularCordovaSdk.eventWithArgs('IAP_EVENT', iap)
}
カスタム収益の送信
IAPオブジェクトをSingularに送信できない場合は、イベント名、通貨コード、購入金額を受け取るcustomRevenueメソッドを使用することもできます。
例
cordova.plugins.SingularCordovaSdk.customRevenue(
customEventName, // E.g. "purchase"
currencyCode, // E.g. "USD"
purchaseAmount // E.g. 3.2
);
注意:通貨は3文字の ISO 4217 通貨コード、例えば "USD", "EUR", "INR" を渡します。
ハイブリッドイベント追跡(上級者向け)
Singularでは、アプリに統合されたSingular SDKを通してすべてのイベントと収益を送信することを推奨しています。しかし、Singularは他のソースからイベントと収益を収集することができます。
Singular SDKから送信されないイベントは、Singularのサーバー間イベントドキュメンテーション要件に準拠し、イベントの属性を正しく設定するために一致するデバイス識別子を提供する必要があります。
重要です:
Server-to-Server イベントリクエストで使用されるデバイス識別子がSingularで一致しない場合、不一致が発生します。以下の可能性に注意してください:
- イベントリクエストがSingular SDKがアプリセッションからデバイス識別子を記録する「前」に受信された場合、そのイベントリクエストは未知のデバイスの「最初のセッション」とみなされ、Singularはそのデバイスをオーガニックアトリビューションとしてアトリビュートします。
- Singular SDKがデバイス識別子を記録していたとしても、Singular SDKの識別子がServer-to-Server Eventリクエストで指定されたデバイス識別子と異なる場合、イベントの帰属は正しくありません。
ハイブリッドイベント追跡ガイド
Singularはお客様のサーバーから収益に関するデータを収集し、キャンペーンのパフォーマンスやROIの分析に役立てることができます。
要件
- アプリ内登録またはログインイベントから、デバイス識別子を取得して渡し、このデータをユーザーIDと共にサーバーに保存します。デバイス識別子はユーザーによって変更される可能性があるため、ユーザーがアプリセッションを生成する際には必ず識別子を更新してください。これにより、サーバー側イベントが正しいデバイスに帰属することが保証されます。
- サーバー側イベントはプラットフォーム固有であるため、デバイスプラットフォームに一致するデバイス識別子(iOSデバイスのIDFAまたはIDFVなど)のみを使用して送信する必要があります。
- Singular 内部 BI ポストバック メカニズムを使用して、内部エンドポイントにリアルタイムでイベントをプッシュすると、サーバー側でデータセットを更新できます。内部 BI ポストバック FAQ を参照してください。
- 詳細については、『サーバー間統合』ガイドの「収益の追跡」セクションを参照してください。
これらのパートナーを有効にする方法の詳細については、以下のリンクを参照してください。
- 詳しくはRevenueCatのドキュメントをご覧ください。
- 詳細はadaptyのドキュメントをご覧ください。
広告収益アトリビューションのトラッキング
SingularはGoogle AdMob、AppLovin、Unity LevelPlay (IronSource)、TradPlusなどの広告収益アトリビューション用のメディエーションプラットフォームと統合されています。Singularはまた、一般的な広告収益SDKの統合により、他のメディエーションプラットフォームもサポートしています。
メディエーションプラットフォームから広告収益アトリビューションデータを取得するには、Singular SDKインテグレーションにコードスニペットを追加します。これにより、SKAdNetworkキャンペーンの広告収入データを取得することもできます。
メディエーションプラットフォームからユーザーレベルの広告収益を取得することで、Singularはこのデータを受け入れることができるメディアソースにアトリビューションされた広告収益を送り返し、AdROASキャンペーンを実施することができます。
SDKの実装方法とコードスニペットはこちら[英語]をご覧ください。
ディープリンクサポートの追加
ディープリンクとは、ユーザーの携帯電話でアプリを開き、アプリのメインウィジェットではなく、特定のページまたはユーザーエクスペリエンスに直接ユーザーを送るリンクです。
ディープリンクは通常、リターゲティングキャンペーンで使用され、すでに携帯電話にアプリを持っているが、しばらくアプリを使用していないユーザーを対象としています。
SingularはSingular Linksを通してディープリンクをサポートしています(Singular Links FAQをご覧ください)。
アプリでSingular Linksを使用するには
- Singular Links Prerequisitesの指示に従ってください。
-
Androidの場合は、このコードをメインアクティビティに追加してください:
import singular_cordova_sdk.SingularCordovaSdk; @Override public void onNewIntent(Intent intent) { SingularCordovaSdk.handleNewIntent(intent); }
import singular_cordova_sdk.SingularCordovaSdk override fun onNewIntent(intent: Intent) { SingularCordovaSdk.handleNewIntent(intent) }
iOSの場合は、このコードをAppDelegateに追加してください:
import UIKit import SingularCordovaSdk class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var viewController: MainViewController? func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { // Initialize window window = UIWindow(frame: UIScreen.main.bounds) // Configure view controller viewController = MainViewController() window?.rootViewController = viewController // Initialize Singular SDK SingularCordovaSdk.setLaunchOptions(launchOptions) // Make window visible window?.makeKeyAndVisible() return true } func application( _ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void ) -> Bool { return SingularCordovaSdk.startSession(with: userActivity) } }
#import "SingularCordovaSdk.h" #import "MainViewController.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Initialize window self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // Configure view controller self.viewController = [[MainViewController alloc] init]; self.window.rootViewController = self.viewController; // Initialize Singular SDK [SingularCordovaSdk setLaunchOptions:launchOptions]; // Make window visible [self.window makeKeyAndVisible]; return YES; } - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id> *))restorationHandler { return [SingularCordovaSdk startSessionWithUserActivity:userActivity]; }
-
コード内でSingular SDKを初期化する前に、Singular configオブジェクトに.withSingularLinkを 追加し、リンクハンドラ関数を指定してください:
var singularConfig = new cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>"); var linkHandler = function(data){ var deeplink = data.deeplink; var passthrough = data.passthrough; var isDeferred = data.isDeferred; // Add link handling logic here } singularConfig.withSingularLink(linkHandler); cordova.plugins.SingularCordovaSdk.init(singularConfig);
その他のオプション
アンインストールの追跡
Singularにアプリのアンインストールを追跡させるには、以下のコードを使ってAPNS/FCMトークンをSingularに送信します:
Android
cordova.plugins.SingularCordovaSdk.setUninstallToken(fcmToken)
iOS
cordova.plugins.SingularCordovaSdk.setUninstallToken(apnsToken)
短いリファラーリンクの作成
ショートリンクを使うと、パラメータだらけの長いSingularリンクを、共有に便利な短くて安全なリンクに変換できます。
通常、短いリンクを動的に作成して、アプリのユーザーが友達と共有してアプリを使うように招待できるようにします。
ショートリンクを作成するには
- アプリのダウンロードにつながるシンギュラーリンク( シンギュラーリンクのFAQを参照)。
- リンクに動的に追加したいパラメータ(オプションの一覧は トラッキングリンクパラメータをご覧ください)。
- リンクを共有したユーザーをさかのぼって新しいアプリのインストールを追跡できるようにしたい場合は、参照元ユーザーの名前とID。
ショートリンクを作成するには、以下のコードを使用してください:
cordova.plugins.SingularCordovaSdk.createReferrerShortLink(
longLinkURL,
referrerName,
referrerID,
{
// Tracking link parameters to add to the short link, e.g. "channel":"sms"
param1: value1,
param2: value2,
...
},
{
onSuccess: function (shortLinkURL) {
// Do something with shortLinkURL
},
onError: function (error) {
// Handle error
}
}
)
データプライバシー法の遵守
Singularは、GDPRやCCPA(カリフォルニア州消費者プライバシー法)のような消費者プライバシー法を遵守している可能性のあるパートナーと協力できるよう、プライバシー保護機能を提供しています。このようなパートナーは、エンドユーザーが個人情報を共有することに同意した場合に通知されることを望んでいます。
ユーザーに情報共有の同意を求める方法を実装している場合は、limitDataSharingメソッドを使ってユーザーの選択をSingularに通知します:
SingularCordovaSdk.limitDataSharing(false)を使用して、ユーザが情報の共有に同意した(オプトインした)ことを示します。
ユーザーが同意しなかった場合は、SingularCordovaSdk.limitDataSharing(true)を使用します。
Singularは"ユーザープライバシーのポストバック"でLimitDataSharingを使用し、関連する規制を遵守するために必要なパートナーにこの情報を渡します。詳しくは「ユーザーのプライバシーとデータ共有の制限」をご覧ください。
注意: このメソッドの使用は任意ですが、ユーザーがオプトインしたことが特に通知された場合のみ、パートナーがSingularと共有する属性情報があるかもしれません。
SingularCordovaSdk.limitDataSharing メソッド | |
---|---|
シグネチャ | SingularCordovaSdk.limitDataSharing(booleanshouldLimitDataSharing) |
説明 | 個人データの共有に関するユーザーの同意(opt-in)をSingularに通知します。Limit Data Sharingメソッドは、アプリが第三者にユーザーデータを送信するかどうかを制御するオプションを提供します。これは、ユーザーの好みやプライバシー要件に基づいてデータ共有を制限したい場合に便利です。 |
使用例 |
|
GDPR準拠のための追加メソッド
Singular SDKは、GDPRポリシーに準拠し、トラッキングに対するユーザーの同意または非同意についてSingularに知らせるためのメソッドをいくつか提供しています。
SingularCordovaSdk.trackingOptIn メソッド | |
---|---|
説明 | トラッキングに対するユーザーの同意(オプトイン)をSingularに通知します。TrackingOptIn()メソッドは、Singularのサーバーに "gdpr "イベントを送信するために使用されます。このメソッドを呼び出さない場合、アプリはユーザーが同意したかのようにトラッキングを続けますが、特にGDPRオプトインとしてマークされることはありません。アプリがGDPR(一般データ保護規則)に準拠する必要がある場合は、ユーザーの同意が適切に記録されるように、この関数を呼び出す必要があります。 |
使用例 |
|
SingularCordovaSdk.stopAllTrackingメソッド | |
説明 |
このアプリにおけるこのユーザーのすべてのトラッキングを停止します。
注意:このメソッドを呼び出すと、アプリが再起動した後でも、SDKは効果的に無効になります(状態は持続します)!トラッキングを再度有効にする唯一の方法は、resumeAllTracking()を呼び出すことです。
|
使用例 |
|
SingularCordovaSdk.resumeAllTrackingメソッド | |
説明 | このアプリのこのユーザーのトラッキングを再開します。 |
使用例 |
|
SingularCordovaSdk.isAllTrackingStoppedメソッド | |
説明 | このアプリのこのユーザーのトラッキング状況を確認します。StopAllTracking()を使用してトラッキングが停止され、再開されていない場合はtrueを返します。 |
使用例 |
|