天秤AIを使って各生成AIの回答を比較 Facebook広告APIでキャンペーンの作成

内容に関しては以下を参照。ここでは実際の質問と回答を書く。

生成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/