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インストール リファラー帰属のサポート
Meta Install Referrer "アトリビューションを有効にするために必要なSDKコンフィギュレーション:
- Singular Configuration ObjectにFacebook App Idを入力してください。
// To enable META Install Referrer singularConfig.withFacebookAppId("INSERT YOUR FACEBOOK APP ID HERE");
- Singular Configuration ObjectにFacebook App 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);
*/
/*
// To enable META Install Referrer
singularConfig.withFacebookAppId("INSERT YOUR FACEBOOK APP ID HERE");
*/
/*
// Optional: Enable SKAdNetwork (in Managed Mode, see guide for more options)
singularConfig.withSkAdNetworkEnabled(true);
*/
// Initialize Singular
cordova.plugins.SingularCordovaSdk.init(singularConfig);
ユーザーIDをSingularに送信する(オプション)
Singular SDKのメソッドを使用して、内部のユーザーIDをSingularに送信することができます。
注意: Singularのクロスデバイスソリューションを使用する場合は、すべてのプラットフォームでユーザーIDを収集する必要があります。
- ユーザーIDはどのような識別子でもかまいませんが、PII(個人を特定できる情報)を公開すべきではありません。例えば、ユーザーのメールアドレス、ユーザー名、電話番号は使用しないでください。Singularは、ファーストパーティデータにのみユニークなハッシュ値を使用することを推奨します。
- Singularに渡すユーザーIDは、すべてのプラットフォーム(ウェブ/モバイル/PC/コンソール/オフライン)で同じ内部ユーザーIDを使用する必要があります。
- Singularはユーザーレベルのエクスポート、ETL、内部BIポストバック(設定されている場合)にユーザーIDを含めます。ユーザーIDはファーストパーティデータであり、Singularが他者と共有することはありません。
- ユーザーIDの値は、Singular SDKメソッドで設定されると、unsetCustomUserId メソッドで設定が解除されるまで、またはアプリがアンインストールされるまで保持されます。アプリを終了または再起動しても、ユーザーIDはアンセットされません。
ユーザーIDを設定するには、setCustomUserId メソッドを使用します。設定を解除するには(ユーザがアカウントから「ログアウト」した場合など)、unsetCustomUserId を呼び出してください。
注:複数のユーザが1つのデバイスを使用する場合、ログインとログアウトのたびにユーザIDを設定および解除するログアウトフローを実装することを推奨します。
アプリを開いたときにユーザーIDがすでに分かっている場合は、Singular SDKを初期化する前にsetCustomUserId 。こうすることで、Singularは最初のセッションからユーザーIDを持つことができます。しかし、ユーザーIDは通常、ユーザーが登録するかログインを実行するまで利用できません。その場合は、登録フローが完了した後にsetCustomUserId 。
SingularCordovaSdk.setCustomUserIDメソッド | |
---|---|
説明 | ユーザーIDをSingularに送信します。 |
シグネチャ | SingularCordovaSdk.setCustomUserId(String customUserId) |
使用例 |
|
SingularCordovaSdk.unsetCustomUserIDメソッド | |
説明 | Singularに送信されたユーザーIDの設定を解除します。 |
シグネチャ | SingularCordovaSdk.unsetCustomUserId() |
使用例 |
|
重要: この高度なエンタープライズ機能は例外的な場合にのみ使用できます。実装する前にSingularのソリューションエンジニアにご相談ください。
Singularはサーバー間の統合により、追加のモバイルイベント追跡データを受け取ることができます。この機能を利用するには、ユーザーIDをSingularのモバイルデバイス追跡識別子にマッピングする必要があります。
注意:Singular SDKを初期化した後、またはユーザーIDを取得した後、できるだけ早くこのメソッドを呼び出してください。
SingularCordovaSdk.setDeviceCustomUserId メソッド | |
---|---|
説明 | ログイン時と同じカスタムユーザーIDを設定し、Singularのトラッキング識別子にマッピングします。 |
シグネチャ | SingularCordovaSdk.setDeviceCustomUserId(String customUserId) |
使用例 |
|
トラッキングイベント(非収益)
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);
SKAdNetworkサポートの追加
SingularプラグインはSKAdNetworkフレームワークをサポートしています。以下の設定オプションを使って、アプリのSKAdNetworkトラッキングを有効にすることができます。
マネージドモード(推奨)
マネージドモードでは、Singularプラットフォームで設定できるお好みのコンバージョンモデルに基づいて、Singularが自動的にSKAdNetworkのコンバージョン値を管理します。
詳しくは、 Singularのコンバージョンバリュー管理についてと SKAdNetworkモデル設定FAQをご覧ください。SingularでSKAdNetworkを使用するためのステップバイステップガイドは、 SKAdNetworkの始め方をご覧ください。
マネージドモードで SKAdNetwork を有効にするには、以下のコードを使用してください:
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("", "");
// Enable SKAdNetwork (in managed mode by default)
singularConfig.withSkAdNetworkEnabled(true);
cordova.plugins.SingularCordovaSdk.init(singularConfig);
マニュアルモード
SKAdNetwork のコンバージョン値を管理するための独自の戦略とツールを既にお持ちの場合は、SKAdNetwork をマニュアルモードで使用することができます。
マニュアルモードでSKAdNetworkを有効にするには、以下のコードを使用します:
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");
// Enable SKAdNetwork
singularConfig.withSkAdNetworkEnabled(true);
// Select SKAdNetwork manual mode
singularConfig.withManualSkanConversionManagement();
// Optional: define handler to track changes to the conversion value
var conversionHandler = function(updatedConversionValue){
// Do something with updatedConversionValue
}
singularConfig.withConversionValueUpdatedHandler(conversionHandler);
// Initialize the Singular SDK
cordova.plugins.SingularCordovaSdk.init(singularConfig);
変換値を更新するには、以下のコードを使用します:
cordova.plugins.SingularCordovaSdk.skanUpdateConversionValue(
newConversionValue,
function(isSuccess){
// isSuccess == true if the update was successful
}
)
現在の変換値を取得するには、以下のコードを使用します:
cordova.plugins.SingularCordovaSdk.skanGetConversionValue(
function(conversionValue){
// Do something with conversionValue
}
)
その他のオプション
アンインストールのトラッキング
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を返します。 |
使用例 |
|