마케팅 API에서 생성형 AI 기능 시작하기

생성형 AI 기능에 대한 API 지원

광고주는 광고를 공개하기 전에 AI에서 생성한 크리에이티브가 포함된 광고 크리에이티브를 미리 확인할 책임이 있습니다. 미리 보기 구성 지침을 참조하세요.

Meta는 제안된 텍스트 생성, 생성된 배경 또는 확장된 이미지의 완전성, 신뢰성, 정확성과 관련하여 어떤 보증도 하지 않습니다. 마케팅 API를 사용하여 아래에서 설명한 생성형 AI 기능에 액세스하는 경우 Meta 플랫폼 약관 외에 광고 크리에이티브 생성형 AI 약관도 적용됩니다.

이 문서에서는 광고에 텍스트 생성, 이미지 확장, 배경 생성을 위한 생성형 AI 기능을 사용하는 방법을 보여줍니다.

시작하기 전에

다음 단계에 따라 Meta 생성형 AI 기능으로 광고 캠페인을 설정해야 합니다.

  1. 캠페인 만들기
  2. 광고 세트 만들기
  3. 광고 또는 독립실행형 크리에이티브 만들기
  4. 크리에이티브 미리 보기
  5. 광고 활성화

택스트 생성

AI는 제안하는 텍스트의 관련성을 높이는 데 도움을 주기 위해 원래의 기본 텍스트, 이전의 광고 또는 비즈니스 페이지에서 가져온 콘텐츠에서 영감을 얻어 여러 가지 텍스트 버전을 생성합니다. 광고에 더 많은 텍스트 옵션을 추가하면 크리에이티브를 맞춤화하고 크리에이티브 피로를 낮춰서 성과를 높이는 데 도움이 됩니다. 여기에서 이 기능에 대해 자세히 알아보세요.

1단계: 광고를 만들 때 텍스트 생성을 사용하도록 옵트인

/ads 엔드포인트를 통해 광고를 만들거나 /adcreatives 엔드포인트를 통해 독립실행형 크리에이티브를 만들 수 있습니다. 기능 옵트인은 현재의 요청에서 생성된 광고나 크리에이티브에만 적용됩니다. 둘 중 어떤 방법을 사용하든 다음과 같이 텍스트 생성 기능을 사용하도록 옵트인할 수 있습니다.

  1. object_story_specmessage 필드에 기본 텍스트를 제공합니다.
  2. text_generation을 사용하도록 옵트인합니다.

아래에서 요청 예시를 참조하세요.

/adcreatives 엔드포인트를 통한 옵트인

curl -X POST \
  -F 'name=Text Gen Creative' \
  -F 'object_story_spec={
      ...
      "message": "<PRIMARY_TEXT_HERE>",
  }' \
  -F 'degrees_of_freedom_spec={
    "creative_features_spec": {
      "text_generation": {
        "enroll_status": "OPT_IN"
      }
    }
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/act_<AD_ACCOUNT_ID>/adcreatives

또는 다음과 같이 act_<AD_ACCOUNT_ID>/ads 엔드포인트를 사용하여 광고 개체를 만들 수 있습니다.

/ads 엔드포인트를 통한 옵트인

curl \
  -F 'adset_id=<ADSET_ID>' \
  -F 'creative={
    "name": "Text Gen Adgroup",
    "object_story_spec": {
      ...
      "message": "<PRIMARY_TEXT_HERE>",
    },
    "degrees_of_freedom_spec": {
      "creative_features_spec": {
        "text_generation": {
          "enroll_status": "OPT_IN"
        }
      }
    }
  }' \
https://graph.facebook.com/v20.0/act_<AD_ACCOUNT_ID>/ads

2단계: 텍스트 생성 미리 보기

text_generation를 사용하도록 옵트인하여 광고를 만드는 경우, 이 기능은 현재의 광고에만 적용되고 생성된 기본 텍스트가 크리에이티브 사양에 삽입됩니다. /ads 엔드포인트를 통해 이 기능을 옵트인하는 경우, adgroup의 status 필드는 기본적으로 PAUSED로 설정됩니다(문서 참조). 생성된 제안 텍스트를 검토한 다음, 광고 상태를 ACTIVE로 직접 설정하여 광고가 게재되도록 할 수 있습니다.

생성된 제안 텍스트를 포함하는 크리에이티브는 크리에이티브 ID 또는 광고 ID를 통해 asset_feed_spec을 읽으면 미리 확인할 수 있습니다. 아래에서 요청 예시와 응답을 참조하세요.

먼저 1단계에서 만든 독립형 광고 크리에이티브의 asset_feed_spec을 쿼리합니다.

요청

// request from creative
curl -X GET -G \
  -d 'fields=asset_feed_spec' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/<CREATIVE_ID>
  
// request from ad
curl -X GET -G \
  -d 'fields=creative{asset_feed_spec,status}' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/<AD_ID>

응답

{
  "asset_feed_spec": {
    "bodies": [
      {
        "text": "Buy some cool LED TV at cheap price"
      },
      {
        "text": "Get your dream LED TV at an unbeatable price! Buy now and save big!"
      },
      {
        "text": "Get the best LED TV deals! 📺 Save money and upgrade your entertainment."
      },
      {
        "text": "Get an LED TV at a low cost! Cheap, high-quality options are available."
      },
      {
        "text": "Get LED TVs at affordable prices  ✨  !"
      }
    ],
    "optimization_type": "DEGREES_OF_FREEDOM"
  },
  "id": "<CREATIVE_ID>"
}

제안 텍스트를 검토하고 공개하기에 적절한 것으로 보이면 3단계로 이동하여 광고를 ACTIVE로 설정합니다. 생성된 제안 텍스트 중에 허용 불가능한 것이 있을 경우, 텍스트 생성을 옵트인하지 않고 새로운 광고 또는 크리에이티브를 만드세요.

텍스트 생성을 옵트인하지 않고 크리에이티브 만들기

curl -X POST \
  -F 'name=Text Gen Creative' \
  -F 'object_story_spec={
      ...
      "message": "<PRIMARY_TEXT_HERE>",
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/act_<AD_ACCOUNT_ID>/adcreatives

3단계: adgroup 상태를 ACTIVE로 설정

생성된 제안 텍스트를 인증하고 나면 광고의 statusACTIVE로 설정할 수 있습니다. 이 단계는 다음과 같은 두 가지 경우에 필요합니다.

  1. 광고가 /ads 엔드포인트를 통해 기능을 옵트인하는 경우.
  2. 광고가 텍스트 생성을 옵트인하고 기존 크리에이티브를 사용하여 만드는 첫 광고인 경우.

요청

curl \
  -F 'status=ACTIVE' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/<AD_ID>

이미지 확장

더 많은 노출 위치에 맞게 이미지를 자동으로 확장합니다.

1단계: 이미지 확장을 옵트인하여 광고 또는 크리에이티브 만들기

/ads 엔드포인트를 통해 광고를 만들거나 /adcreatives 엔드포인트를 통해 독립실행형 크리에이티브를 만들 수 있습니다. 두 가지 방법 중 어느 것을 사용하든 크리에이티브 사양에서 이미지 확장 기능을 사용하도록 옵트인하세요(아래 예시 참조).

요청

// creative example
curl -X POST \
  -F 'name=Image Expansion Creative' \
  -F 'degrees_of_freedom_spec={
    "creative_features_spec": {
      "image_uncrop": {
        "enroll_status": "OPT_IN"
      }
    }
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/act_<AD_ACCOUNT_ID>/adcreatives
  
// ad example
curl \
  -F 'adset_id=<ADSET_ID>' \
  -F 'creative={
    "name": "Image Expansion Adgroup",
    "object_story_spec": {
      ...
    },
    "degrees_of_freedom_spec": {
      "creative_features_spec": {
        "image_uncrop": {
          "enroll_status": "OPT_IN"
        }
      }
    }
  }' \
https://graph.facebook.com/v20.0/act_<AD_ACCOUNT_ID>/ads

2단계: 이미지 확장 미리 보기

이 기능은 INSTAGRAM_STANDARD, FACEBOOK_REELS_MOBILE, INSTAGRAM_REELS, MOBILE_FEED_STANDARD, INSTGRAM_STORY 노출 위치에 지원됩니다. 이 노출 위치에 대한 미리 보기를 확인하려면 /<AD_ID>/previews 엔드포인트로 GET 요청을 보내세요.

생성된 이미지 중에 허용 불가능한 것이 있을 경우, 이미지 확장을 옵트인하지 않고 광고 또는 크리에이티브를 다시 만드세요.

  • creative_featureimage_uncrop으로 설정합니다.
  • statuspending으로 표시되면 미리 보기를 다시 요청합니다.

참고:transformation_spec 노드가 표시되지 않는 경우, 해당 크리에이티브를 이미지 확장에 사용할 수 없다는 것을 의미합니다.

요청

INSTAGRAM_STANDARD

curl -X GET -G \
  -d 'ad_format=INSTAGRAM_STANDARD' \
  -d 'creative_feature=image_uncrop' \
  -d 'access_token=/<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/<AD_ID>/previews

FACEBOOK_REELS_MOBILE

curl -X GET -G \
  -d 'ad_format=FACEBOOK_REELS_MOBILE' \
  -d 'creative_feature=image_uncrop' \
  -d 'access_token=/<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/<AD_ID>/previews

응답

{
  "data": [
    {
      "body": "<iframe src='<PREVIEW_URL>'></iframe>",
      "transformation_spec": {
        "image_uncrop": [
          {
            "body": "<iframe src='<PREVIEW_URL>'></iframe>",
            "status": "eligible"
          }
        ]
      }
    }
  ]
}

(선택 사항) 광고를 만들지 않는 직접 미리 보기

실제로 광고를 만들지 않고 act_<AD_ACCOUNT_ID>/generatepreviews 엔드포인트를 사용하여 미리 보기를 요청할 수도 있습니다.

요청

FACEBOOK_REELS_MOBILE

curl -X GET -G \
  -d 'ad_format=FACEBOOK_REELS_MOBILE' \
  -d 'creative_feature=image_uncrop' \
  -d 'creative={
        "object_story_spec": {
        "page_id": "<PAGE_ID>",
        ...
        "link_data": {
           "image_hash": "<IMAGE_HASH>",
           "link": "<WEBSITE_LINK>"
        }
      }
  }'
  -d 'access_token=<ACCESS_TOKEN>'
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/generatepreviews

배경 생성

적격 제품 이미지에 대해 여러 가지 배경을 만들고 타겟이 반응할 가능성이 가장 큰 버전을 제공합니다. 이 배경은 원본 자산을 기반으로 생성됩니다.

1단계: 배경 생성을 옵트인하여 광고 또는 크리에이티브 만들기

현재 배경 생성은 모바일 피드에서 다이내믹 제품 광고 또는 어드밴티지+ 카탈로그 광고에만 작동합니다.

/ads 엔드포인트를 통해 광고를 만들거나 /adcreatives 엔드포인트를 통해 독립실행형 크리에이티브를 만들 수 있습니다. 두 가지 방법 중 어느 것을 사용하든 크리에이티브 사양에서 배경 생성을 사용하도록 옵트인하세요(아래 예시 참조).

요청

// creative example
  curl -X POST \
  -F 'name=Background Gen Creative' \
  -F 'degrees_of_freedom_spec={
    "creative_features_spec": {
      "image_background_gen": {
        "enroll_status": "OPT_IN"
      }
    }
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>'
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v20.0/act_<AD_ACCOUNT_ID>/adcreatives

// ad example
curl \
  -F 'adset_id=<ADSET_ID>' \
  -F 'creative={
    "name": "Background Gen Adgroup",
    "object_story_spec": {
      ...
    },
    "product_set_id": "<PRODUCT_SET_ID>",
    "degrees_of_freedom_spec": {
      "creative_features_spec": {
        "image_background_gen": {
          "enroll_status": "OPT_IN"
        }
      }
    }
  }' \
https://graph.facebook.com/v20.0/act_<AD_ACCOUNT_ID>/ads

2단계: 배경 생성 미리 보기

이 기능을 옵트인하면 적격 제품 이미지에 대해 여러 가지 배경을 만들고 타겟이 반응할 가능성이 가장 큰 버전을 제공합니다. 기능 옵트인은 현재 요청에서 생성한 광고에만 적용됩니다. 이 배경은 원본 자산을 기반으로 적격 제품 이미지에 다양한 색이나 패턴을 사용하여 만듭니다. 카탈로그 자격 요건에 따라 생성된 배경의 정적 또는 라이브 미리 보기를 확인할 수 있습니다.

생성된 배경 중에 허용 불가능한 것이 있을 경우, 배경 생성을 옵트인하지 않고 광고 또는 크리에이티브를 다시 만드세요.

  • 현재 미리 보기는 MOBILE_FEED_STANDARD 노출 위치만 지원합니다.
  • creative_featureimage_background_gen으로 설정하세요.
  • 카탈로그 제품의 라이브 미리 보기가 준비되지 않은 경우, statusPENDING으로 설정되어 정적 미리 보기가 표시됩니다.

요청

MOBILE_FEED_STANDARD

curl -X GET -G \
  -d 'ad_format=MOBILE_FEED_STANDARD' \
  -d 'creative_feature=image_background_gen' \
  -d 'access_token=/<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/<AD_ID>/previews

응답

{
  "data": [
    {
      "body": "<iframe src='<PREVIEW_URL>'></iframe>",
      "transformation_spec": {
        "image_background_gen": [
          {
            "body": "<iframe src='<PREVIEW_URL>'></iframe>",
            "status": "eligible" // or one of "pending", "ineligible"
          }
        ]
      }
    }
  ]
}

(선택 사항) 광고를 만들지 않는 직접 미리 보기

실제로 광고를 만들지 않고 /<AD_CREATIVE_ID>/previews 엔드포인트를 사용하여 크리에이티브 미리 보기를 요청할 수도 있습니다.

요청

MOBILE_FEED_STANDARD

curl -X GET -G \
  -d 'ad_format=MOBILE_FEED_STANDARD' \
  -d 'creative_feature=image_background_gen' \
  -d 'access_token=<ACCESS_TOKEN>'
  https://graph.facebook.com/v19.0/<AD_CREATIVE_ID>/generatepreviews

응답

{
  "data": [
    {
      "body": "<iframe src='<PREVIEW_URL>'></iframe>",
      "transformation_spec": {
        "image_background_gen": [
          {
            "body": "<iframe src='<PREVIEW_URL>'></iframe>",
            "status": "eligible" // or one of "pending", "ineligible"
          }
        ]
      }
    }
  ]
}