Advantage+カタログ広告では、クロスデバイスでの利用者の購入インテントに基づいて広告を表示できます。利用者のインテントシグナルをモバイルアプリとウェブサイトから収集し、このデータを使用して見込み客をターゲットにしたオーディエンスを作成することができます。
このドキュメントでは、以下の方法について説明します。
ユーザーシグナルを収集するには、モバイルアプリの場合はアプリイベント、ウェブサイトの場合はMetaピクセルを使用します。
デスクトップにのみ広告を掲載しているアプリの所有者であっても、Facebook SDKをインストールしてください。そうすれば、シグナルをキャプチャし、ターゲットとするオーディエンス層を広げるのに役立ちます。
iOS用およびAndroid用のFacebook SDKを使用して、アプリに以下のイベントを追加する必要があります。
| イベント | iOSイベント | Androidイベント |
|---|---|---|
検索 |
|
|
コンテンツ表示 |
|
|
カートに追加 |
|
|
購入 | // logPurchaseで送信 |
|
これらすべてのイベントには、content_id(またはcontent_idのJSON配列)が指定されていなければなりません。
Metaピクセルとは異なり、アプリイベントにはproduct_catalog_idパラメーターがありません。そのため、external_event_sourcesエンドポイント(下記を参照)を使用してカタログとアプリの間に関連付けを設定する必要があります。
以下は、iOSのAdd To Cartイベントの例です。
[[FBSDKAppEvents shared] logEvent:FBSDKAppEventNameAddedToCart
valueToSum:54.23
parameters:@{
FBSDKAppEventParameterNameCurrency : @"USD",
FBSDKAppEventParameterNameContentType : @"product",
FBSDKAppEventParameterNameContentID : @"123456789"
}
];以下は、数量を指定して2種類のアイテムを購入するiOSのPurchaseイベントの例です。
[[FBSDKAppEvents shared] logPurchase:21.97
currency:@"USD"
parameters:@{
FBSDKAppEventParameterNameContent : @"[{\"id\":\"1234\",\"quantity\":2},{\"id\":\"5678\",\"quantity\":1}]",
FBSDKAppEventParameterNameContentType : @"product"
}
];以下は、数量を指定して2種類のアイテムを購入するAndroidのPurchaseイベントの例です。
Bundle parameters = new Bundle();
parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT, "[{\"id\":\"1234\",\"quantity\":2},{\"id\":\"5678\",\"quantity\":1}]");
logger.logEvent(
AppEventsConstants.EVENT_NAME_PURCHASED,
21.97,
parameters
);以下は、2種類のアイテムを購入するAndroidのPurchaseイベントの例です。
Bundle parameters = new Bundle(); parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, "[\"1234\",\"5678\"]"); logger.logEvent( AppEventsConstants.EVENT_NAME_PURCHASED, 21.97, parameters );
Advantage+カタログ広告では、CONTENT_IDまたはCONTENTを使って商品IDを報告できます。CONTENTパラメーターを使えば、商品に関する追加の情報を指定できます。
Advantage+カタログ広告をモバイル測定パートナー(MMP)と共に利用するには、利用者がアプリを使ったときに必要な個々のイベントをトリガーするようにします。トラッキングする必要のある重要な利用者の行動は、商品の検索、商品の閲覧、カートへの追加、アイテムの購入です。Advantage+カタログ広告の以下の標準イベントに対応するイベントをMMPで選択する必要があります。
| 名前 | 説明 |
|---|---|
| 利用者が商品を検索した |
| アカウントセンターアカウントが商品を表示した |
| 利用者がアイテムをカートに追加した |
| アカウントセンターアカウントが1つ以上のアイテムを購入した |
また、各イベントを有効なAdvantage+ カタログ広告イベントとして正常に登録するには、2つの追加パラメーターが必要です。これらの2つのパラメーターは、表示、カートに追加、購入されたアイテムのIDと、そのIDが商品IDと商品グループIDのどちらであるかを表します。追加できるパラメーターは以下のとおりです。
| 名前 | 説明 |
|---|---|
文字列 |
|
文字列 |
|
文字列 | 任意。
詳しくは、「正しい |
文字列 | 任意。 |
文字列 | 任意。 |
注: 商品が購入されたときには、_valueToSumおよびfb_currencyパラメーターを送信することをおすすめします。
ウェブサイトに次のイベントを追加する必要があります(該当する場合)。
SearchViewCategoryViewContentAddToCartPurchaseこれらのイベントは、次のデータパラメーターと一緒に送信する必要があります。
| 名前 | 説明 |
|---|---|
文字列またはstring[] |
|
オブジェクト型 |
|
文字列 | 任意。
詳しくは、「正しい |
文字列 | 任意。 |
以下はSearch標準イベントの例です。検索結果の上位5~10件のアイテムをcontent_idsに指定することをおすすめします。
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
// Insert Your Facebook Pixel ID below.
fbq('init', '<FB_PIXEL_ID>');
fbq('track', 'PageView');
fbq('track', 'Search', {
search_string: 'leather sandals',
content_ids: ['1234', '2424', '1318', '6832'], // top 5-10 search results
content_type: 'product'
});
</script>
<!-- End Facebook Pixel Code -->以下はViewCategoryイベントの例です。結果の上位5~10件のアイテムをcontent_idsに指定することをおすすめします。なお、ViewCategoryは標準イベントではないため、trackCustom関数を使用する点にご注意ください。
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
// Insert Your Facebook Pixel ID below.
fbq('init', '<FB_PIXEL_ID>');
fbq('track', 'PageView');
fbq('trackCustom', 'ViewCategory', {
content_name: 'Really Fast Running Shoes',
content_category: 'Apparel & Accessories > Shoes',
content_ids: ['1234', '2424', '1318', '6832'], // top 5-10 results
content_type: 'product'
});
</script>
<!-- End Facebook Pixel Code -->以下は、ViewContent標準イベントの例です。ピクセルの設定について詳しくは、Metaピクセルをご覧ください。
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
// Insert Your Facebook Pixel ID below.
fbq('init', '<FB_PIXEL_ID>');
fbq('track', 'PageView');
fbq('track', 'ViewContent', {
content_ids: ['1234'],
content_type: 'product',
value: 0.50,
currency: 'USD'
});
</script>
<!-- End Facebook Pixel Code -->AddToCart標準イベントは、ご使用のEコマースプラットフォームでアイテムをカートに追加する処理がどのように実行されるかに応じて異なります。この処理が動的に実行される場合、イベントをonclickイベントハンドラーに配置して、ボタンがクリックされるとトリガーされるようにします。別個のページが読み込まれる場合には、ピクセルイベントを通常どおりに起動させることができます。
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
// Insert Your Facebook Pixel ID below.
fbq('init', '<FB_PIXEL_ID>');
fbq('track', 'PageView');
// If you have a separate add to cart page that is loaded.
fbq('track', 'AddToCart', {
content_ids: ['1234', '1853', '9386'],
content_type: 'product',
value: 3.50,
currency: 'USD'
});
</script>
<!-- End Facebook Pixel Code -->ボタンをクリックしてイベントを起動する必要があり、別個のページが読み込まれることがない場合は、次のようにします。
<!-- The below method uses jQuery, but that is not required -->
<button id="addToCartButton">Add To Cart</button>
<!-- Add event to the button's click handler -->
<script type="text/javascript">
$( '#addToCartButton' ).click(function() {
fbq('track', 'AddToCart', {
content_ids: ['1234'],
content_type: 'product',
value: 2.99,
currency: 'USD'
});
});
</script>以下は、数量を指定して2種類のアイテムを購入するPurchase標準イベントの例です。
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
// Insert Your Facebook Pixel ID below.
fbq('init', '<FB_PIXEL_ID>');
fbq('track', 'PageView');
fbq('track', 'Purchase', {
contents: [
{'id': '1234', 'quantity': 2},
{'id': '4642', 'quantity': 1}
],
content_type: 'product',
value: 21.97,
currency: 'USD'
});
</script>
<!-- End Facebook Pixel Code -->以下は、2つのアイテムを指定するPurchase標準イベントの例です。
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
// Insert Your Facebook Pixel ID below.
fbq('init', '<FB_PIXEL_ID>');
fbq('track', 'PageView');
fbq('track', 'Purchase', {
content_ids: ['1234', '4642'],
content_type: 'product',
value: 21.97,
currency: 'USD'
});
</script>
<!-- End Facebook Pixel Code -->content_typeを選択する注:fb_content_typeはモバイル用のコンテンツタイプです。
特定のSKU(特定のサイズ、色など)に関するページの場合は、content_typeにproductを使用し、content_idsに商品ID(商品フィードのid列)を渡します。AddToCartイベントとPurchaseイベントでは、必ずcontent_type=productを使用する必要があります。これは、人々が具体的な商品を購入するからです。例えば、シャツを購入する際はサイズと色を指定します。サイズや色があいまいなシャツを購入しようとする人はいません。
関連商品(色やサイズが異なるが同じ商品グループに属する商品)のグループに関するページの場合は、product_groupを使用し、content_idsには商品グループID (商品フィードのitem_group_id列)を渡します。これは通常、ユーザーがまだサイズを選択していない状態のViewContentページで使用されています。AddToCartやPurchaseでは、product_groupを使用しない でください。
content_typeが、content_idsパラメーターやcontentsパラメーターに指定するIDのタイプと同じであることが重要です。
具体的な製品ID (content_type=product)を渡すと、ユーザーが興味を示した具体的なバリエーション(サイズ、色など)が明確になるので、Metaでより関連性の高い商品が推奨されるようになります。content_type=product_groupであっても、Metaが表示するのは常に個々の商品であり、商品グループではありません。
content_typeが指定されていない場合、Metaはイベントを同じIDを持つすべてのアイテム(型は問わない)とマッチングさせます。content_typeを送信することをおすすめします。そうすると、イベントとマッチさせる特定のIDをより詳細にコントロールできるようになります。
イベントソースをそれぞれの商品カタログに関連付けて、Facebookがそのデータを取得して正しい商品を広告に表示できるようにする必要があります。これは、ビジネスマネージャの[カタログ]ページに移動し、[イベントソースを関連付け]ボタンをクリックすると関連付けることができます。Advantage+カタログ広告のイベントを受け取るアプリとピクセルを必ず選択してください。
あるいは、外部イベントソースのリストをUTF-8でエンコードされた照会文字列パラメーターとして指定して、POST API呼び出しを実行することもできます。
curl \ -F 'external_event_sources=["<PIXEL_ID>","<APP_ID>"]' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v25.0/<PRODUCT_CATALOG_ID>/external_event_sources
注: カタログ、ピクセル、アプリに対するアクセス許可に加えて、ビジネスに対するアクセス許可が必要です。
| 名前 | 説明 |
|---|---|
| 必須。 |
次に、モバイルアプリとウェブサイトにおけるアクティビティに基づいて、商品オーディエンスを作成します。使用するイベントを選択したり、商品オーディエンスを使って広告のターゲットを設定したりできます。
標準のアプリイベントの場合、次の広告のピクセルイベント名の下にオーディエンスが集計されます。
SearchViewContentAddToCartPurchaseオーディエンスルールでは、オーディエンスにAndroidやiOSのユーザーが含まれている場合であっても、これらのイベント名を使用します。
/act_{ad-account-id}/product_audiencesエンドポイントにPOST API呼び出しを行って、商品オーディエンスを作成します。
https://graph.facebook.com/v25.0/act_AD_ACCOUNT_ID/product_audiences
| 名前 | 説明 |
|---|---|
文字列 | 必須。 |
文字列 | 任意。 |
数値文字列 | 必須。このオーディエンスをターゲットとして設定する商品セット。 |
JSONオブジェクト | 必須。 |
整数 | 必須。 |
オブジェクト型 | 必須。 |
JSONオブジェクト | 任意。 |
整数 | 除外条件が指定されている場合は必須。 |
オブジェクト型 | 除外条件が指定されている場合は必須。 |
各ルールには、最上位ルールまたは最上位のandルールの一部としてeq演算子を指定したeventが含まれていなければなりません。
同じeventを包含条件と除外条件の両方で使用する場合は、それ以外のパラメーターチェックもまったく同じ設定にする必要があります。
以下は、商品を閲覧したりカートに追加したりしたものの、商品を購入しなかった利用者をターゲットとするオーディエンスを作成する方法の例です。
curl -X POST \ -F 'name="Test Product Audience"' \ -F 'product_set_id="<PRODUCT_SET_ID>"' \ -F 'inclusions=[ { "retention_seconds": 86400, "rule": { "event": { "eq": "AddToCart" } } }, { "retention_seconds": 72000, "rule": { "event": { "eq": "ViewContent" } } } ]' \ -F 'exclusions=[ { "retention_seconds": 172800, "rule": { "event": { "eq": "Purchase" } } } ]' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/product_audiences
iPhoneを使ってウェブで商品を閲覧したものの、どのデバイスでも商品を購入しなかった利用者をターゲットに設定するには、以下のようなオーディエンスを作成します。
ここでは、次のようにMetaピクセルにuserAgentパラメーターを組み込んだことを想定しています。
curl -X POST \ -F 'name="Test Iphone Product Audience"' \ -F 'product_set_id="<PRODUCT_SET_ID>"' \ -F 'inclusions=[ { "retention_seconds": 86400, "rule": { "and": [ { "event": { "eq": "AddToCart" } }, { "userAgent": { "i_contains": "iPhone" } } ] } } ]' \ -F 'exclusions=[ { "retention_seconds": 172800, "rule": { "event": { "eq": "Purchase" } } } ]' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/product_audiences
商品オーディエンスを作成すると、カスタムオーディエンスAPIを使ってそのオーディエンスを取得できるようになります。オーディエンスの作成に使用された元のパラメーターは、data_sourceパラメーターを使用すれば取得できます。
商品オーディエンスは、商品イベントから動的に生成される、特定のタイプのカスタムオーディエンスです。act_{ad-account-id}/product_audiencesエンドポイントは、このようなオーディエンスを作成するための特別なPOSTエンドポイントです。
以下は、カスタムオーディエンスを取得する方法の例です。
curl -X GET \ -d 'fields="data_source,subtype"' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/customaudiences
以下は、特定の商品オーディエンスを取得する方法の例です。
curl -G \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v25.0/<PRODUCT_AUDIENCE_ID>