アプリ内イベントのトラッキング

ドキュメント

イベントのトラッキング(非収益)

Singularはアプリ内イベントに関するデータを収集し、キャンペーンのパフォーマンス分析やKPIの測定に役立てることができます。例えば、ゲームアプリでユーザーのログイン、登録、チュートリアルの完了、レベルアップなどのデータを収集したい場合があります。

Singularは様々な 標準イベントをサポートしています。これらのよく使われるイベントは、レポートや最適化のために広告ネットワークでよくサポートされています。もう一つの利点は、標準イベント名を使用すると、Singularが自動的に認識し、手動で定義しなくてもイベントリストに追加されることです。可能な限り標準イベントを使用することをお勧めします。

Singularに送信されるイベントリスト(付随する属性付き)は、UA/マーケティング/ビジネスチームが組織のマーケティングKPIに基づいて作成する必要があります。ビジネスチームは、How to Track In-App Eventsのガイドに従ってください:Guide For Singular Attribution Customers.

追跡するイベントごとに、さまざまな属性を渡すことができます。イベントごとの推奨標準属性を参照してください

コード内で、eventまたはeventWithArgsメソッドを使用してSingularにイベントを送信します。

注:標準イベントの場合は、Flutter SDK List of Standard Events and Attributesに表示されているイベントのFlutter名を使います(例:sngLogin)。

カスタムイベント(Singularの標準イベントのどれにも一致しない、あなたの組織が測定したいイベント)の場合は、任意のカスタム名を使用してください(最大32文字)。最適化のためにSingularからイベントを受け取る可能性のある広告ネットワークパートナーとの互換性のために、英語の名前を使用することをお勧めします。

Singular.event(Events.sngLogin);
Singular.eventWithArgs(eventName, {attributeName:attributeValue});
Map<String, Object> map = HashMap<String, Object>();
map ['name'] = 'John Doe';
map ['age'] = 30;
map ['isStudent'] = false;
Singular.eventWithArgs('event_Name', map);

収益のトラッキング

IAPイベントの送信

アプリの収益をSingularにトラッキングさせるには、IAPイベントをSingularに送信します。IAPイベントを送信することで、Singularがイベントの検証データをチェックし、不正でないことを確認することもできます。

次の例をご覧ください。

注:このコードスニペットにはFlutter IAPパッケージ(https://pub.dev/packages/in_app_purchase)が必要です。

import 'package:singular_flutter_sdk/singular_iap.dart';
import 'dart:io' show Platform;
            
// Parse the revenue amount and currency first

double revenue = double.tryParse(product.rawPrice.toStringAsFixed(2)) ?? 0.0;
String? currencyCode = product.currencyCode;

// Only process if both revenue is greater than 0 and currencyCode exists

if (revenue > 0 && currencyCode != null && currencyCode.isNotEmpty) {
  if (Platform.isIOS) {
    singularPurchase = new SingularIOSIAP(
      revenue,
      currencyCode,
      purchase.productID,
      purchase.purchaseID,
      purchase.verificationData.serverVerificationData
    );
  }
              
  else if (Platform.isAndroid) {
    singularPurchase = new SingularAndroidIAP(
      revenue,
      currencyCode,
      purchase.verificationData.serverVerificationData,
      purchase.verificationData.localVerificationData
    );
  }
              
  Singular.inAppPurchase(eventName, singularPurchase);
}

注:通貨は3文字のISO 4217通貨コード(例:"USD"、"EUR"、"INR")で渡します。

別の方法カスタム収益イベントの送信

Singularは、名前と収益額を指定したカスタム収益イベントを送信して収益を報告するオプションも提供しています。この方法では購入レシートをSingularと共有しないため、Singularが正当なイベントかどうかを確認できないことにご注意ください

例えば

Singular.customRevenue("MyCustomRevenue", "USD", 5.50);
Map<String, Object> map = HashMap<String, Object>();
map ['name'] = 'John Doe';
map ['age'] = 30;
map ['isStudent'] =false;
Singular.customRevenueWithAttributes('MyCustomRevenue','USD', 20, map);

注:通貨を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に購入収益や購読収益を提供することができます。

これらのパートナーを有効にする方法の詳細については、以下のリンクを参照してください。

セグメントからのイベント送信

SingularSDKと並行してSegmentからSingularにイベントを送信するには、Segmentに"Cloud-Mode "Destinationを追加する必要があります。こちらのガイドに従ってください。