アプリ広告

このドキュメントでは、デスクトップやモバイルアプリのインストールおよびエンゲージメントを促進するためにデザインされた、さまざまな広告ユニットについて説明します。

この広告ユニットを使用して、写真、動画、カルーセル、またはプレイアブルクリエイティブを使って、提供しているデスクトップアプリまたはモバイルアプリに、インストールやエンゲージメントを目的とした大勢の人が訪れるようにします。

概念的には、次の広告を利用できます。

写真 動画 カルーセル プレイアブル

モバイルインストール広告

モバイルエンゲージメント広告

デスクトップインストール広告

デスクトップエンゲージメント広告

バーチャルグッズのデスクトップアプリ広告

バーチャルグッズのデスクトップアプリ広告はデスクトップエンゲージメントのサブセットであり、バーチャルグッズオファーを使用してプレイヤーを再エンゲージメントし、アプリに戻ってくるように誘導できます。例えば、アプリのフィードでアイテムの割引やアプリ内通貨セットを提供して、過去のプレイヤーに再度アプローチできます。決済を承認するようアプリを設定する手順については、ここをご覧ください。

モバイルインストール画像ユニットの例

バーチャルグッズ用のデスクトップアプリ広告の例

前提条件

  • アプリ開発者がアプリ広告を作成するには、チュートリアルのステップを完了しなければなりません。
  • 広告主はこれらの広告を掲載するFacebookページを用意する必要があります。

作成

広告を作成する際は、次の前提条件に留意してください。

  • キャンペーンの目的は、APP_INSTALLSLINK_CLICKS、またはCONVERSIONSでなければなりません。
  • 広告セット宣伝オブジェクトを設定する必要があります
  • モバイルアプリ広告の場合は、モバイルターゲット設定仕様 user_osフィールドの使用が必須となります。配置ではdevice_platformsフィールドの値が['mobile']になっている必要があり、Facebookでモバイルデバイスをターゲット設定するために、仕様のほかのフィールドを使用することを強くおすすめします。オプションで、特定のプラットフォームだけを対象にする場合、publisher_platformsを指定します。-
  • キャンバスアプリ広告の場合、device_platformsdesktopでなければなりません。オプションで、Facebookのデスクトップフィードと右側の列の両方を表示させない場合は、facebook_positionsを指定します。
  • バーチャルグッズにGET_OFFERを使用する際は、価格を割引価格にしなければなりません。詳しくは、バーチャルグッズをご覧ください。

アプリ広告のコールトゥアクション

以下の追加のコールトゥアクションは、投稿call_to_actionフィールド内または広告クリエイティブのobject_story_spec内のアプリ広告で利用可能です。モバイルアプリのディープリンクをapp_linkフィールドで指定することも、デスクトップアプリのバーチャルグッズオブジェクトをproduct_linkフィールドで指定することもできます。

キー 必須

モバイルのコールトゥアクションの型(インストールまたはエンゲージメントに関わらず):
SHOP_NOW
BOOK_TRAVEL
LEARN_MORE
SIGN_UP
DOWNLOAD
INSTALL_MOBILE_APP
USE_MOBILE_APP
WATCH_VIDEO
WATCH_MORE
OPEN_LINK
デスクトップアプリのインストールまたはエンゲージメントのコールトゥアクションの型:
USE_APP (デスクトップアプリ)
PLAY_GAME (デスクトップゲームアプリ)
バーチャルグッズ用のデスクトップアプリ広告のコールトゥアクションの型:
BUY_NOW
GET_OFFER

はい

次のもののJSONディクショナリー: {"link": "<APP_STORE_LINK>","app_link": "<MOBILE_DEEP_LINK>","product_link": "<VIRTUAL_GOOD_DEEP_LINK>","link_title": "<NAME_FOR_LINK>"}

はい

  • 特定の値のみ必須

value.link

App Store、Google Playストア、FacebookキャンバスアプリのURLを参照します。例: https://itunes.apple.com/us/app/facebook/id284882215

はい

value.app_link

モバイルアプリだけのディープリンクのリンク先を定義する(例: myapp://product/12345)。デスクトップアプリ用のディープリンクを指定するには、URLリンクフィールドに直接指定する必要があります。

必須(モバイルのインストールまたはエンゲージメント広告のみ)

value.product_link

商品のOpen Graphバーチャルグッズオブジェクトを指し示すURLを定義します。設定の詳細については、こちらをご覧ください。

必須(デスクトップバーチャルグッズのみ)

value.link_title

広告イメージの下に表示されるリンクの名前をカスタマイズできます。

いいえ

フィールドの仕様

写真を使用した作成

写真を使ったデスクトップまたはモバイルのアプリ広告を作成するには、最初に広告クリエイティブのobject_story_spec: {'link_data': ...}フィールドを使って写真のあるリンクページ投稿を作成します。

例:

curl -X POST \ -F 'name="Sample Creative"' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "link_data": { "call_to_action": { "type": "INSTALL_MOBILE_APP", "value": { "link": "<APP_STORE_URL>" } }, "image_hash": "<IMAGE_HASH>", "link": "<APP_STORE_URL>", "message": "Try it out" } }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives

または、ページのフィードエンドポイントによりページ投稿を作成し、クリエイティブでその投稿IDを使用します。ほかの例については、以下のサンプルセクションをご覧ください。

モバイルアプリインストール広告またはエンゲージメント広告を、カルーセル広告フォーマットを使って作成するには、「カルーセル広告のドキュメント」の指示に従ってください。ただし、各child_attachmentslinkフィールドは例外で、App Storeリンクを指定します。

注意事項

  • 現在、カルーセルモバイルアプリ広告でサポートされるのは1つのアプリのみです
  • 画像は最低3つ必要です(アプリ広告カルーセル広告以外の場合は2つ以上)
  • カルーセルモバイルアプリ広告には、コールトゥアクションが定義されている必要があります
  • 終了カード(通常はページのプロフィール写真を表示)はカルーセルモバイルアプリ広告では表示されません。

child_attachmentには、同じApp Storeリンクを指定する必要があることに注意してください。call_to_action:{'value':{'link':... }}}で再度リンクを指定する必要はありません

curl -X POST \ -F 'name="Carousel app ad"' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "link_data": { "message": "My message", "link": "http://www.example.com/appstoreurl", "caption": "WWW.ITUNES.COM", "name": "The link name", "description": "The link description", "child_attachments": [ { "link": "http://www.example.com/appstoreurl", "image_hash": "<IMAGE_HASH>", "call_to_action": { "type": "USE_MOBILE_APP", "value": { "app_link": "<DEEP_LINK>" } } }, { "link": "http://www.example.com/appstoreurl", "image_hash": "<IMAGE_HASH>", "call_to_action": { "type": "USE_MOBILE_APP", "value": { "app_link": "<DEEP_LINK>" } } }, { "link": "http://www.example.com/appstoreurl", "image_hash": "<IMAGE_HASH>", "call_to_action": { "type": "USE_MOBILE_APP", "value": { "app_link": "<DEEP_LINK>" } } }, { "link": "http://www.example.com/appstoreurl", "image_hash": "<IMAGE_HASH>", "call_to_action": { "type": "USE_MOBILE_APP", "value": { "app_link": "<DEEP_LINK>" } } } ], "multi_share_optimized": true } }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives

動画を使用した作成

動画を使ってアプリ広告を作成するにはまず、動画を広告アカウントの動画ライブラリにアップロードします。その後、動画IDを広告クリエイティブのobject_story_spec: {'video_data':...}フィールドで使用します。

例:

curl \ -F 'name=Sample Creative' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "video_data": { "call_to_action": {"type":"INSTALL_MOBILE_APP","value":{"link":"<APP_STORE_URL>"}}, "image_url": "<THUMBNAIL_URL>", "video_id": "<VIDEO_ID>" } }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives

または、ページの動画エンドポイントによりページ投稿を作成し、クリエイティブでその動画IDを使用します。ほかの例については、以下のサンプルセクションをご覧ください。

読み取り

ページ投稿の詳細の取得については、リンクページ投稿のドキュメントまたは動画ページ投稿のドキュメントを参照してください。

ページの/promotable_postsエッジからすべてのページ投稿をリスト表示できます。

curl https://graph.facebook.com/v24.0/<PAGE_ID>/promotable_posts

広告クリエイティブの詳細を取得する場合は、広告クリエイティブのドキュメントを参照してください。

開始する前に

サンプルコード

"call_to_action={'type':'LEARN_MORE', 'value':{'link':'https://itunes.apple.com/us/app/facebook/id284882215', 'app_link':'facebook://path/to/page'}}"

アプリリンクを指定する前に、次のような呼び出しをして、そのアプリリンクがスクレイピングされていることを検証する必要があります。

https://graph.facebook.com/v24.0/?type=og&scrape=true&id=<APP_LINK>

モバイルアプリインサイト

インサイトは、アプリIDを含む宣伝されるオブジェクトのある広告にのみ適用されます。アプリIDを取得するために、アプリをFacebookに登録します。

Metaは、アプリをインストールした人の利用者データについて、毎日集約したインサイトを提供します。これを取得するには、アプリアクセストークンとクエリを使用する必要があります。

https://graph.facebook.com/v24.0/<APP_ID>/insights/application_mobile_app_installs?&access_token=<ACCESS_TOKEN

追加のURLパラメーターbreakdownに、次の値のいずれかを指定して、統計の内訳を取得することもできます。現在のところ、内訳を組み合わせることはできません。

名前 説明

gender_age

オーディエンスの年齢と性別ごとに統計の内訳を確認します。

country

オーディエンスの国ごとに統計の内訳を確認します。

locale

オーディエンスのロケールごとに統計の内訳を確認します。

例:

https://graph.facebook.com/v24.0/<APP_ID>/insights/application_mobile_app_installs?breakdown=gender_age&access_token=<ACCESS_TOKEN> https://graph.facebook.com/v24.0/<APP_ID>/insights/application_mobile_app_installs?breakdown=country&access_token=<ACCESS_TOKEN> https://graph.facebook.com/v24.0/<APP_ID>/insights/application_mobile_app_installs?breakdown=locale&access_token=<ACCESS_TOKEN>

モバイルアプリのインストール画像広告の作成

ステップ1. 画像を使用するページ投稿を作成します。ページ投稿を作成するには、PAGE_ACCESS_TOKENとページAPIセッションを使用してください。

curl \ -F 'message=Sign up today' \ -F 'picture=<IMAGE_URL>' \ -F 'link=<LINK>' \ -F 'published=1' \ -F 'call_to_action={"type":"SIGN_UP","value":{"link":"<LINK>"}}' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/<PAGE_ID>/feed

ステップ2.広告クリエイティブを作成します({STORY_ID}の形式は'{PAGE_ID}_{POST_ID}'です)。

curl -X POST \ -F 'object_story_id="<PAGE_ID>_<POST_ID>"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives

ステップ3.広告のクリエイティブを使用します。

curl -X POST \ -F 'name="My AdGroup with Redownload"' \ -F 'adset_id="<AD_SET_ID>"' \ -F 'creative={ "creative_id": "<CREATIVE_ID>" }' \ -F 'redownload=1' \ -F 'status="PAUSED"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/ads

ディープリンク、クリックの最適化、インプレッションに対する支払いを使用する、モバイルアプリの画像広告の作成

ステップ1.画像を使用するページ投稿を作成します。ページ投稿を作成するには、PAGE_ACCESS_TOKENとページAPIセッションを使用してください。

url -X POST \ -F 'message="This is a test message"' \ -F 'call_to_action={ "type": "BUY_NOW", "value": { "link": "<APP_STORE_URL>", "app_link": "<DEEP_LINK>" } }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/<PAGE_ID>/feed

ステップ2.広告クリエイティブを作成します。

curl -X POST \ -F 'object_story_id="<PAGE_ID>_<POST_ID>"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const AdCreative = bizSdk.AdCreative; 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 = { 'object_story_id' : '<pageID>_<postID>', }; const adcreatives = (new AdAccount(id)).createAdCreative( fields, params ); logApiCallResult('adcreatives api call complete.', adcreatives);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\AdCreative; 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( 'object_story_id' => '<pageID>_<postID>', ); echo json_encode((new AdAccount($id))->createAdCreative( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.adcreative import AdCreative 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 = { 'object_story_id': '<pageID>_<postID>', } print AdAccount(id).create_ad_creative( 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).createAdCreative() .setObjectStoryId(\"<pageID>_<postID>\") .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) adcreatives = ad_account.adcreatives.create({ object_story_id: '<pageID>_<postID>', })

ステップ3.広告セットでの入札、クリックの最適化、インプレッションに対する支払いを設定します。

ステップ4.広告のクリエイティブを使用します。

アプリリンク、アプリイベントの最適化、インプレッションに対する支払いを使用するモバイルアプリエンゲージメント画像広告を作成する

ステップ1.画像を使用するページ投稿を作成します。ページ投稿を作成するには、PAGE_ACCESS_TOKENとページAPIセッションを使用してください。

ステップ2.広告クリエイティブを作成します。

curl -X POST \ -F 'object_story_id="<PAGE_ID>_<POST_ID>"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const AdCreative = bizSdk.AdCreative; 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 = { 'object_story_id' : '<pageID>_<postID>', }; const adcreatives = (new AdAccount(id)).createAdCreative( fields, params ); logApiCallResult('adcreatives api call complete.', adcreatives);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\AdCreative; 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( 'object_story_id' => '<pageID>_<postID>', ); echo json_encode((new AdAccount($id))->createAdCreative( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.adcreative import AdCreative 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 = { 'object_story_id': '<pageID>_<postID>', } print AdAccount(id).create_ad_creative( 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).createAdCreative() .setObjectStoryId(\"<pageID>_<postID>\") .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) adcreatives = ad_account.adcreatives.create({ object_story_id: '<pageID>_<postID>', })

ステップ3.広告セットでの入札、アプリイベントの最適化、インプレッションに対する支払いを設定します。

広告セットのpromoted_objectcustom_event_typeを含めるように設定して最適化することも必要です。詳細は「広告セットのドキュメント」を参照してください。

curl -X POST \ -F 'name="A CPA Ad Set optimized for App Events"' \ -F 'campaign_id="<AD_CAMPAIGN_ID>"' \ -F 'daily_budget=300' \ -F 'start_time="2025年10月23日T10:10:40-0700"' \ -F 'end_time="2025年10月30日T10:10:40-0700"' \ -F 'billing_event="IMPRESSIONS"' \ -F 'optimization_goal="OFFSITE_CONVERSIONS"' \ -F 'bid_amount=100' \ -F 'status="PAUSED"' \ -F 'promoted_object={ "application_id": "<APP_ID>", "object_store_url": "<APP_STORE_URL>", "custom_event_type": "PURCHASE" }' \ -F 'targeting={ "facebook_positions": [ "feed" ], "geo_locations": { "countries": [ "US" ] }, "user_os": [ "iOS" ] }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adsets
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const AdSet = bizSdk.AdSet; 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' : 'A CPA Ad Set optimized for App Events', 'campaign_id' : '<adCampaignAppInstallsID>', 'daily_budget' : '300', 'start_time' : '2024年08月05日T17:55:15-0700', 'end_time' : '2024年08月12日T17:55:15-0700', 'billing_event' : 'IMPRESSIONS', 'optimization_goal' : 'OFFSITE_CONVERSIONS', 'bid_amount' : '100', 'status' : 'PAUSED', 'promoted_object' : {'application_id':'<appID>','object_store_url':'<appLink>','custom_event_type':'PURCHASE'}, 'targeting' : {'facebook_positions':['feed'],'geo_locations':{'countries':['US']},'user_os':['iOS']}, }; const adsets = (new AdAccount(id)).createAdSet( fields, params ); logApiCallResult('adsets api call complete.', adsets);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\AdSet; 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' => 'A CPA Ad Set optimized for App Events', 'campaign_id' => '<adCampaignAppInstallsID>', 'daily_budget' => '300', 'start_time' => '2024年08月05日T17:55:15-0700', 'end_time' => '2024年08月12日T17:55:15-0700', 'billing_event' => 'IMPRESSIONS', 'optimization_goal' => 'OFFSITE_CONVERSIONS', 'bid_amount' => '100', 'status' => 'PAUSED', 'promoted_object' => array('application_id' => '<appID>','object_store_url' => '<appLink>','custom_event_type' => 'PURCHASE'), 'targeting' => array('facebook_positions' => array('feed'),'geo_locations' => array('countries' => array('US')),'user_os' => array('iOS')), ); echo json_encode((new AdAccount($id))->createAdSet( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.adset import AdSet 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': 'A CPA Ad Set optimized for App Events', 'campaign_id': '<adCampaignAppInstallsID>', 'daily_budget': '300', 'start_time': '2024年08月05日T17:55:15-0700', 'end_time': '2024年08月12日T17:55:15-0700', 'billing_event': 'IMPRESSIONS', 'optimization_goal': 'OFFSITE_CONVERSIONS', 'bid_amount': '100', 'status': 'PAUSED', 'promoted_object': {'application_id':'<appID>','object_store_url':'<appLink>','custom_event_type':'PURCHASE'}, 'targeting': {'facebook_positions':['feed'],'geo_locations':{'countries':['US']},'user_os':['iOS']}, } print AdAccount(id).create_ad_set( 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).createAdSet() .setName(\"A CPA Ad Set optimized for App Events\") .setCampaignId(\"<adCampaignAppInstallsID>\") .setDailyBudget(300L) .setStartTime(\"2024年08月05日T17:55:15-0700\") .setEndTime(\"2024年08月12日T17:55:15-0700\") .setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS) .setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_OFFSITE_CONVERSIONS) .setBidAmount(100L) .setStatus(AdSet.EnumStatus.VALUE_PAUSED) .setPromotedObject(\"{\\"application_id\\":\\"<appID>\\",\\"object_store_url\\":\\"<appLink>\\",\\"custom_event_type\\":\\"PURCHASE\\"}\") .setTargeting( new Targeting() .setFieldFacebookPositions(Arrays.asList(\"feed\")) .setFieldGeoLocations( new TargetingGeoLocation() .setFieldCountries(Arrays.asList(\"US\")) ) .setFieldUserOs(Arrays.asList(\"iOS\")) ) .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) adsets = ad_account.adsets.create({ name: 'A CPA Ad Set optimized for App Events', campaign_id: '<adCampaignAppInstallsID>', daily_budget: '300', start_time: '2024年08月05日T17:55:15-0700', end_time: '2024年08月12日T17:55:15-0700', billing_event: 'IMPRESSIONS', optimization_goal: 'OFFSITE_CONVERSIONS', bid_amount: '100', status: 'PAUSED', promoted_object: {'application_id':'<appID>','object_store_url':'<appLink>','custom_event_type':'PURCHASE'}, targeting: {'facebook_positions':['feed'],'geo_locations':{'countries':['US']},'user_os':['iOS']}, })

ステップ4.広告のクリエイティブを使用します。

ページ投稿広告の例

ページ投稿を作成するには、PAGE_ACCESS_TOKENとページAPIセッションを使用してください。

モバイルアプリインストール動画広告の作成

 curl \ -F 'name=My Video' \ -F 'message=Check out this app!' \ -F 'thumbnail=<APP_STORE_URL>' \ -F 'published=0' \ -F 'call_to_action={"type":"INSTALL_MOBILE_APP","value":{"link":"<APP_STORE_URL>"}}' \ -F 'source=@<VIDEO_PATH>' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/<PAGE_ID>/videos

ディープリンクを使用するモバイルアプリの動画広告の作成

 curl \ -F 'name=My Video' \ -F 'message=Check out this app!' \ -F 'thumbnail=<APP_STORE_URL>' \ -F 'published=0' \ -F 'call_to_action={ "type": "LEARN_MORE", "value": {"link":"<APP_STORE_URL>","app_link":"<APP_DEEP_LINK>"} }' \ -F 'source=@<VIDEO_PATH>' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/<PAGE_ID>/videos

デスクトップアプリのインストール動画広告の作成

 curl \ -F 'name=My Video' \ -F 'message=Check out this app!' \ -F 'thumbnail=<THUMBNAIL_PATH>' \ -F 'published=0' \ -F 'call_to_action={"type":"PLAY_GAME","value":{"link":"<THUMBNAIL_PATH>"}}' \ -F 'source=@<VIDEO_PATH>' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/<PAGE_ID>/videos

バーチャルグッズ画像広告用のデスクトップアプリ広告の作成

curl \ -F 'message=Buy coins now!' \ -F 'picture=<IMAGE_URL>' \ -F 'link=<LINK>' \ -F 'published=1' \ -F 'call_to_action={"type":"BUY_NOW","value":{"link":"<LINK>","product_link":"<PRODUCT_LINK>"}}' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/<PAGE_ID>/feed

バーチャルグッズ動画広告用のデスクトップアプリ広告の作成

 curl \ -F 'name=My Video' \ -F 'message=Buy coins now!' \ -F 'thumbnail=<THUMBNAIL_PATH>' \ -F 'published=0' \ -F 'call_to_action={ "type": "BUY_NOW", "value": {"link":"<THUMBNAIL_PATH>","product_link":"<THUMBNAIL_PATH>"} }' \ -F 'source=@<VIDEO_PATH>' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/<PAGE_ID>/videos

認知度アップを目的としたアプリ広告の作成

認知度アップの目的でユニバーサルリンク処理を設定するために、creative.template_url_specにアプリIDを含めることができます。設定しない場合、広告はユーザーをウェブサイトに誘導します。

curl \ -F 'name=Advantage+ Catalog Ads Template Creative Sample' \ -F 'template_url_spec={ "config": { "app_id": "1596400373958175" } }' \ -F 'access_token=<CCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives 

アプリのフォールバック先をウェブにするトラフィックの目的で静的広告を作成

広告セットでアプリを選択した場合、ウェブフォールバックが追加されると、object_story_specに以下の変更が適用されます。

curl -X POST \ -F 'name="Traffic app fallback web sample"' \ -F 'object_story_spec={ "page_id": "<PAGE_ID>", "template_data": { "call_to_action": { "type": "INSTALL_MOBILE_APP", "value": { "link": "https://www.example.com" "app_link": "<DEEPLINK_URL> "object_store_urls": [ <STORE_URL_OF_APP> ] } }, "message": "Test {{product.name | titleize}}", "link": "https://www.example.com"", "name": "Headline {{product.price}}", "description": "Description {{product.description}}" } }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives

フォールバック先をストアにする必要がある場合は、linkフィールドにストアのURLを指定します。フォールバック先をウェブサイトにする必要がある場合は、object_store_urlsフィールドにアプリのアプリストアURLを値として1つだけ含むリストを指定し、linkフィールドにウェブサイトフォールバックURLを指定します。

モバイルアプリインストール用のAdvantage+ カタログ広告

Advantage+ カタログ広告により、モバイルアプリのインストールを促進できます。これにより、利用者の行動に基づいて、モバイルインストール広告で利用者をリターゲットできます。

ステップ1.商品カタログのキャンペーンを作成します。

curl -X POST \ -F 'name="App Installs Campaign with Dynamic Product Ads"' \ -F 'objective="OUTCOME_APP_PROMOTION"' \ -F 'status="PAUSED"' \ -F 'special_ad_categories=[]' \ -F 'is_adset_budget_sharing_enabled=0' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/campaigns
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const Campaign = bizSdk.Campaign; 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' : 'App Installs Campaign with Dynamic Product Ads', 'objective' : 'OUTCOME_APP_PROMOTION', 'status' : 'PAUSED', 'special_ad_categories' : [], }; const campaigns = (new AdAccount(id)).createCampaign( fields, params ); logApiCallResult('campaigns api call complete.', campaigns);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\Campaign; 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' => 'App Installs Campaign with Dynamic Product Ads', 'objective' => 'OUTCOME_APP_PROMOTION', 'status' => 'PAUSED', 'special_ad_categories' => array(), ); echo json_encode((new AdAccount($id))->createCampaign( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.campaign import Campaign 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': 'App Installs Campaign with Dynamic Product Ads', 'objective': 'OUTCOME_APP_PROMOTION', 'status': 'PAUSED', 'special_ad_categories': [], } print AdAccount(id).create_campaign( 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).createCampaign() .setName(\"App Installs Campaign with Dynamic Product Ads\") .setObjective(Campaign.EnumObjective.VALUE_OUTCOME_APP_PROMOTION) .setStatus(Campaign.EnumStatus.VALUE_PAUSED) .setParam(\"special_ad_categories\", \"[]\") .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) campaigns = ad_account.campaigns.create({ name: 'App Installs Campaign with Dynamic Product Ads', objective: 'OUTCOME_APP_PROMOTION', status: 'PAUSED', special_ad_categories: [], })

ステップ2.上記の商品カタログの下にある、特定の商品セットの広告セットを作成します。

ステップ3.テンプレートを使用してAdvantage+ カタログ広告クリエイティブを作成します。

curl -X POST \
 -F 'name="Advantage+ catalog ads template creative sample"' \
 -F 'object_story_spec={
 "page_id": "<PAGE_ID>",
 "template_data": {
 "call_to_action": {
 "type": "INSTALL_MOBILE_APP",
 "value": {
 "link": "http://www.example.com/appstoreurl"
 }
 },
 "message": "Test {{product.name | titleize}}",
 "link": "http://www.example.com/appstoreurl",
 "name": "Headline {{product.price}}",
 "description": "Description {{product.description}}"
 }
 }' \
 -F 'product_set_id="<PRODUCT_SET_ID>"' \
 -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/v24.0/act_<AD_ACCOUNT_ID>/adcreatives

ステップ4.広告で上記の広告クリエイティブを使用します。

プレイアブルHTMLファイルを広告アカウントにアップロードする

curl \
 -X POST \
 -F "name=<name>" \
 -F "source=<>" \
 -F "access_token=<access_token>" \
 "https://graph.facebook.com/<API_VERSION>/act_<account_id>/adplayables"
  • name: 名前によりこの広告アセットを同じ広告アカウントのほかのプレイアブル広告と区別します。例: {ad_name} -> {playable_asset_name}
  • source: 自分のローカルマシン上のファイルの絶対パス
  • access_token: グラフAPIエクスプローラで生成できます
  • 広告アカウント内で既存のプレイアブルアセットIDを使用することもできます。

プレイアブルHTMLファイルのメタタグ

プレイアブルHTML5ファイルには2つのメタデータタグを追加できます。これによって、Metaは広告の中のプレイアブルをアプリにアトリビューションできます。

...
<head>
 ...
 <meta name="ref-application-id" content="<YOUR_APP_ID>">
 <meta name="ref-asset-id" content="<YOUR_ASSET_ID>">
 ...
</head>
...
  • プレイアブルHTMLファイルでMetaのアプリIDとアセットIDのメタタグを指定してください。こうすることにより、Metaはアセットが広告に表示されたときに、アセットに関する正確なインサイトを提供することができます。
  • アセットIDはシステム内のこのプレイアブルエレメントを個別に識別します。

広告アカウントで広告を作成する

  • 配置をFacebookフィードに設定します。設定できるのはAudience Network動画リワードとインタースティシャルのみです。詳しくは、Metaパートナーにお問い合わせください。
  • 広告素材は動画のみで、アスペクト比は1以上
  • 予算とスケジュールの設定
  • APIでプレイアブル広告クリエイティブを作成します。
curl \
 -F 'name=Sample Creative' \
 -F 'object_story_spec={ 
 "page_id": "<PAGE_ID>", 
 "video_data": { 
 "call_to_action": {"type":"INSTALL_MOBILE_APP","value":{"application":<APP_ID>,"link":"<APP_STORE_URL>"}}, 
 "image_url": "<THUMBNAIL_URL>", 
 "link_description": "try it out", 
 "video_id": "<VIDEO_ID>" 
 } 
 }' \
 -F 'playable_asset_id=<PLAYABLE_ASSET_ID>' \
 -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives
  • APIで広告を作成します。
curl \
 -F 'name=My Ad' \
 -F 'status=ACTIVE' \
 -F 'adset_id=<AD_SET_ID>' \
 -F 'creative={"creative_id":"<CREATIVE_ID>"}' \
 -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/ads

アプリイベントの最適化

アプリ広告のアプリイベント最適化をご覧ください。

バリュー最適化について

アプリ広告のバリュー最適化をご覧ください。

AltStyle によって変換されたページ (->オリジナル) /