WhatsApp 연결 광고

이 가이드에서는 마케팅 API를 사용하여 WhatsApp 연결 광고를 만들고 게시하는 방법을 설명합니다.

WhatsApp 연결 광고는 해당 광고를 클릭한 사람을 WhatsApp에서 비즈니스와의 대화로 바로 연결해 줍니다. 이러한 광고를 활용하여 대규모로 사람들에게 도달하고 우수하고 개별화된 서비스를 제공해 보세요.

WhatsApp 연결 광고는 이미지, 동영상, 슬라이드 또는 슬라이드쇼를 포함한 광고를 지원합니다. 광고에 호출 프롬프트를 포함할 수도 있습니다.

Messenger 또는 Instagram 채팅으로 사용자를 연결하는 광고를 만드는 데 관심이 있는 경우 Messenger 연결 광고 또는 Instagram 연결 광고에서 지침을 참조하세요. 사용자가 답장하는 데 사용할 가능성이 큰 랜딩 페이지를 선택하는 광고를 만들 수도 있습니다. 자세한 내용은 여러 랜딩 페이지 연결 광고를 참조하세요.

광고 만들기 개요

이 문서에서는 WhatsApp 연결 광고를 위한 통합을 설정할 때 따라야 할 단계를 간략히 설명합니다.

다음과 같은 작업을 수행해야 합니다.

  1. 광고 캠페인 만들기
  2. 광고와 광고 캠페인을 연결하는 광고 세트 만들기
  3. 게재하고자 하는 WhatsApp 광고 유형에 대해 광고 크리에이티브 만들기
  4. 광고 크리에이티브를 광고 세트와 연결하여 광고 만들기
  5. Facebook, Instagram, Messenger에 광고 게시

시작하기 전에

이 가이드에서는 다음 조건이 충족된 상태라고 가정합니다.

이 가이드에서 모든 엔드포인트를 성공적으로 호출하려면 다음 항목이 필요합니다.

  • 페이지에서 ADVERTISE 작업을 수행할 수 있는 사용자가 요청한 페이지 액세스 토큰
  • 앱 사용자에게 다음과 같은 권한을 부여해야 합니다.
    • ads_management
    • pages_manage_ads
    • pages_read_engagement
    • pages_show_list

1단계: 광고 캠페인 만들기

먼저 광고 캠페인을 만듭니다. 이를 위해서는 /act_<AD_ACCOUNT_ID>/campaigns 엔드포인트로 POST 요청을 보냅니다. 여기서 <AD_ACCOUNT_ID>는 Meta 광고 계정의 ID입니다. 요청에는 다음과 같은 항목을 포함해야 합니다.

매개변수

이름설명

name

문자열

필수 항목.
WhatsApp 연결 광고 캠페인의 이름입니다.

objective

enum

필수 항목.
캠페인의 목표입니다.
지원되는 목표는 OUTCOME_ENGAGEMENT, OUTCOME_SALESOUTCOME_TRAFFIC입니다.
참고: 통화 프롬프트가 있는 캠페인의 경우 objectiveOUTCOME_ENGAGEMENT입니다.

special_ad_categories

list<Object>

필수 항목.
WhatsApp 연결 광고 캠페인과 관련된 특별 광고 카테고리입니다. 자세한 내용은 광고 캠페인 참고 자료를 참조하세요.

status

enum

선택 사항.
유효한 옵션은 PAUSEDACTIVE입니다.
이 상태가 PAUSED일 경우 모든 활성 광고 세트와 광고는 일시 정지되고 유효 상태인 CAMPAIGN_PAUSED가 됩니다.

표준 요청

curl -X POST \
  -F 'name=Click to WhatsApp Campaign' \
  -F 'objective=OUTCOME_ENGAGEMENT' \
  -F 'status=ACTIVE' \
  -F 'special_ad_categories=[]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/campaigns

통화 캠페인 요청

curl -X POST \
  -F 'name=Click to WhatsApp Calling Campaign' \
  -F 'objective=OUTCOME_ENGAGEMENT' \
  -F 'status=PAUSED' \
  -F 'special_ad_categories=[]' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/campaigns

응답

요청에 성공하면 앱이 새로 만든 캠페인의 ID가 포함된 JSON 응답을 받게 됩니다.

{
  "id": "<AD_CAMPAIGN_ID>"
}

업데이트

/<AD_CAMPAIGN_ID>POST 요청을 보내서 캠페인을 업데이트할 수 있습니다.

읽기

WhatsApp 연결 광고 캠페인을 성공적으로 만들었는지 확인하려면 /<AD_CAMPAIGN_ID>GET 요청을 보내면 됩니다. 사용 가능한 매개변수의 전체 리스트는 광고 캠페인 참고 자료를 참조하세요.

요청

curl -X GET -G \
  -d 'fields=name,status,objective' \
  -d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_CAMPAIGN_ID>

응답

{
  "name": "Click to WhatsApp Campaign",
  "status": "PAUSED",
  "objective": "OUTCOME_ENGAGEMENT",
  "id": "<AD_CAMPAIGN_ID>"
}

2단계: 광고 세트 만들기

광고 캠페인을 만들었다면 광고 세트를 만듭니다. 광고 세트를 만들려면 /act_<AD_ACCOUNT_ID>/adsets 엔드포인트로 POST 요청을 보냅니다. 여기서 <AD_ACCOUNT_ID>는 Meta 광고 계정의 ID입니다. 요청에는 다음과 같은 항목을 포함해야 합니다.

매개변수

이름설명

bid_amount

부호 없는 int32

bid_strategy가 LOWEST_COST_WITH_BID_CAP 또는 COST_CAP으로 설정된 경우 필수입니다.
optimization_goal에 기반하여 결과에 대해 지불하고자 하는 최대 금액입니다.

bid_strategy

enum

선택 사항.
특정 비즈니스 목표에 맞는 이 캠페인의 입찰 전략입니다. 자세한 내용은 광고 캠페인 참고 자료를 참조하세요.
값:LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP

billing_event

enum

필수 항목.
WhatsApp 연결 광고에 대해 IMPRESSIONS로 설정해야 합니다. 광고가 사용자에게 노출되면 Meta에서 요금을 청구합니다.

campaign_id

숫자 문자열 또는 정수

필수 항목.
이 광고 세트를 추가하고자 하는 유효한 WhatsApp 연결 광고 캠페인입니다.

daily_budget

int64

lifetime_budget이 설정되지 않은 경우 필수입니다.
계정 통화로 정의된 일일 예산입니다. 24시간을 초과하여 기간(end_timestart_time 간 차이)이 설정된 광고 세트에 대해서만 허용됩니다.
daily_budget 또는 lifetime_budget0보다 커야 합니다.

destination_type

문자열

필수 항목.
단일 랜딩 페이지 WhatsApp 연결 광고에 대해서는 WHATSAPP으로 설정합니다.

end_time

datetime

lifetime_budget이 지정된 경우 필수입니다.
daily_budget을 포함하여 광고 세트를 만들 때는 end_time=0을 지정하거나 이 필드를 비워서 종료 날짜 없이 광고 세트가 지속되도록 설정합니다.
예:2015-03-12 23:59:59-07:00 또는 2015-03-12 23:59:59 PDT. UTC UNIX 타임스탬프입니다.

lifetime_budget

int64

daily_budget이 설정되지 않은 경우 필수입니다.
계정 통화로 정의된 광고 세트의 총 예산입니다. 이를 지정하는 경우 end_time도 지정해야 합니다.
daily_budget 또는 lifetime_budget0보다 커야 합니다.

name

문자열

필수 항목.
WhatsApp 연결 광고 세트의 이름입니다.

optimization_goal

enum

필수 항목.
광고 세트의 최적화 목표입니다. 캠페인 목표에 따라 광고 세트에 다른 최적화 목표를 설정할 수도 있습니다.


OUTCOME_ENGAGEMENT: 참여 목표는 CONVERSATIONSLINK_CLICKS에 맞추어 최적화할 수 있습니다.
OUTCOME_SALES: 판매 목표는 CONVERSATIONS, OFFSITE_CONVERSIONS, LINK_CLICKS, IMPRESSIONSREACH에 맞추어 최적화할 수 있습니다.
OUTCOME_TRAFFIC: 트래픽 목표는 CONVERSATIONS, LANDING_PAGE_VIEWS, LINK_CLICKS, IMPRESSIONS, REACHPOST_ENGAGEMENT에 맞추어 최적화할 수 있습니다.

promoted_object

필수 항목.
이 광고 세트가 모든 광고에서 홍보하는 개체입니다. WhatsApp 연결 광고의 경우 promoted_object에는 다음과 같은 조건이 있습니다.

필수 항목:

  • page_id: 필수 항목. Facebook 페이지의 ID입니다.

선택 사항:

  • whatsapp_phone_number: WhatsApp 연결 광고 세트와 연결된 WhatsApp 전화번호입니다.

자세한 내용은 광고 세트, 홍보 개체를 참조하세요.

start_time

datetime

선택 사항.
광고 세트의 시작 시간입니다. 값을 제공하지 않는 경우 이 필드는 기본적으로 현재 시간으로 설정됩니다.
예:2015-03-12 23:59:59-07:00 또는 2015-03-12 23:59:59 PDT. UTC UNIX 타임스탬프입니다.

status

enum

선택 사항.
광고 세트의 상태입니다. 상위 캠페인으로 인해 유효 상태와 다를 수 있습니다. 값을 제공하지 않을 경우 이 필드는 기본적으로 ACTIVE로 설정됩니다.
값:ACTIVE, PAUSED, DELETED, ARCHIVED

targeting

타게팅 개체

필수 항목.
WhatsApp 연결 광고의 타게팅 구조입니다. 자세한 내용은 타게팅을 참조하세요.

time_start

datetime

선택 사항.
start_time을 대신해서 사용할 수 있습니다.

time_stop

datetime

lifetime_budget을 지정한 경우 필수입니다.
end_time을 대신해서 사용할 수 있습니다.

사용 가능한 매개변수의 전체 리스트를 확인하려면 광고 계정 광고 세트 참고 자료를 참조하세요.

요청

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "access_token":"<ACCESS_TOKEN>",
    "bid_amount":"<BID_AMOUNT>",
    "billing_event":"IMPRESSIONS",
    "campaign_id":"<CAMPAIGN_ID>",
    "daily_budget":"<DAILY_BUDGET>",
    "destination_type":"WHATSAPP",
    "name": "<AD_SET_NAME>",
    "optimization_goal": "IMPRESSIONS",
    "promoted_object": {
      "page_id": "<PAGE_ID>"
    },
    "status": "PAUSED",
    "start_time": "<START_TIME>",
    "targeting": { 
      "geo_locations": { "countries":["US","CA"] },
      "device_platforms": ["mobile", "desktop"]
    } 
  }' \
"https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adsets"

응답

{
  "id": "<AD_SET_ID>"
}

업데이트

/<AD_SET_ID>POST 요청을 보내서 광고 세트를 업데이트할 수 있습니다.

읽기

WhatsApp 연결 광고 세트를 성공적으로 만들었는지 확인하려면 /<AD_SET_ID>GET 요청을 보내면 됩니다. 사용 가능한 매개변수의 전체 리스트는 광고 세트 참고 자료를 참조하세요.

요청

curl -X GET -G \
  -d 'fields=name,destination_type,optimization_goal,bid_strategy,status' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v21.0/<AD_SET_ID>

응답

{
  "name": "Click to WhatsApp Campaign",
  "status": "PAUSED",
  "objective": "OUTCOME_ENGAGEMENT",
  "id": "<AD_SET_ID>"
}

3단계: 광고 크리에이티브 만들기

광고 크리에이티브를 사용하면 광고에 자산을 추가할 수 있습니다. 광고 크리에이티브를 만들려면 /act_<AD_ACCOUNT_ID>/adcreatives 엔드포인트로 POST 요청을 보냅니다. 여기서 <AD_ACCOUNT_ID>는 Meta 광고 계정의 ID입니다. 요청에는 다음과 같은 항목을 포함해야 합니다.

매개변수

이름설명

name

문자열

필수 항목.
광고 크리에이티브의 이름입니다.

object_story_spec

필수 항목.
메시지에 대한 정보를 포함하는 개체입니다. 자세한 내용은 광고 크리에이티브 개체 스토리 사양을 참조하세요.


필수 항목:

  • page_id: Facebook 페이지의 ID입니다.

선택 사항:

  • link_data: 링크 페이지 게시물 또는 슬라이드 광고의 사양입니다.
  • photo_data: 사진 페이지 게시물의 사양입니다.
  • text_data: 텍스트 페이지 게시물의 사양입니다.
  • video_data: 동영상 페이지 게시물의 사양입니다.

degrees_of_freedom_spec

선택 사항.
자세한 내용은 어드밴티지+ 크리에이티브의 기본 개선 사항을 참조하세요.

사용 가능한 매개변수의 전체 리스트는 광고 크리에이티브 참고 자료를 참조하세요.

페이지 환영 메시지 작성

고객에게 표시되는 기본 메시지는 '안녕하세요! 자세한 정보를 알려드릴까요?'입니다. object_story_spec 아래의 page_welcome_message 필드에서 광고의 인사 메시지를 맞춤 설정하여 WhatsApp 연결 광고에 더욱 맞춤화된 사용자 경험을 만들 수 있습니다.

참고: WhatsApp 메시지를 사용하여 봇 플로를 트리거할 경우, BSP 및 에이전시와 협력하여 플로가 중단되지 않도록 업데이트하시기 바랍니다.

인사 메시지를 포함한 자동 입력 메시지 추가

"page_welcome_message": {
  "type": "VISUAL_EDITOR",
  "version": 2,
  "landing_screen_type": "welcome_message",
  "media_type": "text",
  "text_format": {
    "customer_action_type": "autofill_message",
    "message": {
      "autofill_message": {
        "content": "<AUTOFILL_MESSAGE>"
      },
      "text": "<GREETING_MESSAGE>"
    }
  }
}

인사 메시지를 포함한 아이스브레이커 추가

"page_welcome_message": {
  "type": "VISUAL_EDITOR",
  "version": 2,
  "landing_screen_type": "welcome_message",
    "media_type": "text",
    "text_format": {
      "customer_action_type": "ice_breakers",
      "message": {
        "text": "<GREETING_MESSAGE>",
        "ice_breakers": [
          {
            "title": "<ICEBREAKER>"
          },
          {
            "title": "<ICEBREAKER>"
          },
          {
            "title": "<ICEBREAKER>"
          }
        ]
      }
    }
  }
}

통화 프롬프트를 포함한 메시지 추가

curl \
  -F 'object_story_spec={
      "page_id": "<PAGE_ID>"
      "link_data": {
     "image_hash":<IMAGE_HASH>
            "call_to_action": {
              	"type": "WHATSAPP_MESSAGE",
              	"value": {
                  	"app_destination": "WHATSAPP"
             	 }
          },
          "link": "https://api.whatsapp.com/send",
          "name": <AD_HEADLINE>",
          "page_welcome_message":
       "type": "VISUAL_EDITOR",
        "version": 2,
        "landing_screen_type": "ctwa_call_prompt",
        "media_type": "text",
        "text_format": {
          "message": {
            "text": "<MESSAGE>"", 
            "call_prompt_data": {
              "call_prompt_message": "<CALL_PROMPT_MESSAGE>"
            }
          }
        },
        "user_edit": false
      },
  https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives

응답

{
  "id": "<AD_CREATIVE_ID>"
}

광고 크리에이티브 만들기 예시

요청

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Sample ad creative",
        "object_story_spec": {
          "page_id": "<PAGE_ID>",
          "link_data": {
            "name": "<AD_HEADLINE>",
            "message": "<AD_PRIMARY_TEXT>",
            "description": "<AD_DESCRIPTION>",
            "image_hash": "<IMAGE_HASH>",
            "link": "https://api.whatsapp.com/send",
            "page_welcome_message": "<PAGE_WELCOME_MESSAGE>",
            "call_to_action": {
              "type": "WHATSAPP_MESSAGE",
              "value": {
                "app_destination": "WHATSAPP"
              }
            }
          }
        },
        "degrees_of_freedom_spec": {
          "creative_features_spec": {
            "standard_enhancements": {
              "enroll_status": "OPT_IN"
            }
          }
        }
      }' \
"https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/adcreatives"

응답

요청에 성공하면 앱이 새로 만든 광고 크리에이티브의 ID가 포함된 JSON 응답을 받게 됩니다.

{
  "id": "<AD_CREATIVE_ID>"
}

Instagram 콘텐츠를 사용하여 광고 크리에이티브 만들기

광고 크리에이티브에 기존 Instagram 콘텐츠를 사용할 수도 있습니다.

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
        "source_instagram_media_id": "<INSTAGRAM_MEDIA_ID>",
        "instagram_user_id": "<INSTAGRAM_USER_ID>",
        "object_id": "<PAGE_ID>",
        "call_to_action": {
          "type": "WHATSAPP_MESSAGE",
            "value": {
              "link": "https://api.whatsapp.com/send",
              "app_destination": "WHATSAPP"
            }
          }
        },
        "degrees_of_freedom_spec": {
          "creative_features_spec": {
            "standard_enhancements": {
              "enroll_status": "OPT_IN"
            }
          }
        }
      }' \
  https://graph.facebook.com/latest-api-version />/act_<AD_ACCOUNT_ID>/adcreatives

업데이트

/<AD_CREATIVE_ID>POST 요청을 보내서 광고 크리에이티브를 업데이트할 수 있습니다.

읽기

WhatsApp 연결 광고 크리에이티브를 성공적으로 만들었는지 확인하려면 /<AD_CREATIVE_ID>GET 요청을 보내면 됩니다. 사용 가능한 매개변수의 전체 리스트는 광고 크리에이티브를 참조하세요.

요청

curl -X GET -G \
  -d 'fields=name,object_story_spec{link_data{call_to_action,page_welcome_message}}' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v21.0/<AD_CREATIVE_ID>

응답

{
  "name": "Sample ad creative",
  "object_story_spec" {
    "page_welcome_message": {
      "type": "VISUAL_EDITOR",
      "version": 2,
      "landing_screen_type": "welcome_message",
      "media_type": "text",
      "text_format": {
        "customer_action_type": "autofill_message",
        "message": {
          "autofill_message": {
            "content": "Sample autofill message"
          },
        "text": "Sample greeting message"
        }
      }
    }
  },
  "id": "<AD_CREATIVE_ID>"
}

4단계: 광고 만들기

광고를 사용하면 광고 크리에이티브 정보와 광고 세트를 연결할 수 있습니다. 광고를 만들려면 /act_<AD_ACCOUNT_ID>/ads 엔드포인트로 POST 요청을 보냅니다. 여기서 <AD_ACCOUNT_ID>는 Meta 광고 계정의 ID입니다. 요청에는 다음과 같은 항목을 포함해야 합니다.

매개변수

이름설명

name

문자열

필수 항목.
광고의 이름입니다.

adset_id

숫자 문자열 또는 정수

필수 항목.
광고 세트의 ID입니다.

creative

필수 항목.
이 광고에서 사용할 광고 크리에이티브입니다. 기존 광고 크리에이티브의 creative_id를 제공하거나 모든 필수 필드를 포함하여 새 광고 크리에이티브를 만들 수 있습니다. 자세한 내용은 광고 크리에이티브를 참조하세요.

status

enum

필수 항목.
광고의 구성된 상태입니다.
값:ACTIVE, PAUSED, DELETED, ARCHIVED

요청

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Sample ad",
        "adset_id": "<AD_SET_ID>",
        "creative": {
          "creative_id": "<AD_CREATIVE_ID>"
        },
        "status": "PAUSED"
     }' \
  "https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/ads"

응답

{
  "id": "<AD_ID>"
}

업데이트

/<AD_ID>POST 요청을 보내서 광고를 업데이트할 수 있습니다.

읽기

WhatsApp 연결 광고를 성공적으로 만들었는지 확인하려면 /<AD_ID>GET 요청을 보내면 됩니다. 사용 가능한 매개변수의 전체 리스트는 광고 참고 자료를 참조하세요.

요청

curl -X GET -G \
  -d 'fields=status,adset_id,campaign_id \
  -d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<AD_ID>

응답

{
  "status": "PAUSED",
  "adset_id": "<AD_SET_ID>",
  "campaign_id": "<AD_CAMPAIGN_ID>",
  "id": "<AD_ID>"
}

5단계: 광고 게시하기

광고 관리자에 광고가 있는지 확인합니다. 변경 사항을 게시할 준비가 되면 캠페인, 캠페인 광고 세트, 광고를 선택한 후 게시 버튼을 클릭합니다.

API를 사용하여 광고를 게시할 수도 있습니다. status 매개변수를 ACTIVE로 설정하여 /<AD_ID>POST 요청을 보내면 됩니다. 여기서 <AD_ID>는 게시하고자 하는 광고입니다.

Meta에서 광고를 검토하고 상태가 PENDING_REVIEW로 변경됩니다. 광고가 승인되면 상태가 ACTIVE로 자동 업데이트되고 광고가 게재됩니다.