インストールしたあるアプリから購入が発生したとしても、それをすぐ実際の成果とするのは難しいです。それはいろんな理由で購入を払い戻すケースがあるからです。各チャンネルで実際に発生した購入成果を分析するためには、購買取り消しイベントを集める必要があります。 購入完了イベント数から購入取り消しイベント数を差し引くと、実際の購入成果が確認することができます。
購入取り消しイベント(airbridge.ecommerce.order.canceled
)は、Airbridgeが基本イベントとして提供している[スタンダードイベント]の一つです。アクチュアルズレポートやローデータ抽出などで購入取り消しイベントを確認できます。
一方、購入取り消しイベントは、購入完了イベントが発生しないと発生できない後続イベントです。つまり、購入完了イベントと購入取り消しイベントは、お互い複数の情報が同じである必要があります。 たとえば、購入をキャンセルした製品は、購入済みの製品と同じである必要があります。
購入完了イベントと購入取り消しイベントをマッチングするためには、購入取り消しイベントTransaction IDにマッチングして送信しなければなりません。購入取り消しイベントの詳細な設定については、下記のセマンティックアトリビュートをご参照ください。
購入取り消イベントのセマンティックアトリビュート以下のように設定してください。
Attribute | Type | Description |
---|---|---|
transactionID | string | 購入完了イベントのTransaction ID |
transactionPairedEventTimestamp | int | 購入完了イベントが発生した時点 (13桁 Unix Timestamp) |
totalValue | float | 購入取り消し金額(払戻し金額) |
totalQuantity | int | 購入取り消し製品(プロダクト)の全数量 |
currency | string | 購入取り消し金額通貨 |
productListID | string | 購入取り消しプロダクトリス ID |
products.$0.productID | string | 購入取り消し製品ID(プロダクトID) |
products.$0.name | string | 購入取り消し製品名 |
products.$0.price | float | 購入取り消し製品価格 |
products.$0.currency | string | 購入取り消し製品価格通貨 |
products.$0.quantity | int | 구購入取り消し製品個数 |
下記の例コードをご参照ください。Airbridge SDKで購入取りイベントを収集できます。
airbridge.events.send("airbridge.ecommerce.order.canceled", {
semanticAttributes: {
transactionID: '1458132a-0d09-4944-a686-fcbee81b74f7',
transactionPairedEventTimestamp: 1599186193324,
totalValue: 99000,
products: [{
productID: "1234",
name: "Nike 1",
price: 55000,
currency: "KRW",
quantity: 1
}, {
productID: "1235",
name: "Nike 2",
price: 44000,
currency: "KRW",
quantity: 1
}]
}
});
Map < String, Object > product1 = new HashMap < > ();
product1.put("productID", "1234");
product1.put("name", "Nike 1");
product1.put("price", 55000);
product1.put("currency", "KRW");
product1.put("quantity", 1);
Map < String, Object > product2 = new HashMap < > ();
product1.put("productID", "1235");
product1.put("name", "Nike 2");
product1.put("price", 44000);
product1.put("currency", "KRW");
product1.put("quantity", 1);
List < Map < String, Object >> products = new ArrayList < > ();
products.add(product1);
products.add(product2);
Map < String, Object > semanticAttributes = new HashMap < > ();
semanticAttributes.put("transactionID", "1458132a-0d09-4944-a686-fcbee81b74f7");
semanticAttributes.put("transactionPairedEventTimestamp", 1599186193324 L);
semanticAttributes.put("totalValue", 99000);
semanticAttributes.put("product", products);
Airbridge.trackEvent("airbridge.ecommerce.order.canceled", // Category null, // Action null, // Label null, // Value null, // Custom Attributes semanticAttributes // Semantic Attributes );
Airbridge.trackEvent(
category = "airbridge.ecommerce.order.canceled",
semanticAttributes =
mapOf(
"transactionID" to "1458132a-0d09-4944-a686-fcbee81b74f7",
"transactionPairedEventTimestamp" to 1599186193324L,
"totalValue" to 99000,
"products" to
mapOf(
"totalValue" to 99000,
"product" to
listOf(
mapOf(
"productID" to "1234",
"name" to "Nike 1",
"price" to 55000,
"currency" to "KRW",
"quantity" to 1
),
mapOf(
"productID" to "1235",
"name" to "Nike 2",
"price" to 44000,
"currency" to "KRW",
"quantity" to 1
)
)
)
)
)
#import <AirBridge / ABInAppEvent.h>
ABInAppEvent * event = [[ABInAppEvent alloc] init];
[event setCategory: @ "airbridge.ecommerce.order.canceled"];
NSDictionary * semantics = @ {
@"transactionID": @"1458132a-0d09-4944-a686-fcbee81b74f7",
@"transactionPairedEventTimestamp": @1599186193324,
@"totalValue": @99000,
@ "products": @[@{
@"productID": @"1234",
@"name": @"Nike 1",
@"price": @55000,
@"currency": @"KRW",
@"quantity": @1,
}, @{
@"productID": @"1235",
@"name": @"Nike 2",
@"price", @44000,
@"currency": @"KRW",
@"quantity": @1,
}],
};
[event setSemantics: semantics];
[event send];
let event = ABInAppEvent ()
event?.setCategory ("airbridge.ecommerce.order.canceled")
let semantics : [String: Any]= [
"transactionID" : "1458132a-0d09-4944-a686-fcbee81b74f7",
"transactionPairedEventTimestamp" : 1599186193324,
"totalValue" : 99000,
"products" : [
[
"productID" : "1234",
"name" : "Nike 1",
"price" : 55000,
"currency" : "KRW",
"quantity" : 1,
],
[
"productID" : "1235",
"name" : "Nike 2",
"price" : 44000,
"currency" : "KRW",
"quantity" : 1,
]
]
]
event?.setSemantics (semantics)
event?.send ()
他にも、予約取り消しや見積もり取り消しなどの取り消しイベントをカスタムイベントとして定義し、それを収集することができます。 ただ、取り消しイベントは、すでに収集されたイベントをキャンセルする時に限って発生するイベントです。 たとえば、予約取り消しイベントは、収集された予約イベントが取り消された場合発生します。
semanticAttributes.transactionType
にcancelを入力してください。
semanticAttributes.transactionPairedEventCategory
に予約など収集されたイベントのうち、キャンセルするイベントのカテゴリを入力してください。
airbridge.events.send("reservation_cancel", {
semanticAttributes: {
transactionID: '1458132a-0d09-4944-a686-fcbee81b74f7',
transactionType: 'cancel',
transactionPairedEventCategory: 'reservation',
transactionPairedEventTimestamp: 1599186193324,
},
});
購入取り消しイベントは、カスタムイベントとして定義された取り消しイベントとは異なり、以下のように必要な値を自動に満たします。
semanticAttributes.transactionType
("cancel")
semanticAttributes.transactionPairedEventCategory
("airbridge.ecommerce.order.completed")
取り消しイベントに関する広告成果計測可否
airbridge.ecommerce.order.canceled
イベントカテゴリやsemanticAttributes.transactionType
にcancelがあるイベントのアトリビューションは未貢献(unattributed)です.
ローデータ抽出(Raw Data Export)で購入完了イベントと購入取り消しイベントを抽出します。抽出したデータのTransaction IDをマッチングすることで、実際の成果をチャンネル別に分析することができます。
このページは役に立ちましたか?