内容に関しては以下を参照。ここでは実際の質問と回答を書く。
生成AIに質問して比較してみた
Qiita
プロンプト
あなたはシステム会社に勤めるベテランエンジニアであり、広告に関しても豊富な知識を持っています。現在、Facebook広告をAPIを使って出稿したいと考えています。認証やアクセストークンの準備は完了しているため、まずはAPIを使用してキャンペーンを作成する方法を知りたいです。
以下の条件で、PHPコードを提供してください。
Facebook SDKを使用してキャンペーンを作成する方法。
curlを使用してREST APIでキャンペーンを作成する方法。
APIのバージョンは最新のv20.0を使用します。参考のため、公式ドキュメントのURLを以下に記載しますので、これを参照してください。
https://developers.facebook.com/docs/marketing-api/reference/ad-account/campaigns/
chatgptの回答
わかりました。それでは、FacebookのマーケティングAPIを使用してキャンペーンを作成する方法について、PHPコードの例を2つ提供します。1つはFacebook SDKを使用する方法、もう1つはcurlを用いたREST APIの方法です。
1. Facebook SDKを使用してキャンペーンを作成する方法
PHP用のFacebook SDKを利用する方法です。事前にFacebook SDK for PHPをインストールしておく必要があります。以下のコード例では、Composerを使用してSDKをインストールする方法を記載しています。
bash
composer require facebook/graph-sdk
次に、以下のPHPコードでキャンペーンを作成します。
PHP
<?php
require_once 'vendor/autoload.php';
use Facebook\Facebook;
$accessToken = 'YOUR_ACCESS_TOKEN';
$adAccountId = 'act_YOUR_AD_ACCOUNT_ID';
$fb = new Facebook([
'app_id' => 'YOUR_APP_ID',
'app_secret' => 'YOUR_APP_SECRET',
'default_graph_version' => 'v20.0',
]);
$data = [
'name' => 'My Campaign',
'objective' => 'LINK_CLICKS',
'status' => 'PAUSED',
];
try {
$response = $fb->post('/' . $adAccountId . '/campaigns', $data, $accessToken);
$graphNode = $response->getGraphNode();
echo 'Created campaign with id: ' . $graphNode['id'];
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
?>
2. curlを使用してREST APIでキャンペーンを作成する方法
次に、Pythonのcurlを用いた方法です。
PHP
<?php
$accessToken = 'YOUR_ACCESS_TOKEN';
$adAccountId = 'act_YOUR_AD_ACCOUNT_ID';
// キャンペーン作成のためのデータ
$data = [
'name' => 'My Campaign',
'objective' => 'LINK_CLICKS',
'status' => 'PAUSED',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/v20.0/' . $adAccountId . '/campaigns');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $accessToken,
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
$result = json_decode($response, true);
if (isset($result['id'])) {
echo 'Created campaign with id: ' . $result['id'];
} else {
echo 'Error in response: ' . $response;
}
}
curl_close($ch);
?>
注意点
YOUR_ACCESS_TOKEN, YOUR_APP_ID, YOUR_APP_SECRET, YOUR_AD_ACCOUNT_ID を実際の値に置き換えてください。
キャッチされないエラーが発生した場合に備えて、エラーハンドリングを適切に実装することをお勧めします。
必要に応じて、作成するキャンペーンのデータ(目標や名前など)を変更してください。
公式ドキュメントのURLは以下です: https://developers.facebook.com/docs/marketing-api/reference/ad-account/campaigns/
gemini
Facebook広告キャンペーン作成API (PHP)
Facebook SDK を使用する方法
PHP
<?php
use FacebookAds\Api;
use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;
use FacebookAds\Logger\CurlLogger;
// APIバージョンを設定
Api::init(YOUR_APP_ID, YOUR_APP_SECRET, YOUR_ACCESS_TOKEN, null, 'v20.0');
// デバッグログを有効にする場合
Api::instance()->setLogger(new CurlLogger());
// キャンペーンのパラメータを設定
$campaignData = array(
CampaignFields::NAME => 'My Campaign',
CampaignFields::OBJECTIVE => 'LINK_CLICKS',
CampaignFields::STATUS => 'PAUSED',
CampaignFields::SPECIAL_AD_CATEGORIES => [],
);
// キャンペーンを作成
try {
$campaign = new Campaign(null, YOUR_AD_ACCOUNT_ID);
$campaign->create(
$campaignData,
array(
'execution_options' => array('validate_only' => false),
)
);
echo 'Campaign ID: ' . $campaign->id . "\n";
} catch (Exception $e) {
echo 'Error: ' . $e->getMessage() . "\n";
}
cURL を使用する方法
PHP
<?php
// APIエンドポイントとバージョン
$endpoint = 'https://graph.facebook.com/v20.0/' . YOUR_AD_ACCOUNT_ID . '/campaigns';
// リクエストヘッダー
$headers = array(
'Authorization: Bearer ' . YOUR_ACCESS_TOKEN,
'Content-Type: application/json',
);
// リクエストボディ
$data = array(
'name' => 'My Campaign',
'objective' => 'LINK_CLICKS',
'status' => 'PAUSED',
'special_ad_categories' => [],
);
// cURLセッションを初期化
$ch = curl_init();
// cURLオプションを設定
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// リクエストを実行
$response = curl_exec($ch);
// エラーをチェック
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
} else {
// レスポンスをデコード
$responseData = json_decode($response, true);
echo 'Campaign ID: ' . $responseData['id'] . "\n";
}
// cURLセッションをクローズ
curl_close($ch);
注意事項:
YOUR_APP_ID、YOUR_APP_SECRET、YOUR_ACCESS_TOKEN、YOUR_AD_ACCOUNT_ID は実際の値に置き換えてください。
objective、status、special_ad_categories などのパラメータは、必要に応じて変更してください。
上記のコードは、エラー処理を簡略化しています。本番環境では、エラー処理を適切に実装してください。
最新の情報については、公式ドキュメントを参照してください。
参考資料:
Campaign - Marketing API - Facebook for Developers
claude
はい、ご要望の通り、Facebook広告APIを使用してキャンペーンを作成する2つの方法をPHPコードで提供いたします。
Facebook SDKを使用する方法:
PHP
<?php
require_once __DIR__ . '/vendor/autoload.php';
use FacebookAds\Api;
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Campaign;
$app_id = 'YOUR_APP_ID';
$app_secret = 'YOUR_APP_SECRET';
$access_token = 'YOUR_ACCESS_TOKEN';
$ad_account_id = 'act_YOUR_AD_ACCOUNT_ID';
Api::init($app_id, $app_secret, $access_token);
$account = new AdAccount($ad_account_id);
$campaign = $account->createCampaign(
[],
[
Campaign::FIELD_NAME => 'My First Campaign',
Campaign::FIELD_OBJECTIVE => Campaign::OBJECTIVE_LINK_CLICKS,
Campaign::FIELD_STATUS => Campaign::STATUS_PAUSED,
Campaign::FIELD_SPECIAL_AD_CATEGORIES => [],
]
);
echo 'Campaign ID: ' . $campaign->id;
curlを使用してREST APIでキャンペーンを作成する方法:
PHP
<?php
$access_token = 'YOUR_ACCESS_TOKEN';
$ad_account_id = 'act_YOUR_AD_ACCOUNT_ID';
$api_version = 'v20.0';
$url = "https://graph.facebook.com/{$api_version}/{$ad_account_id}/campaigns";
$data = [
'name' => 'My First Campaign',
'objective' => 'LINK_CLICKS',
'status' => 'PAUSED',
'special_ad_categories' => '[]',
'access_token' => $access_token
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if (isset($result['id'])) {
echo 'Campaign ID: ' . $result['id'];
} else {
echo 'Error: ' . print_r($result, true);
}
両方のコードにおいて、以下の点に注意してください:
YOUR_APP_ID、YOUR_APP_SECRET、YOUR_ACCESS_TOKEN、YOUR_AD_ACCOUNT_IDを実際の値に置き換えてください。
Facebook SDKを使用する方法では、Composerを使ってSDKをインストールしていることを前提としています。
APIバージョンは最新のv20.0を使用していますが、実際には使用時点での最新バージョンを確認し、適宜更新してください。
キャンペーンの目的や状態、特別な広告カテゴリーなどは、必要に応じて変更してください。
これらのコードは基本的な例を示していますが、実際の使用には追加のエラーハンドリングやバリデーションが必要になる場合があります。また、Facebook広告APIの使用には適切な権限とアクセス設定が必要です。
perplexity
Facebook広告のキャンペーンを作成するためのPHPコードを提供します。以下は、Facebook SDKを使用してキャンペーンを作成する方法と、curlを使用してREST APIでキャンペーンを作成する方法の両方を示します。
Facebook SDKを使用してキャンペーンを作成する方法
まず、Facebook SDKをインストールします。
bash
composer require facebook/graph-sdk
次に、以下のPHPコードを使用してキャンペーンを作成します。
PHP
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Facebook\Facebook;
// アプリケーションのIDとシークレットを設定
$appId = 'YOUR_APP_ID';
$appSecret = 'YOUR_APP_SECRET';
$accessToken = 'YOUR_ACCESS_TOKEN';
// Facebook SDKのインスタンスを作成
$fb = new Facebook([
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => 'v20.0',
]);
// アクセストークンを設定
$fb->setDefaultAccessToken($accessToken);
// キャンペーンを作成するためのパラメーターを設定
$campaignName = 'My Campaign';
$campaignObjective = 'CONVERSIONS';
$campaignStatus = 'ACTIVE';
// キャンペーンを作成
try {
$response = $fb->post('/act_{ad_account_id}/campaigns', [
'name' => $campaignName,
'objective' => $campaignObjective,
'status' => $campaignStatus,
]);
} catch (Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch (Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
// 作成されたキャンペーンのIDを取得
$campaignId = $response->getGraphNode()->getId();
echo "Campaign created with ID: $campaignId";
curlを使用してREST APIでキャンペーンを作成する方法
以下は、curlを使用してREST APIでキャンペーンを作成する方法です。
bash
curl -X POST \
https://graph.facebook.com/v20.0/act_{ad_account_id}/campaigns \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "My Campaign",
"objective": "CONVERSIONS",
"status": "ACTIVE"
}'
参考文献
Facebook for Developers. (n.d.). Marketing API Reference - Campaigns. Retrieved from https://developers.facebook.com/docs/marketing-api/reference/ad-account/campaigns/
Facebook. (n.d.). Facebook PHP SDK. Retrieved from https://github.com/facebookarchive/php-graph-sdk
Facebook. (n.d.). Facebook Business SDK for PHP. Retrieved from https://github.com/facebook/facebook-php-business-sdk
Fufu Iju. (2023, October 5). 【Facebook広告】マーケティングAPIのトークン発行手順・方法を画像付きで解説!. Retrieved from https://fufu-ijyu.com/meta-api-token/
Anagrams. (2021, September 14). Facebook広告のコンバージョンAPI(CAPI)とは何か?を理解する. Retrieved from https://anagrams.jp/blog/facebook-conversions-api/