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
パラメーターを送信することをおすすめします。
ウェブサイトに次のイベントを追加する必要があります(該当する場合)。
Search
ViewCategory
ViewContent
AddToCart
Purchase
これらのイベントは、次のデータパラメーターと一緒に送信する必要があります。
名前 | 説明 |
---|---|
文字列または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呼び出しを実行することもできます。
use FacebookAds\Object\ProductCatalog;
$product_catalog = new ProductCatalog(<PRODUCT_CATALOG_ID>);
$product_catalog->createExternalEventSource(array(), array(
'external_event_sources' => array(
<PIXEL_ID>,
<APP_ID>,
),
));
from facebookads.adobjects.productcatalog import ProductCatalog
product_catalog = ProductCatalog(<PRODUCT_CATALOG_ID>)
product_catalog.add_external_event_sources([
<PIXEL_ID>,
<APP_ID>,
])
curl \
-F 'external_event_sources=["<PIXEL_ID>","<APP_ID>"]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/external_event_sources
注: カタログ、ピクセル、アプリに対するアクセス許可に加えて、ビジネスに対するアクセス許可が必要です。
名前 | 説明 |
---|---|
| 必須。 |
次に、モバイルアプリとウェブサイトにおけるアクティビティに基づいて、商品オーディエンスを作成します。使用するイベントを選択したり、商品オーディエンスを使って広告のターゲットを設定したりできます。
標準のアプリイベントの場合、次の広告のピクセルイベント名の下にオーディエンスが集計されます。
Search
ViewContent
AddToCart
Purchase
オーディエンスルールでは、オーディエンスにAndroidやiOSのユーザーが含まれている場合であっても、これらのイベント名を使用します。
/act_{ad-account-id}/product_audiences
エンドポイントにPOST
API呼び出しを行って、商品オーディエンスを作成します。
https://graph.facebook.com/v21.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/v21.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/v21.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/v21.0/act_<AD_ACCOUNT_ID>/customaudiences
以下は、特定の商品オーディエンスを取得する方法の例です。
use FacebookAds\Object\ProductAudience;
$product_audience = new ProductAudience(<PRODUCT_AUDIENCE_ID>);
$product_audience->read();
from facebookads.objects import ProductAudience
product_audience = ProductAudience(<PRODUCT_AUDIENCE_ID>)
product_audience.remote_read()
CustomAudience customAudience2 = new CustomAudience(<PRODUCT_AUDIENCE_ID>, context).get()
.execute();
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PRODUCT_AUDIENCE_ID>