Custom Outcomesは廃止予定です。 プッシュ、メール、SMS、アプリ内、RCSにわたるクロスチャネルのラストタッチアトリビューションを提供するコンバージョン指標 に置き換えられます。コンバージョントラッキングを初めて設定する場合は、代わりにコンバージョン指標 をご利用ください。既存のCustom Outcomesデータは履歴データとしてアクセス可能な状態が維持されます。
OneSignal Custom Outcomesを使用すると、プッシュ通知とアプリ内メッセージから生じる意味のあるユーザーアクションを追跡できます。これらのアクション(購入、サインアップ、アプリイベントなど)は、カウント、合計、ユニークメトリクスで追跡でき、メッセージングキャンペーンの影響についての洞察が得られます。
Custom Outcomesは、
Professional および
Enterprise プランで利用できます。
料金 の詳細をご覧ください。
Outcomeタイプ & SDKメソッド
ユーザーが特定のアクション(例:「カートに追加」または「アップグレード」をタップ)を完了したときに、コードの行を追加してOutcomeをトリガーできます。
Outcomeタイプ Mobile SDKメソッド Web SDKメソッド 説明 Standard Count addOutcomesendOutcome呼び出されるたびにカウントを1ずつ増やします。値の追跡はありません。 Value (Sum) addOutcomeWithValuesendOutcomeカウントを1ずつ増やし、指定された数値で合計を増やします。収益追跡に便利です。 Unique Count addUniqueOutcomesendUniqueOutcomeアトリビューションウィンドウごとに1回だけカウントを1ずつ増やします。「Swipeセッション開始」や「CTAをタップ」などのバイナリユーザーアクションに最適です。
Outcomeイベントは、オフラインの場合にローカルにキャッシュされ、次のOneSignal初期化時に再試行されます。
カウント vs 合計
Outcomesは2つの主要なメトリクスをサポートします:
メトリクス 説明 Count outcomeイベントがトリガーされた回数 Sum outcomeで送信されたすべての数値の合計(該当する場合)
値を持つOutcomesは、常に最も近い整数に丸められます。
例 :購入からの収益を追跡するには:
java
objectivec
javascript
Javascript(Web SDK)
Swift
Unity(C#)
// "Purchase" button pressed in the app
...
OneSignal . Session . addOutcomeWithValue ( "Purchase" , 18.76 );
// "Purchase" button pressed in the app
...
[OneSignal.Session addOutcomeWithValue:@"Purchase" value:18.76]
//Purchase Button pressed on site
OneSignal . Session . addOutcomeWithValue ( "Purchase" , 20.2 );
//Purchase Button pressed on site
OneSignal . Session . sendOutcome ( "Purchase" , 20.20 );
let value = "20.20" //you supply the value
OneSignal. Session . addOutcome ( withValue : "Purchase" , value : NSNumber ( value :value), onSuccess : {outcomeSent in
print ( "outcome sent: \( outcomeSent ! . name ) with random value: \( value ) " )
})
//Send an outcome
OneSignal . Session . AddOutcome ( "outcomeName" );
//Send a unique outcome
OneSignal . Session . AddUniqueOutcome ( "uniqueOutcomeName" );
//Send an outcome with a float value
OneSignal . Session . AddOutcomeWithValue ( "outcomeWithVal" , 4.2f );
Outcomeアトリビューション
各Outcomeは、それがどのように生成されたかを説明するアトリビューションタイプで追跡されます:
direct — ユーザーがメッセージと直接やり取りしたときにOutcomeが発生しました。os__clickやos__confirmed_deliveryなどの一部のOutcomesは、メッセージの結果としてのみ発生するため、直接アトリビューションのみを持ちます。
influenced — メッセージが送信された後、アトリビューション時間ウィンドウ内でOutcomeが発生しましたが、ユーザーはメッセージと直接やり取りしませんでした。
unattributed — メッセージとの直接的または影響関係なしにOutcomeが発生しました。
total (デフォルト) — direct + influenced + unattributed の合計。
ユースケース
Eコマースサイト
オンラインストアは、OneSignalプッシュ通知を使用して、ユーザーを放棄されたカート、フラッシュセール、プロモーションなどに呼び戻すことができます。Outcomes を使用すると、ストアオーナーは、カートへの追加、購入、またはクーポンの引き換えなどのユーザーアクションとプッシュ通知を簡単に関連付けることができます。購入の場合、outcomesは単純なカウント以上に進み、購入金額を追跡できます。これにより、サイトオーナーは個々のプッシュから生成された収益の合計を簡単に表示できます。
java
objectivec
javascript
Javascript(Web SDK)
Unity(C#)
OneSignal . Session . addOutcomeWithValue ( "Purchase" , 18.76 );
[OneSignal.Session addOutcomeWithValue:@"Purchase" value:18.76]
OneSignal . Session . addOutcomeWithValue ( "Purchase" , 18.76 );
OneSignal.Session.sendOutcome("Purchase", 18.76);
OneSignal . Session . AddOutcomeWithValue ( "Purchase" , 18.76 );
ソーシャルアプリ
ソーシャルアプリは、プッシュを使用してマッチまたは友達リクエスト、新しいいいね、または単にスワイプさせることでユーザーを再エンゲージしたい場合があります。Outcomes を使用することで、開発者は、プッシュ通知がマッチとのチャットの開始や34秒のスワイプセッションなどのユーザーイベントにつながったかどうかを確認できます。これらのデータは、通知とターゲティング戦略を改善するために使用できます。
次の例では、プッシュ後にユーザーがデートプロフィールのスワイプを開始したかどうかを追跡したいと考えています。すべてのスワイプをコンバージョンとしてカウントしたくないため、sendUniqueOutcomeを使用します。
この「Swipe」outcomeは、それをトリガーしたプッシュに1回だけアトリビューションされます。例:
ユーザーがプッシュをクリックし、このメソッドを呼び出すアクションを実行した場合、直接アトリビューションになります。
ユーザーがプッシュを受信したがクリックせず、アトリビューションウィンドウ内でアクションを実行した場合、影響アトリビューションになります。後で同じプッシュをクリックして再度アクションを実行しても、影響のままです。
ユーザーがアトリビューションウィンドウ外でメソッドを実行した場合、セッションごとに1回unattributedになります。
Java
Objective-C
JavaScript
C#
OneSignal . Session . addUniqueOutcome ( "Swipe" );
[OneSignal.Session addUniqueOutcome:@"Swipe"]
OneSignal . Session . addUniqueOutcome ( "my_outcome_event" );
OneSignal . Session . AddUniqueOutcome ( "swipe" );
言語別のプッシュクリック
SDKのNotification Opened/Clickedリスナーメソッド内で、設定された言語でプッシュをクリックしたデバイスの数を増やすようにOutcomesをセットアップできます。これには、デバイスの言語を検出するためのネイティブコードが必要ですが、その後、次のようにその言語をOutcomeに渡すことができます:
public void notificationOpened ( OSNotificationOpenResult result) {
String languageCode = Locale . getDefault (). getLanguage ();
System . out . println ( "languageCode " + languageCode);
OneSignal . Session . addOutcome (languageCode);
}
let notificationOpenedBlock: OSHandleNotificationActionBlock = { result in
// This block gets called when the user reacts to a notification received
if let languageCode = Locale.current.languageCode {
print ( "languageCode: " + languageCode);
OneSignal. Session . addOutcome (languageCode);
}
}
var language = navigator . language ;
OneSignal . Session . addOutcome ( language );
オペレーティングシステムとブラウザ別のプッシュクリック
SDKのNotification Opened/Clickedリスナーメソッド内で、どのプラットフォームが具体的にクリックされたかを増やすようにOutcomesをセットアップできます。これは、モバイルアプリのクリックハンドラーでOneSignal.addOutcome("iOS")またはOneSignal.addOutcome("Android")を設定できるため、iOSとAndroidでは一般的ですが、Webプッシュプラットフォームも追跡したい場合は、たとえば次を使用できます:
// Example taken from Stackoverflow: https://stackoverflow.com/questions/11219582/how-to-detect-my-browser-version-and-operating-system-using-javascript
var os = "Unknown OS" ;
if ( navigator . userAgent . indexOf ( "Win" ) != - 1 ) os = "Windows" ;
if ( navigator . userAgent . indexOf ( "Mac" ) != - 1 ) os = "Macintosh" ;
if ( navigator . userAgent . indexOf ( "Linux" ) != - 1 ) os = "Linux" ;
if ( navigator . userAgent . indexOf ( "Android" ) != - 1 ) os = "Android" ;
if ( navigator . userAgent . indexOf ( "like Mac" ) != - 1 ) os = "iOS" ;
console . log ( 'Your os: ' + os );
var browserType = "Unknown Browser Type" ;
if ( navigator . userAgent . indexOf ( "Safari" ) != - 1 ) browserType = "Safari" ;
if ( navigator . userAgent . indexOf ( "Chrome" ) != - 1 ) browserType = "Chrome" ;
if ( navigator . userAgent . indexOf ( "OPR" ) != - 1 ) browserType = "Opera" ;
if ( navigator . userAgent . indexOf ( "Firefox" ) != - 1 ) browserType = "Firefox" ;
console . log ( 'Your Browser: ' + browserType );
OneSignal . push ([ "addListenerForNotificationOpened" , function ( data ) {
OneSignal . Session . sendOutcome ( os );
OneSignal . Session . sendOutcome ( browserType );
}]);
Outcomeトラッキングを無効にする
ダッシュボードSettings > Push & In-App > Outcomes Tracking で特定のOutcomesの追跡を無効にします。
ここから、Stop Tracking ボタンをクリックして、ダッシュボードで追跡を停止するoutcomeを選択できます。outcomesの追跡を停止すると、ここにリストされ、Start Tracking リンクをクリックして再度追跡を開始できます。
FAQ
Outcomeデータはどのくらいの期間保存されますか?
ダッシュボードから送信された通知は、Outcomeデータを永久に保持します。
API経由で送信された通知は、パージされる前にoutcomesを30日間保持します。
どのチャネルがカスタムoutcomesをサポートしていますか?
現在、カスタムoutcomesはPushとIn-App Messagesのアクションにのみ追加できます。
In-App messagesを介して送信されたOutcomesは「Unattributed」として表示され、デバイスにoutcome name : trueの形式でタグを設定します。
Outcomesをエクスポートできますか?
一連のoutcomesまたはすべてのoutcomesをCSVとしてエクスポートできます。個別の通知 またはすべての通知 のoutcomesへのAPIアクセスも提供しています。
Custom Outcomesの値として文字列を保存できますか?
これはサポートされていません。
デバイスがオフラインの場合はどうなりますか?
発火されたoutcomesのデータは、デバイスが再びオンラインになったときにOneSignalに送信されるようにキューに入れられます。
ユーザーが通知をクリックした後にアプリをバックグラウンドにし、その後戻ってOutcomeを発火した場合、それは直接または影響とカウントされますか?
ユーザーがバックグラウンドにした後30秒以内にアプリに戻る限り、セッションはまだ元のセッションと見なされ、直接アトリビューションを取得します。
新しいAttribution Windowはいつ有効になりますか?
たとえば、アトリビューションウィンドウを24時間から1時間に変更すると、各デバイスが新しいセッションからアプリを開くと、デバイスごとに1時間のウィンドウが有効になります。この新しいセッションは、アプリ外に30秒いた後に作成されます。
セッションが他の分析と一致しないのはなぜですか?
OneSignalは、ユーザーがアプリを30秒以上離れた後にのみセッションをカウントします。アプリまたはウェブサイトを閉じて30秒以内に戻った場合、新しいセッションにはなりません。
たとえば、Appleの分析は、アプリが少なくとも2秒間使用された回数としてセッションを追跡します。アプリがバックグラウンドにあり、後で再び使用された場合、それは別のセッションとしてカウントされます。