言語のダイナミックな最適化

このAPIはベータリリースのため利用が制限されています。ダイナミック言語最適化1つの広告セットから複数の言語の広告セットを配置できます(見出しや本文など)。利用者に合った言語で表示されるよう、広告が自動的に最適化されます。 詳しくは、広告ヘルプセンターの「多言語のオーディエンスに対する広告」をご覧ください。

おおまかな手順は次のとおりです。

アセットフィードを作成する

アセットフィードとは、画像、タイトル、本文などの広告素材要素のコレクションです。言語の最適化のためのアセットフィードは、このエンドポイントで作成します。

POST https://graph.facebook.com/API_VERSION/act_AD_ACCOUNT_ID/adlanguage_assets
    

制約

アセットフィードの制限は以下のとおりです。

一般:

  • タイプごとのアセットの数は6つまで
  • 同じタイプの2つのアセットで同じ言語を使用することはできない
  • language別に定義されたグループごとに、2つ以上のタイプのアセットが必要
  • default_languageとは別に、language別に定義されたグループが、1つ以上必要
  • languageは、利用できる言語のリストから選択
  • 本文アセットにはすべての言語の値が必要

テキスト: タイトル、説明、本文テキストの長さは255文字まで

画像:

使用可能な広告の目的:

  • LINK_CLICKS
  • MOBILE_APP_INSTALLS
  • WEBSITE_CONVERSIONS

アセットのパラメーター

アセットは、languageフィールドに基づいてアセットフィードからグループ化されます。グループ化されたアセットは、広告インプレッション数においては常にまとめて表示されます。call_to_action_type以外のすべてのアセットには、言語フィールドが必要です。

default_languageは、そのアセットタイプで利用できる言語バージョンが他にない場合に広告に表示される、デフォルトの言語です。たとえば、本文アセットには6つの言語を設定できますが、デフォルト言語に設定されるタイトルアセットは1つのみです。このタイトルはデフォルト言語で、本文アセットは他のすべての言語バージョンで表示されます。

アセットタイプごとに、少なくとも1つのアセットでlanguagedefault_languageに設定されている必要があります。

プロパティ名説明タイプ必須かどうか

images

urlまたはhashとしての画像。広告アカウントの画像ライブラリの画像を指定する必要があります。

{"url": "IMAGE_URL", "hash": "IMAGE_HASH", "url_tags": "<TAG>", "language": "<LANGUAGE>"} の構造で、urlまたはhashのいずれかが必須ですが、languageは任意です。

はい。「画像」または「動画」のいずれかが必須です。

動画

広告アカウントの動画ライブラリ内の動画

{"video_id": "<VIDEO_ID>", "language": "<LANGUAGE>"}の構造で、languageは任意です。

はい

bodies

広告のメインとなるメッセージを含む本文の配列。

{"text": "<BODY_TEXT>", "url_tags": "<TAG>", "language": "<LANGUAGE>"}の リストの配列

はい

titles

タイトルの配列。広告の短い見出し。通常は、リンク、画像、動画の横に表示されます。

"text": "<TITLE>", "url_tags": "<TAG>", "language": "<LANGUAGE>"}の リストの配列

はい

descriptions

補足として使用する説明文の配列。本文やタイトルよりも目立たないように表示されます。通常は、リンク、画像、動画の横に表示されます。指定しない場合は、リンク広告の処理と同様に、指定したリンクをスクレイピングして、説明文が生成されます。

{"text": "<DESCRIPTION>", "url_tags": "<TAG>", "language": "<LANGUAGE>"}の リストの配列

はい。説明文を空欄にする場合は、スペースを1文字入力しただけの空の文字列を使用します。

link_urls

リンクURLの配列。

{"website_url": "<URL>", "language": "<LANGUAGE>"}の リストの配列

はい。目的がAPP_INSTALLの場合、website_urlのアプリストアのリンク先のパスを指定する必要があります。

call_to_action_type

コールトゥアクションのタイプ

CALL_TO_ACTION

いいえ

default_language

デフォルト言語を指定します

必須です。stringとして指定(例: en_XX)

はい

利用できる言語

検索エンドポイントで利用できる言語を見つけます。qパラメーターを使用して特定の言語名を検索することもできます。このパラメーターを空白にすると、サポートされているすべての言語のリストが表示されます。

curl -G 
  -d "type=adassetsupportedlanguages" 
  -d "limit=2" 
  -d "q=en" 
  -d "access_token=<ACCESS_TOKEN>" 
  https://graph.facebook.com/<VERSION>/search

成功すると、言語のリストが表示されます。

  {
  "data": [
    {
      "key": "en_XX",
      "language": "English"
    }
  ],
  "paging": {
    "cursors": {
      "before": "MAZDZD",
      "after": "MAZDZD",
    }
  }
}

検索結果からのキーを、アセットフィードのアセット用の言語として使用します。

アセットフィードの作成

次の例では、languageごとにグループされ同じlink_urlのテキストフィールドを持つアセットフィードを作成します。

curl \
-F "image={'hash':'6aa335e3cb84870d737b5743b11f229b'}" \
-F "bodies=[{'text':'Begin Your Adventure', 'language': 'en_XX'}, {'text':'Commencez votre aventure', 'language': 'fr_XX'}]" \
-F "titles=[{'text':'Pokemon', 'language': 'en_XX'}, {'text':'Pokémon', 'language': 'fr_XX'}]" \
-F "descriptions=[{'text':'Play now', 'language': 'en_XX'}]" \
-F "link_urls=[{'website_url':'www.instagram.com', 'language': 'en_XX'}]" \
-F "default_language=en_XX" \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/act_<ADACCOUNT_ID>/adlanguage_assets

正しく作成すると、新しいアセットフィードIDが付与されます。

  {"asset_feed_id":"<ID>"}

作成に失敗すると、エラーが表示されます。これは、アセットフィードが前述の制限に違反していることを意味します。

アセットフィードを確実に使用するには、次のコードを読み込みます。

curl -G 
-d "access_token=<ACCESS_TOKEN>" 
-d 'fields=images,titles,bodies,descriptions,ad_formats' 
https://graph.facebook.com/<API_VERSION>/<ASSET_FEED_ID>

複数の言語の広告を作成する

アセットフィードに言語を設定したら、その言語のキャンペーン、広告セット、広告を作成できます。例として、APP_INSTALLSのキャンペーンを作成します。

curl \
-F "name=Dynamic language optimization - Sample Campaign" \
-F "objective=APP_INSTALLS" \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/campaigns

ここで、新しいキャンペーンIDが返されます。

{"id":"1111111111110001"}

このキャンペーンIDを使用して広告セットを作成し、ターゲット設定を選択します。最適な結果を得るには、複数の言語のターゲット層のサイズを200万人以上に設定することをおすすめします。

サポートされる配置: * Facebookフィード、デスクトップ、モバイル publisher_platform=[“facebook”], facebook_positions=[“feed”, “right_hand_column”] * Instagramフィード instagram_positions=[“stream”] * Audience Network audience_network_positions=[“classic”]

言語アセットフィードを使用する広告セットでは、広告は1つだけ作成できます。

例として、モバイルアプリのインストールの広告セットを作成します。

curl \
-F 'billing_event=IMPRESSIONS' \
-F 'campaign_id=23842500259110001' \
-F 'lifetime_budget=500000' \
-F 'is_autobid=true' \
-F 'name="Dynamic language optimization - Adset"' \
-F 'promoted_object={"page_id":<PAGE_ID>}' \
-F 'status=PAUSED' \
-F 'optimization_goal=APP_INSTALLS' \
-F 'targeting={
    "publisher_platforms":["facebook"],
    "geo_locations":{"countries":["US"]},
    "age_min":18,
    "age_max":65
   }' \
-F 'promoted_object={
    "application_id":"<APPLICATION_ID>",
    "object_store_url":"<APP_STORE_URL>"
    }' \
-F 'end_time=1505220533' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adsets

ここでは新しい広告セットIDが返されます。

{"id":"22222200222220001"}

最後に、アセットフィードを使用する広告を作成します。広告セットIDとアセットフィードIDを指定します。

curl \
-F 'adset_id=<ADSET_ID>' \
-F 'creative={
      "asset_feed_id":<ASSET_FEED_ID>, 
      "object_story_spec":{"page_id":<PAGE_ID>}
    }' \
-F 'name="Dynamic language optimization - Ad"' \
-F 'status=ACTIVE' \
-F "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>>/ads

キャンペーンや広告セットは広告マネージャで表示できます。広告はFacebook広告の審査を受けます。広告がFacebook広告ポリシーに準拠しているかどうかのチェックを経て掲載されます。

審査ステータスの確認

キャンペーン、広告セット、広告の作成後、広告の審査ステータスを確認します。

curl -G 
-d 'fields=review_feedback' 
-d "access_token=<ACCESS_TOKEN" 
https://graph.facebook.com/<API_VERSION>/<AD_ID>

結果には、ダイナミック広告素材の審査フィードバックが記載されます。

{
  "review_feedback":"[]",
  "id":"<AD_ID>"
}

列が空白の場合は審査を通過したことを示し、広告セットの開始日になると広告が表示されます。その他の場合は、広告素材アセットが審査を通過しなかったことを示し、以下が表示されます。

{
  "review_feedback": [
    {
      "id":11111100258220001,
      "text":"Body 1",
      "reason":["ALCOHOL"]
    },
    {
      "id":22222200258160001,
      "text":"Title 1",
      "reason":["ALCOHOL"]
    },
    {
      "id":33333300258170001,
      "text":"Title 2",
      "reason":["ALCOHOL"]}
    },
  ],
  "id": "<AD_ID>" 
}