Advantage+ カタログ広告スタートガイド

Advantage+ カタログ広告を利用すれば、パーソナライズされた広告を作成し、商品のセットに基づいて適切なオーディエンスをターゲットに設定できます。

住宅、雇用、信用、社会問題、選挙、政治に関する広告を掲載する広告主には、それぞれ異なる一連の制限が課されます。詳しくは、特別な広告カテゴリを参照してください。

開始する前に

Advantage+カタログ広告キャンペーンを作成するには、以下が必要です。

任意でダイナミック商品オーディエンスを設定できますが、ターゲット設定において商品セットを含めるか除外するかを指定する必要はありません。

ステップ1: 広告キャンペーンを作成する

広告キャンペーンの作成方法について詳しくは、広告キャンペーンのドキュメントをご覧ください。

このレベルで、objectiveフィールドを使って広告の目的を設定する必要があります。Advantage+カタログ広告でサポートされている目的は、PRODUCT_CATALOG_SALESCONVERSIONSLINK_CLICKSAPP_INSTALLSです。指定するobjectiveCONVERSIONSLINK_CLICKSAPP_INSTALLSの場合、promoted_objectフィールドは不要です。

curl \
  -F 'name=Product Catalog Sales Campaign' \
  -F 'objective=PRODUCT_CATALOG_SALES' \
  -F 'promoted_object={"product_catalog_id":"<PRODUCT_CATALOG_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/campaigns

ステップ2: 広告セットを作成する

Advantage+カタログ広告では、広告セットレベルに対してpromoted_objectproduct_set_idを指定する必要があり、その商品セットに属する商品を宣伝することになります。

さらに、optimization_goalOFFSITE_CONVERSIONSに指定した場合に、promoted_objectcustom_event_typeを指定することで、その商品セットに対する独自のコンバージョンイベントを定義することもできます。そうすると、アプリまたはサイトでそのイベントを実行した利用者が広告のターゲットに設定されます。

例えば、これをADD_TO_CARTに設定すると、「カートに追加」イベントがコンバージョンイベントになります。custom_event_typeは、デフォルトではPURCHASEに設定されます。custom_event_typeの標準的なイベントとその値については、Metaピクセル、コンバージョントラッキングを参照してください。

アプリイベントとFacebookピクセルの両方からのコンバージョンを含むオフサイトコンバージョンのために最適化し、インプレッションに対して請求されるようにするには、次のように設定します。

  • optimization_goalOFFSITE_CONVERSIONSに設定
  • billing_eventIMPRESSIONSに設定

optimization_goalbilling_eventの有効な組み合わせについて詳しくは、最適化の目的と請求イベントをご覧ください。

IMPRESSIONSに対して請求され、OFFSITE_CONVERSIONS用に最適化された広告セットを作成する例を次に示します。

curl \
  -F 'name=Product Catalog Sales Adset' \
  -F 'bid_amount=3000' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ "geo_locations": {"countries":["US"]}, 
    "dynamic_audience_ids": ["<DYNAMIC_AUDIENCE_ID>"] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

DYNAMIC_AUDIENCE_IDは、商品オーディエンスを参照しています。任意で、呼び出しのdynamic_audience_idsは省略可能です。

eコマース事例の場合、呼び出しのdynamic_audience_idsを省略し、代わりに、動作ターゲット情報をproduct_audience_specsまたはexcluded_product_audience_specsパラメーターの一部として送信することができます。これらの設定は、商品オーディエンスの作成に使用するものと同じパラメーターによって定義されます。

パラメーター

名前説明

product_set_id

数字の文字列

必須。
このオーディエンスをターゲットとして設定する商品セット。

inclusions

JSONオブジェクト

必須。
ターゲット設定を行うためのイベントのセット。包含条件は少なくとも1つ必要です。それぞれの包含条件に、必ず1つのeventを設定する必要があります。

inclusions.retention_seconds

整数

必須。
アカウントセンターアカウントをオーディエンス内に保持する秒数。

inclusions.rule

オブジェクト[]

必須。
1つのeventを参照しているウェブサイトのカスタムオーディエンスルール

exclusions

JSONオブジェクト

任意。
アカウントセンターアカウントをターゲット設定から除外する一連のイベント。

exclusions.retention_seconds

整数

除外条件が指定されている場合は必須。
除外を存続させる秒数。

exclusions.rule

オブジェクト[]

除外条件が指定されている場合は必須。
1つのeventを参照しているウェブサイトのカスタムオーディエンスルール

各ルールには、最上位ルールまたは最上位のandルールの一部としてeq演算子を指定したeventが含まれていなければなりません。

リターゲット

この例では、過去3~5日間に商品を閲覧したものの、購入はしなかった利用者をターゲットとして設定します。広告は、モバイルフィードとAudience Networkに配置されます。このオーディエンスを作成するには、次のようにします。

curl \
  -F 'name=Product Catalog Sales Adset' \
  -F 'bid_amount=3000' \
  -F 'billing_event=LINK_CLICKS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "publisher_platforms": ["facebook","audience_network"], 
    "device_platforms": ["mobile"], 
    "geo_locations": {"countries":["US"]}, 
    "product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"ViewContent"}}}], 
        "exclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":259200,"rule":{"event":{"eq":"ViewContent"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":<PRODUCT_SET_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

クロスセルまたはアップセル

利用者が見たことのない製品を宣伝する例を次に示します。

curl \
-F 'name=Case 1 Adset' \
-F 'bid_amount=3000' \
-F 'billing_event=IMPRESSIONS' \
-F 'status=ACTIVE' \
-F 'daily_budget=15000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting= { \
            "geo_locations": { \
            "countries":["US"], \
             }, \
            "interests":[ \
                {"id":6003397425735,"name":"Tennis"}, \
            ], \
        }' \
-F 'promoted_object={"product_set_id”:<PRODUCT_SET_ID>}' \
-F 'access_token=<ACCESS_TOKEN>’ \
https://graph.facebook.com/<API_VERSION>/act_<ACCOUNT_ID>/adsets

商品セット間でのクロスセルを実施するには、次のようにします。

  • 商品オーディエンスに、商品セットAに関連したイベントルールを指定します。
  • 商品セットBの商品を広告に表示するために、広告クリエイティブのレベルでproduct_set_idを商品セットBに設定します。

例えば、ビジネスが、PRODUCT_SET_1に含まれるハンドバッグの売り上げを伸ばすためにPRODUCT_SET_2に含まれる靴に関心を示した既存の利用者を広告のターゲットにしたいと考えているとします。その場合は、次のようにしてproduct_audience_specsproduct_set_idをPRODUCT_SET_2のID (靴)に設定し、promoted_objectproduct_set_idをPRODUCT_SET_1のID (ハンドバッグ)に設定します。

curl \
  -F 'name=My cross sell ad set' \
  -F 'bid_amount=3000' \
  -F 'billing_event=LINK_CLICKS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "geo_locations": {"countries":["US"]}, 
    "product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_2_ID>", 
        "inclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"ViewContent"}}}], 
        "exclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_2_ID>", 
        "inclusions": [{"retention_seconds":259200,"rule":{"event":{"eq":"ViewContent"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_1_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets  

さらに、クリエイティブのproduct_set_idをPRODUCT_SET_1のIDに設定します。

  curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

幅広いオーディエンスをターゲットに設定する

既存のカスタマーへのリターゲットとクロスセルに加えて、Advantage+カタログ広告では、年齢、性別、その他の利用者データに基づくターゲット設定を利用して、幅広いオーディエンスをターゲットに設定して自社の商品カタログにある関連商品を宣伝することができます。Advantage+カタログ広告では、ターゲットを広げたオーディエンスと、オフサイトコンバージョンのための入札を組み合わせることで、自社の広告のリーチを効率的に拡張することができます。

幅広いオーディエンスをターゲットとして設定するには、次のようにします。

  • 基本的なターゲット利用者データ(例えば、米国在住、女性、18歳以上)を使用してオーディエンスを作成する。
  • PurchaseInitiateCheckoutなど、より強いインテントシグナルを使用してOFFSITE_CONVERSIONScustomOptimizeを含める。

この例では、米国在住の30~65歳の女性をターゲットに広告セットを作成し、過去10日間に購入を行ったカスタマーはターゲットから除外します。また、PURCHASEイベントのOFFSITE_CONVERSIONSを使用して$8で入札します。

curl \
  -F 'name=Broad Audience Targeting' \
  -F 'bid_amount=800' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "age_max": 65, 
    "age_min": 30, 
    "geo_locations": {"countries":["US"]}, 
    "genders": [2], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":864000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>","custom_event_type":"PURCHASE"}' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

Advantage+カタログ広告のカタログ

住宅、雇用、信用、社会問題、選挙、政治に関する広告を掲載する広告主には、それぞれ異なる一連の制限が課されます。詳しくは、特別な広告カテゴリを参照してください。

Advantage+カタログ広告のカテゴリでは、Advantage+カタログ広告プラットフォーム用の2つの新しいクリエイティブオプションが導入されています。どちらも、意思決定過程の早い段階にいる買い物客向けにクリエイティブをパーソナライズするために使うことができます。この機能を使用すると、既存の商品画像のカタログに加えて、各カテゴリを表す画像の、比較的小さいいわゆる2次クリエイティブカタログを作成できます。その後、商品を利用者とマッチングするのと同じように、商品カタログを広告の利用者とマッチングします。

Advantage+カタログ広告のカテゴリは、トラフィック、コンバージョン、カタログ販売目的のどのターゲティングオプションでも使うことができます。各カテゴリやブランドを表す高品質の画像がない場合、Facebookは各商品グループの上位商品の2x2コラージュを自動生成できます。

この新しい画像を既存の商品カタログにマッピングする際、アイテムのグループ化のため、フィードの中の3つの列、つまりブランド、商品タイプ、およびGoogle商品カテゴリのうちの1つを使うことができます。

下記のサンプルカタログの場合、商品タイプ列には5つの固有の値があります。広告主は、最大5つのコラージュまたはライフスタイルの画像を提供できます(product_typeの固有の値ごとに1つ)。商品タイプはカテゴリのカテゴリ基準であり、カテゴリを定義するために使われるカタログフィールド名です。カタログフィールドの値は、カテゴリの条件値です。

カテゴリは、次の要素によって一意に識別できます。

  • 製品カタログID
  • カテゴリ基準(ブランド、商品タイプ、Google商品カテゴリ)
  • 基準値(カタログから取得)
小売店 ID名 価格 商品タイプ ブランド カテゴリ

prod_1

Tシャツ

USD 25

衣類

ブランドA

カテゴリA

prod_2

FB Hoodie

USD 30

衣類

ブランドB

カテゴリA

prod_3

iPhone 6

USD 800

スマートフォン

ブランドC

カテゴリB

prod_4

Samsung Galaxy S5

USD 750

携帯電話

ブランドC

カテゴリB

prod_5

炊飯器

USD 120

家電製品

ブランドC

カテゴリC

prod_6

Parker Sofa

USD 500

家電製品

ブランドD

カテゴリC

prod_7

日焼け止め

USD 14

パーソナルケア

ブランドE

カテゴリE

各カテゴリ(上記で指定した列のいずれかに固有の値で定義された商品の各グループなど)をアセットと関連付けることができます。

  • 名前 — ユーザーに表示されるカテゴリのショートネーム(最大40文字)。
  • 説明 — ユーザーに表示されるカテゴリの説明(最大20文字)。
  • destination_uri — ユーザーがカテゴリをクリックしたときのランディングページのURL。
  • image_url任意。カテゴリを表すライフスタイル画像のURL。image_urlが指定されていない場合、そのカテゴリの上位商品のコラージュが自動生成されます。

広告配信時に、今日のAdvantage+カタログ広告を提供している機械学習モデルの使用に基づいて、各アカウントセンターアカウントを、最も反応を示しそうなカテゴリに動的にマッチングします。

カテゴリ管理API

カテゴリ情報はカタログレベルで保存されます。これは、商品を宣伝する広告がカタログで定義されたアセットを共有するのと同じように、同じカタログのカテゴリを宣伝するさまざまな広告がアセットを共有することを意味します。カテゴリ広告をカスタマイズするためのさまざまな広告クリエイティブのオプションがサポートされています。

以下に、カテゴリ情報を取得および更新するためのAPIを示します。

読み取り

リクエスト

  curl -G \
    -d 'fields=["criteria_value","name","description","destination_uri","image_url"]' \
    -d 'categorization_criteria=product_type' \
    -d 'filter={"price_amount":{"gt":1500}}' \ # optional
    -d 'access_token=<ACCESS_TOKEN>' \
    https://graph.facebook.com/v19.0/<PRODUCT_CATALOG_ID>/categories

すべての製品からのクエリにより(オプションフィルターがサポートされている)、上位1,000件のカテゴリ(製品数順)を検索します。

応答の例

{
  "data": [
    {
      "criteria_value": "clothes",
      "name": "Awesome clothes",
      "description": "Check out these awesome clothes!",
      "destination_uri": "http://www.example.com/clothes",
      "image_url": "http://www.example.com/clothes.jpg"
    },
    ...
    {
      "criteria_value": "shoes",
      "name": "Awesome shoes",
      "description": "Check out these awesome shoes!",
      "destination_uri": "http://www.example.com/shoes",
      "image_url": "http://www.example.com/shoes.jpg"
    }
  ]
}

アップデート

データに複数のカテゴリ情報を指定できます。カテゴリごとに、categorization_criteriacriteria_valueが必須です。一方、namedescriptiondestination_uriimage_urlの各フィールドは任意です。カテゴリの情報を初めて更新する場合は、destination_uriを指定する必要があります。カテゴリの配信は、destination_uriを空に設定するだけでスキップできます。

注: 現在のところ、カテゴリの削除はサポートされていません。

リクエスト

curl \
  -F 'data=[{"categorization_criteria":"product_type","criteria_value":"product_type_value","name":"Name","description":"Description","destination_uri":"http://www.example.com/","image_url":"<IMAGE_URL>"}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/<lPRODUCT_CATALOG_ID>/categories

広告の作成

Advantage+カタログ広告のカテゴリの広告作成は他のAdvantage+カタログ広告の広告作成と似ていますが、クリエイティブの選択は少し異なります。依然としてダイナミックカテゴリ広告を含む商品セットを宣伝しますが、Facebookは代わりに、カテゴリのクリエイティブを表示します。

curl \
  -F "name=Dynamic Category Ad Creative" \
  -F 'object_story_spec={"page_id": "<PAGE_ID>", "template_data": {"description": "{{category.description}}", "link": "https://www.example.com/", "message": "<MESSAGE>", "name": "{{category.name}}"}}' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'categorization_criteria=brand' \
  -F 'category_media_source=MIXED' \ # optional
  -F access_token=<ACCESS_TOKEN> \
  https://graph.facebook.com/v19.0/act_<ACCOUNT_ID>/adcreatives

これにより、カルーセル形式でレンダリングされるカテゴリ広告クリエイティブが作成されます。

カテゴリトークン

以下のカテゴリトークンがサポートされています。

  • category.name — 宣伝する商品セット内のカテゴリ名。
  • category.description — 宣伝する商品セット内のカテゴリの説明。
  • category.destination_uri — カテゴリの宛先URI。
  • category.min_price — 宣伝する商品セット内のこのカテゴリの最低価格。この情報は、カタログから取得されます。

パラメーター

名前説明

categorization_criteria

使用するカテゴリタイプを指定します。
値:

  • brand
  • product_type
  • google_product_category

category_media_source

カテゴリカルーセルカードのレンダリング方法を指定します。
値:

  • mixed (デフォルト)
    カテゴリの画像が存在する場合はそれを使います。存在しない場合は、products_collageになります。
  • category
    カテゴリの画像を使います。このカテゴリに画像がない場合は、カテゴリをスキップします。
  • products_collage
    このカテゴリから商品画像の2×2コラージュを生成します。
  • products_slideshow
    このカテゴリの商品のスライドショーをレンダリングします。

カテゴリ広告クリエイティブの作成時に、レンダリング可能なカテゴリを検索します。

:名前やリンク先URLのないカテゴリはフィルターで除外されます。category_media_source = categoryの場合、画像のないカテゴリもフィルターで除外されます。

よくあるエラー

対象カテゴリが4つ未満の場合はクリエイティブの作成に失敗します(例えば、特定のキャンペーンのクリエイティブとしてAdvantage+カタログ広告のカテゴリを使うには、データフィードファイルの特定の列に少なくとも4つの固有の値が必要です)。

ステップ3: 広告クリエイティブを指定する

Advantage+カタログ広告テンプレートでは、Advantage+カタログテンプレートクリエイティブを作成するため、インラインページ投稿を使います。

テンプレートクリエイティブを構築する

Advantage+カタログ広告テンプレートクリエイティブの作成方法は、他の広告クリエイティブを作成する場合とほとんど同じです。異なるのは、実行時にデータフィードファイル内のデータに基づいて適切に処理できるテンプレートパラメーターを追加できるという点です。

object_story_spectemplate_dataオブジェクトに基づき、以下のフィールドを使用してテンプレートを作成します。

名前説明テンプレートパラメーターを受け入れるかどうか

call_to_action

オブジェクト

コールトゥーアクションオブジェクト
valueフィールドは省略してください。

いいえ

message

文字列

広告のメッセージ。Instagramで表示されます。

はい

link

文字列

該当ウェブサイトへのリンク。広告のキャプション生成のために使用。
このフィールドは常に、データフィードファイルのlinkフィールドに置き換えられます。ただし、カルーセル広告のエンドカードの場合は例外で、このカードがリンク先になります。
注: Facebook URLを指定することはできません。

いいえ

name

文字列

広告の名前またはタイトル。Instagramでは表示されます。

はい

description

文字列

広告の説明。Instagramでは非表示。

はい

force_single_link

ブーリアン

任意。
単一リンク形式のレンダリングを強制。
trueに設定すると、クリエイティブは、単一商品を表示するリンクページ投稿広告になります。省略すると、生成される広告はカルーセル広告になります。カード数は、広告のパフォーマンスが最適化される数がFacebookによって選択されます。

いいえ

show_multiple_images

ブーリアン

単一商品のカルーセルに複数の画像を表示します。
注:force_single_linktrueに、multi_share_end_cardfalseに設定する必要があります。

いいえ

multi_share_end_card

ブーリアン

任意。
デフォルトはtrue
カルーセル形式で使います。falseに設定されている場合、ページアイコンを表示するエンドカードが削除されます。

いいえ

additional_image_index

整数

追加の画像配列のどの画像を広告画像として使うかを示します。これはゼロを基点とする0~19の範囲のインデックスです。
指定されてたインデックスに特定の商品の画像がない場合は、メイン商品の画像を使います。
注: 追加の画像URLは、一意になるようにしてください。重複しているURLは削除されるので、インデックスの番号付けに影響します。

いいえ

child_attachments

配列

カルーセル形式のAdvantage+カタログ広告の中に1つ以上の静的カードを提供できるようにします。
静的カードは、すべてのAdvantage+カタログ広告の前か後のいずれかに表示されます。child_attachmentsの下にある各静的カードには、trueに設定したフィールドstatic_cardを指定します。

いいえ

image_layer_specs

AdCreativeLinkDataImageLayerSpecs

画像が広告でユーザーに配信される際に、どのように変換されるかを指定します。
レイヤーのレンダリング方法を定義するため、レイヤーごとに1つのAdCreativeLinkDataImageOverlaySpecが必要です。レイヤーは、リストの中に出現する順番でレンダリングされます。
注:AdCreativeLinkDataImageLayerSpecは限定された形で利用可能です。詳しくは、Facebook担当者にお問い合わせください。

いいえ

image_overlay_spec

AdCreativeLinkDataImageOverlaySpec

ダイナミックアイテムの画像上にオーバーレイを表示する方法を指定します。

いいえ

preferred_image_tags

配列

画像にタグを追加した場合、使用する画像を選択します。
どのアイテムについても、画像の選択方法は次のとおりです。preferred_image_tagsの中でそのアイテムに対する画像が少なくとも1つあるタグのうち最初のものを選び、そのタグの最初の画像をレンダリングします。画像に対応するタグがない場合は、最初の画像はFacebookから提供されます。

いいえ

カルーセル形式のAdvantage+カタログ広告テンプレートを作成する

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

画像オーバーレイでAdvantage+カタログ広告テンプレートを使う

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}",
      "image_layer_specs": [
        {
          "layer_type": "image",
          "image_source": "catalog"
        },
        {
          "layer_type": "frame_overlay",
          "blending_mode": "lighten",
          "frame_image_hash": "<HASH>",
          "frame_source": "custom",
          "opacity": 100,
          "overlay_position": "center",
          "scale": 100
        },
        {
          "layer_type": "text_overlay",
          "content": {
            "type": "price"
          },
          "opacity": 100,
          "overlay_position": "top_left",
          "overlay_shape": "rectangle",
          "shape_color": "DF0005",
          "text_color": "FFFFFF",
          "text_font": "open_sans_bold"
        }
      ]
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

コールトゥーアクションを伴う単一商品のAdvantage+ カタログ広告テンプレートを作成する

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "force_single_link": true, 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

カルーセル形式のAdvantage+カタログ広告テンプレートを作成し、その広告画像として追加の画像配列の最初の画像を使う

additional_image_indexを指定したAdvantage+カタログ広告をプレビューするには、object_story_spec全体を/generatepreviewsエンドポイントに渡す必要があります。object_story_idを渡すだけでは、プレビューは生成されません。

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "additional_image_index": 0, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

単一商品についてカルーセル形式のAdvantage+カタログ広告テンプレートを作成し、各画像をカタログ内の追加の画像配列から取得する

curl -X POST \
     -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
     -F 'object_story_spec={
           "page_id": <PAGE_ID>,
           "template_data": {
             "message": "Test {{product.name | titleize}}",
             "link": "<YOUR_LINK_URL>",
             "name": "Headline {{product.price}}",
             "description": "Description {{product.description}}",
             "multi_share_end_card": false,
             "force_single_link": true,
             "show_multiple_images": true,
           }
         }' \
     -F 'product_set_id=<PRODUCT_SET_ID>' \
     -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

カルーセル形式のAdvantage+カタログ広告テンプレートを作成し、最初のカードを静的なクーポンカードにする

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "child_attachments": [ 
        { 
          "call_to_action": {"type":"SHOP_NOW"}, 
          "description": "30% off", 
          "image_hash": "<IMAGE_HASH>", 
          "link": "https:\/\/www.link.com\/coupon", 
          "name": "Coupon Static Card", 
          "static_card": true 
        }, 
        { 
          "call_to_action": {"type":"SHOP_NOW"}, 
          "description": "Description {{product.description}}", 
          "name": "Headline {{product.price}}" 
        } 
      ], 
      "link": "<LINK>", 
      "message": "Test Message" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Advantage+カタログ広告テンプレートからカルーセル形式のスライドショーを作成する

カルーセル内の各ダイナミックカードをスライドショーとしてレンダリングします。アイテムに複数の画像がある場合は、スライドショーごとに1つのダイナミックアイテムの各画像が表示されます。ダイナミックアイテムの画像が1つのみの場合、カードを静的画像としてレンダリングします。

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={
    "page_id": "PAGE_ID",
    "template_data": {
      "call_to_action": {"type":"SHOP_NOW"},
      "description": "Description {{product.description}}",
      "link": "LINK",
      "message": "Test {{product.name | titleize}}",
      "name": "Headline {{product.price}}",
      "format_option": "carousel_slideshows"
    }
  }' \
  -F 'product_set_id=PRODUCT_SET_ID' \
  -F 'access_token=ACCESS_TOKEN' \
  https://graph.facebook.com/v19.0/AD_ACCOUNT_ID/adcreatives

これらの呼び出しに対する応答は、新しいAdvantage+カタログ広告テンプレートクリエイティブのIDです。

{"id":"creative_id"}

カタログをアップロードする

カタログをアップロードするときには、各画像のそれぞれのプロパティに任意の英数字文字列のタグを指定できます。

<listing>
 <hotel_id>hotel_1</hotel_id>
 ...
 <image>
 <url>https://media-cdn.tripadvisor.com/media/photo-o/05/ca/40/af/the-epiphany-a-joie-de.jpg (https://l.facebook.com/l.php?u=https%3A%2F%2Fmedia-cdn.tripadvisor.com%2Fmedia%2Fphoto-o%2F05%2Fca%2F40%2Faf%2Fthe-epiphany-a-joie-de.jpg&h=ATPTuLcCa7Vsnmn07cEVa0YseTFl1C2hOax9NezejmXDbR48w3CLdjLlwlpuGCRDQmuafQvk03ybGqfhk-2mBcH7xtuKAsnuuq9xKwBd8DwfuBMZkq3n1qX5MdychRKGy2bo2ax9BZQzgqVDY_AvC1EqE6aAdUEc)</url>
 <tag>exterior</tag>
 <tag>first image</tag>
 <tag>tree</tag>
 </image>
 <image>
 <url>http://www3.hilton.com/resources/media/hi/DFWANHH/en_US/img/shared/full_page_image_gallery/main/HH_exteriorview001_1270x560_FitToBoxSmallDimension_Center.jpg (http://l.facebook.com/l.php?u=http%3A%2F%2Fwww3.hilton.com%2Fresources%2Fmedia%2Fhi%2FDFWANHH%2Fen_US%2Fimg%2Fshared%2Ffull_page_image_gallery%2Fmain%2FHH_exteriorview001_1270x560_FitToBoxSmallDimension_Center.jpg&h=ATPTuLcCa7Vsnmn07cEVa0YseTFl1C2hOax9NezejmXDbR48w3CLdjLlwlpuGCRDQmuafQvk03ybGqfhk-2mBcH7xtuKAsnuuq9xKwBd8DwfuBMZkq3n1qX5MdychRKGy2bo2ax9BZQzgqVDY_AvC1EqE6aAdUEc)</url>
 <tag>skyline</tag>
 ...
 </image>
 ...
</listing>

広告クリエイティブを作成する

広告素材を作成する際には、preferred_image_tagsの配列をobject_story_specで渡すことができます。

curl \
 -F 'name=Ad Creative Test'\
 -F 'object_story_spec={
     "page_id": '<PAGE_ID>',
     "template_data": {
       "preferred_image_tags": ["skyline","exterior"],
       "call_to_action": {"type":"BOOK_TRAVEL"},
       "description": "{{hotel.description}}",
       "link": "<URL>",
        "message": "Book your stay in {{hotel.city}}",
        "name": "{{hotel.name | titleize}}"
     }
    }' \
 -F 'product_set_id=<PRODUCT_SET_ID>' \
 -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Advantage+カタログ広告で動画を有効にする

Advantage+カタログ広告の作成に関する主な手順も同じです。動画を有効にするには、動画データを組み込み、カタログ内でそのデータを提供します。カタログを作成したり、更新したりする際に必要な変更については、以下を参照してください。

ステップ1: カタログを設定する

この例では、XMLファイルを使用しますが、他のフォーマットを使用する場合も同様に実行する必要があります。

動画をリスティングに追加する場合、urlフィールドとtagフィールドがサポートされます。現在のところ、商品ごとにサポートされる動画は1つのみです

<?xml version="1.0" encoding="utf-8"?>
<listings>
  <title>Test hotel feed</title>
  <listing>
    <hotel_id>hotel_1</hotel_id>
    <name>Test Hotel 1</name>
    <description>A very nice hotel</description>
    <brand>Facebook</brand>
    <address format="simple">
      <component name="addr1">180 Hamilton Ave</component>
      <component name="city">Palo Alto</component>
      <component name="city_id">12345</component>
      <component name="region">California</component>
      <component name="postal_code">94301</component>
      <component name="country">United States</component>
    </address>
    <latitude>37.4435997</latitude>
    <longitude>-122.1615219</longitude>
    <neighborhood>Palo Alto</neighborhood>
    <neighborhood>Silicon Valley</neighborhood>
    <margin_level>8</margin_level>
    <base_price>200.5 USD</base_price>
    <phone>+1 650 666-3311</phone>
    <star_rating>2.5</star_rating>
    <guest_rating>
      <score>7.8</score>
      <rating_system>tripAdvisor</rating_system>
      <number_of_reviewers>300</number_of_reviewers>
    </guest_rating>
    <guest_rating>
      <score>9.8</score>
      <rating_system>Hotels.com</rating_system>
      <number_of_reviewers>35000</number_of_reviewers>
    </guest_rating>
    <image>
      <url>https://media-cdn.tripadvisor.com/media/photo-o/05/ca/40/af/the-epiphany-a-joie-de.jpg</url>
      <tag>front view</tag>
      <tag>first image</tag>
    </image>
    <image>
      <url>http://www.jdvhotels.com/content/uploads/2014/06/72-1200x800.jpg</url>
      <tag>room</tag>
      <tag>bed</tag>
    </image>
    <loyalty_program>Starwood</loyalty_program>
    <url>http://www.jdvhotels.com/hotels/california/silicon-valley-hotels/the-epiphany-hotel/</url>
    <applink property="ios_url" content="example-ios://electronic"/>
    <applink property="ios_app_store_id" content="42"/>
    <applink property="ios_app_name" content="Electronic Example iOS"/>
*    <video>
      <url>http://example.com/some_video1.mp4</url>
      <tag>City</tag>
      <tag>Package</tag>
    </video>*
  </listing>
</listings>

動画の仕様

ステップ2: APIを使ってトラブルシューティング用の動画メタデータを取得する

APIを使用して、アップロードしたデータを確認できます。すべてのアイテムについて、「動画メタデータ」を照会できます。

リクエスト
curl -i -X GET \
 "https://graph.intern.facebook.com/v19.0/1234567890?fields=videos_metadata.fields(video,tags,url)&access_token=<ACCESS TOKEN>"

応答の例

ステップ3: クリエイティブまたは広告で動画を有効にする

広告で製品レベルの動画コンテンツを有効にするには、ダイナミックメディアで広告を作成するのドキュメントをご覧ください。

クリックトラッキングとテンプレート

最終的な商品URLにリダイレクトする前に、サードパーティのクリックトラッカーを使ってリンクのクリック数をトラッキングする場合、広告クリエイティブの中でtemplate_url_specフィールドを使うことができます。これにより、データフィードファイルの中にハードコーディングすることなく、広告レベルでクリックトラッカーテンプレートを追加することができます。また、このフィールドを使って、ディープリンク用のテンプレートを作成することもできます。

このフィールドでは、商品のURLやIDなどのダイナミックフィールドを使うことができます。ただし、URLには使えない文字が含まれている可能性がある場合、それらのフィールドはURLエンコードする必要があります。

カルーセル形式のAdvantage+カタログ広告テンプレートを、template_url_specを設定して作成するには、次のようにします。

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<URL>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'template_url_spec={ 
    "ios": { 
      "app_store_id": "123", 
      "url": "example:\/\/link\/?nav=item.view&id={{product.retailer_id | urlencode}}&referrer=http:\/\/rover.example.com\/rover\/1\/711-198453-24755-9\/16%3Fitemid={{product.retailer_id | urlencode | urlencode}}" 
    }, 
    "web": { 
      "url": "http:\/\/clicktrack.com\/cm325?id={{product.retailer_id | urlencode}}&redirect_url={{product.url | urlencode | urlencode}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

テンプレートの中でデータフィードファイルを使う

広告が表示される際には、Facebookにより、{{ }}セクションのコンテンツが、データフィードファイルの適切な値に置き換えられます。利用できるテンプレート値は次のとおりです。

名前説明

brand

データフィードファイルから得られたアイテムのbrand値。

current_price

商品に特売価格が指定されている場合の、形式設定された特売価格。任意で、商品の特売の開始日と終了日を指定すれば、アイテムのセール中はcurrent_priceに特売価格が表示されます。特売価格が指定されていない場合、またはセール期間が終了した場合は、priceフィールドの価格がここに表示されます。

description

データフィードファイルから得られたアイテムのdescription値。

name

データフィードファイルから得られたアイテムのtitle値。

price

書式設定されたprice列($1,234.56など)。

retailer_id

データフィードファイルから得られたアイテムのid値。

url

データフィードファイルから得られたアイテムのlink値。

custom_label_0

データフィードファイルから得られたアイテムのcustom_label_0値。

custom_label_1

データフィードファイルから得られたアイテムのcustom_label_1値。

custom_label_2

データフィードファイルから得られたアイテムのcustom_label_2値。

custom_label_3

データフィードファイルから得られたアイテムのcustom_label_3値。

custom_label_4

データフィードファイルから得られたアイテムのcustom_label_4値。

オプション

一部のテンプレート値には、次の形式のオプションを任意の順序で指定できます。

{{field option1 option2 ...}}

指定可能なオプションは次のとおりです。

オプション説明対応するテンプレート値

raw

通貨記号を省略します

price
current_price

strip_zeros

セントがゼロの場合に、通貨のセント部分を省略します。

price
current_price

round

価格の端数を切り上げる際に、通貨のセントの額を省略します

すべての価格フィールド

変換

次の形式に基づいて値を調整する変換を指定したテンプレート値を使用できます。

{{field | transform}}

次のいずれかの変換を使用します。

変換説明

number_format

数値をデフォルトの形式にします。桁区切り記号にコンマを使い、最も近い整数に丸めます(例: 1234.56→1.235)。形式設定の対象となる値は、形式設定されていない数値("1,234"ではなく"1234")である必要があります。

titleize

タイトルの見栄えを良くするため、単語の先頭を大文字に変換します(例: "box"→"Box")。

urlencode

値をURL用にエンコードします。

モバイルから広告をクリックした際の動作の指定

ダイナミッククリエイティブを使う場合は、利用者がネイティブFacebookアプリで広告をクリックした際の動作を指定することができます。ディープリンクを使用するには、次の2つの要件があります。

  1. 利用者の転送先のネイティブモバイルアプリがディープリンクをサポートしている(iOSまたはAndroid)。
  2. ディープリンク情報がデータフィードファイルに組み込まれているか、ディープリンク情報をApp Links経由で取得できる。

この要件がいずれも満たされていれば、利用者が広告をクリックした際の動作を、広告クリエイティブの作成時にapplink_treatmentフィールドを使って指定できます。

名前説明

web_only

利用者は常に指定したウェブURLに送られます。

deeplink_with_web_fallback

ユーザーのスマートフォンにアプリがインストールされていて、対応するディープリンク情報があれば、そのユーザーはアプリに移動します。これらの条件のいずれかが満たされない場合は、利用者はウェブサイトに送られます。

deeplink_with_appstore_fallback

製品に対するApp Linksが存在する場合のデフォルト。ユーザーのスマートフォンにアプリがインストールされていて、対応するディープリンク情報があれば、そのユーザーはアプリに移動します。アプリがインストールされていない場合、ユーザーはそのアプリのアプリストアに誘導されます。

ネイティブアプリが利用可能であればそのアプリにディープリンクし、利用可能でなければウェブにフォールバックするコールトゥーアクションが設定されたカルーセル形式のAdvantage+ カタログ広告テンプレートの作成

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'applink_treatment=deeplink_with_web_fallback' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

ネイティブアプリが利用可能であればそのアプリにディープリンクし、利用可能でなければそのアプリのアプリストアにフォールバックするURLタグが有効にされたカルーセル形式のAdvantage+カタログ広告テンプレートの作成

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'applink_treatment=deeplink_with_appstore_fallback' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Advantage+カタログ広告用のローカライズカタログを作成する

Advantage+カタログ広告用のローカライズカタログで詳細情報をご覧ください。

ステップ4: 広告を作成する

これまでのステップを完了した上で、広告を作成できます。広告では、広告クリエイティブを参照します。

curl -X POST \ -F 'name="My Ad"' \ -F 'adset_id="<AD_SET_ID>"' \ -F 'creative={ "creative_id": "<CREATIVE_ID>" }' \ -F 'status="PAUSED"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/ads
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const Ad = bizSdk.Ad; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_ACCOUNT_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'My Ad', 'adset_id' : '<adSetID>', 'creative' : {'creative_id':'<adCreativeID>'}, 'status' : 'PAUSED', }; const ads = (new AdAccount(id)).createAd( fields, params ); logApiCallResult('ads api call complete.', ads);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\Ad; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_ACCOUNT_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'My Ad', 'adset_id' => '<adSetID>', 'creative' => array('creative_id' => '<adCreativeID>'), 'status' => 'PAUSED', ); echo json_encode((new AdAccount($id))->createAd( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.ad import Ad from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'My Ad', 'adset_id': '<adSetID>', 'creative': {'creative_id':'<adCreativeID>'}, 'status': 'PAUSED', } print AdAccount(id).create_ad( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_ACCOUNT_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createAd() .setName(\"My Ad\") .setAdsetId(<adSetID>L) .setCreative( new AdCreative() .setFieldId(\"<adCreativeID>\") ) .setStatus(Ad.EnumStatus.VALUE_PAUSED) .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) ads = ad_account.ads.create({ name: 'My Ad', adset_id: '<adSetID>', creative: {'creative_id':'<adCreativeID>'}, status: 'PAUSED', })

お疲れさまでした。初めてのAdvantage+カタログ広告を作成できました。一時停止の状態を解除すれば、広告の配信を開始することができます。

Advantage+カタログ広告は、Instagramストーリーズの広告として公開すると、元の画像のサイズに関係なく1:1にトリミングされます。

次のステップ

Advantage+ カタログ広告のプレビュー

広告プレビューエンドポイントを使えば、ダイナミッククリエイティブのプレビューを生成できます。product_item_idsパラメーターを指定するか、複数のproduct_item_idsを指定すると、カルーセル広告をプレビューできます。

curl -X GET \ -d 'ad_format="DESKTOP_FEED_STANDARD"' \ -d 'product_item_ids=[ "<PRODUCT_ITEM_ID>" ]' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/<CREATIVE_ID>/previews
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdCreative = bizSdk.AdCreative; const AdPreview = bizSdk.AdPreview; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_CREATIVE_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'ad_format' : 'DESKTOP_FEED_STANDARD', 'product_item_ids' : ['<productItemID>'], }; const previewss = (new AdCreative(id)).getPreviews( fields, params ); logApiCallResult('previewss api call complete.', previewss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdCreative; use FacebookAds\Object\AdPreview; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_CREATIVE_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'ad_format' => 'DESKTOP_FEED_STANDARD', 'product_item_ids' => array('<productItemID>'), ); echo json_encode((new AdCreative($id))->getPreviews( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adcreative import AdCreative from facebook_business.adobjects.adpreview import AdPreview from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'ad_format': 'DESKTOP_FEED_STANDARD', 'product_item_ids': ['<productItemID>'], } print AdCreative(id).get_previews( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_CREATIVE_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdCreative(id, context).getPreviews() .setAdFormat(AdPreview.EnumAdFormat.VALUE_DESKTOP_FEED_STANDARD) .setProductItemIds(\"[\\"<productItemID>\\"]\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_creative = FacebookAds::AdCreative.get(id) previewss = ad_creative.previews({ fields: { }, ad_format: 'DESKTOP_FEED_STANDARD', product_item_ids: ['<productItemID>'], })

パラメーター

名前説明

product_item_ids

配列[文字列]

商品FBIDまたはBase64 URLエンコードの商品IDトークンのリスト。
各トークンの形式はcatalog:{catalog_id}:{base64urlencode(retailer_id)}です。

商品広告の統計のフェッチ

商品ごとの統計をフェッチするには、インサイトエンドポイントに対してGET呼び出しを実行します。product_idfieldsパラメーターに追加します。

これにより、Advantage+カタログ広告に表示されたアカウントの商品セット内のすべての商品についての統計が表示されます。

この例では、各product_idについて、clicksactionsimpressionsが報告されます。

リクエスト
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdsInsightsFields;
use FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsDatePresetValues;
use FacebookAds\Object\Values\AdsInsightsBreakdownsValues;

$account = new AdAccount('act_<AD_ACCOUNT_ID>');

$fields = array(
  AdsInsightsFields::ACCOUNT_NAME,
  AdsInsightsFields::IMPRESSIONS,
  AdsInsightsFields::ACTIONS,
);

$params = array(
  'date_preset' => AdsInsightsDatePresetValues::LAST_WEEK,
  'action_breakdowns' => array(
    AdsInsightsActionBreakdownsValues::ACTION_TYPE,
  ),
  'breakdowns' => array(
    AdsInsightsBreakdownsValues::PRODUCT_ID,
  ),
);

$stats = $account->getInsights($fields, $params);
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adsinsights import AdsInsights

account = AdAccount('act_<AD_ACCOUNT_ID>')

fields = [
    AdsInsights.Field.account_name,
    AdsInsights.Field.impressions,
    AdsInsights.Field.actions,
]

params = {
    'date_preset': 'last_week',
    'actions_group_by': ['action_type'],
    'breakdowns': [
        AdsInsights.Breakdowns.product_id,
    ],
}

stats = account.get_insights(fields=fields, params=params)
APINodeList<AdsInsights> adsInsightss = new AdAccount(act_<AD_ACCOUNT_ID>, context).getInsights()
  .setDatePreset(AdsInsights.EnumDatePreset.VALUE_LAST_WEEK)
  .setActionBreakdowns("[\"action_type\"]")
  .setBreakdowns("[\"product_id\"]")
  .requestField("account_name")
  .requestField("impressions")
  .requestField("actions")
  .execute();
curl -G \
  -d 'date_preset=last_week' \
  -d 'action_breakdowns=["action_type"]' \
  -d 'breakdowns=["product_id"]' \
  -d 'fields=account_name,impressions,actions' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/insights
応答
{
 "data": [ 
   {
      "account_id": "123456", 
      "product_id": "60750", 
      "date_start": "2015-02-03", 
      "date_stop": "2015-02-03", 
      "impressions": 880, 
      "clicks": 8, 
      "actions": [ 
        {
          "action_type": "link_click", 
          "value": 6
        }, 
        {
          "action_type": "offsite_conversion.other", 
          "value": 5
        },  
        {
          "action_type": "offsite_conversion", 
          "value": 5
        }
      ], 
      "account_name": "My Account"
    }, 
 ], 
...
}

コメントと「いいね!」のフェッチ

Advantage+カタログ広告投稿について、コメント、「いいね!」、product_idを取得することができます。次のようにpost_idを指定してGET呼び出しを実行します。post_idは、広告クリエイティブeffective_object_story_idであり、その形式はPageID_PostIDです。

: このエンドポイントを使ってInstagramからコメントを取り出すことはできません。

curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/<POST_ID>/dynamic_posts

このエンドポイントは、ダイナミック投稿オブジェクトを返します。

ダイナミック投稿を取得したら、カルーセル形式のcommentslikesproduct_idchild_attachmentsをフェッチできます(該当するものがある場合)。

配置アセットカスタマイズ広告は、dynamic_postsエッジからは返されません。