各生成AIにFacebook広告の広告グループをAPIで作ってもらう

プロンプト

facebook広告APIを使って、広告グループを作成したい。SDKとREST APIの場合のコードを書いて。PHPがいい。

会話のようなプロンプトを送信

回答:SDK部分のコード

chatgpt

<?php

require_once 'FacebookAds/autoload.php';

use FacebookAds\Object\AdAccount;
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Values\BillingEvents;
use FacebookAds\Object\Values\OptimizationGoals;
use FacebookAds\Object\Fields\TargetingSpecsField;
use FacebookAds\Object\Values\TargetingSpecsFieldValues;
use FacebookAds\Object\Values\AdObjectType;
use FacebookAds\Object\AdCreative;
use FacebookAds\Object\AdImage;

$appID = 'your_app_id';
$appSecret = 'your_app_secret';
$accessToken = 'your_access_token';
$adAccountID = 'your_ad_account_id';

FacebookAdsConfig::setAppId($appID);
FacebookAdsConfig::setAppSecret($appSecret);
FacebookAdsConfig::setAccessToken($accessToken);

$adAccount = new AdAccount($adAccountID);

$params = array(
  AdSetFields::NAME => 'My Ad Set',
  AdSetFields::OPTIMIZATION_GOAL => OptimizationGoals::LINK_CLICKS,
  AdSetFields::BILLING_EVENT => BillingEvents::IMPRESSIONS,
  AdSetFields::BID_AMOUNT => 100,
  AdSetFields::CAMPAIGN_ID => 'your_campaign_id',
  AdSetFields::TARGETING => array(
    TargetingSpecsField::GEO_LOCATIONS => array('countries' => array('US')),
    TargetingSpecsField::AGE_MIN => 18,
    TargetingSpecsField::AGE_MAX => 65,
  ),
);

$adSet = $adAccount->createAdSet($params);

echo 'Ad Set ID: ' . $adSet->id . PHP_EOL;

?>

変数部分を直す必要がある。

claude

<?php
require_once __DIR__ . '/vendor/autoload.php';

use FacebookAds\Api;
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\AdSet;

$app_id = 'YOUR_APP_ID';
$app_secret = 'YOUR_APP_SECRET';
$access_token = 'YOUR_ACCESS_TOKEN';
$ad_account_id = 'YOUR_AD_ACCOUNT_ID';

Api::init($app_id, $app_secret, $access_token);

$account = new AdAccount($ad_account_id);

$adset = $account->createAdSet(
    [],
    [
        AdSet::FIELD_NAME => 'My First AdSet',
        AdSet::FIELD_LIFETIME_BUDGET => '20000',
        AdSet::FIELD_START_TIME => (new \DateTime('+1 day'))->format(\DateTime::ISO8601),
        AdSet::FIELD_END_TIME => (new \DateTime('+10 day'))->format(\DateTime::ISO8601),
        AdSet::FIELD_CAMPAIGN_ID => 'CAMPAIGN_ID',
        AdSet::FIELD_BID_AMOUNT => '500',
        AdSet::FIELD_BILLING_EVENT => 'IMPRESSIONS',
        AdSet::FIELD_OPTIMIZATION_GOAL => 'REACH',
        AdSet::FIELD_TARGETING => [
            'geo_locations' => [
                'countries' => ['US'],
            ],
        ],
        AdSet::FIELD_STATUS => AdSet::STATUS_PAUSED,
    ]
);

echo 'AdSet ID: ' . $adset->id;

これも変数部分を直す必要がある。

perplexity

<?php
use FacebookAds\Api;
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdAccountFields;
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;

// アプリケーションIDとアプリケーションシークレットを設定
$app_id = 'YOUR_APP_ID';
$app_secret = 'YOUR_APP_SECRET';

// アクセストークンを取得
$access_token = 'YOUR_ACCESS_TOKEN';

// SDKを初期化
Api::init($app_id, $app_secret, $access_token);

// 広告アカウントを取得
$account = new AdAccount('YOUR_AD_ACCOUNT_ID');

// 広告グループを作成
$ad_set = new AdSet();
$ad_set->{AdSetFields::NAME} = 'My Ad Set';
$ad_set->{AdSetFields::CAMPAIGN_ID} = 'YOUR_CAMPAIGN_ID';
$ad_set->{AdSetFields::DAILY_BUDGET} = 100;
$ad_set->{AdSetFields::BID_AMOUNT} = 10;
$ad_set->{AdSetFields::BID_INFO} = [
    'ACTIONS' => [
        'action_type' => 'CONVERSIONS',
        'bid_amount' => 10,
    ],
];
$ad_set->create();

// 広告グループのIDを取得
$ad_set_id = $ad_set->id;

echo "広告グループID: $ad_set_id";

変数などの書き方はいいが、create()はもう推奨されていないのでエラーになる。

perplexityはネットを参照してちゃんと書いてくれると思ったが、最新の情報には疎いのか?