프로그래매틱

이 가이드에서는 프로그래매틱 다이렉트 기능을 제공합니다 제안서를 만드는 방법과 이를 수행하는 방법을 설명합니다. 협상입니다.

Primer

프로그래매틱 제안서는 Google Ad Manager의 주문과 유사합니다. 프로그래매틱 제안서 게시자와 구매자 간의 제안된 거래에 대한 광범위한 정보를 포함합니다. 제안서는 광고 항목과 함께 인벤토리를 있습니다.

자세한 내용은 고객센터를 참고하세요.

API를 통한 제안서 생성

Proposal 객체를 만들려면 이름과 프로그래매틱 구매자만 있으면 됩니다. 필요합니다. 프로그래매틱 구매자 ID는 UI 또는 Programmatic_Buyer PQL 테이블

자바


Proposal proposal = new Proposal();

// Setting required Marketplace information.
ProposalMarketplaceInfo proposalMarketplaceInfo = new ProposalMarketplaceInfo();
proposalMarketplaceInfo.setBuyerAccountId(programmaticBuyerId);

// Set common required fields for a proposal.
proposal.setName("Proposal #" + new Random().nextInt(Integer.MAX_VALUE));
proposal.setPrimaryTraffickerId(primaryTraffickerId);
proposal.setMarketplaceInfo(proposalMarketplaceInfo);
    

Python


proposal = {
    # Setting required Marketplace information.
    'isProgrammatic': 'true',
    'marketplaceInfo': {
        'buyerAccountId': programmatic_buyer_id,
    },
    # Set common required fields for proposals.
    'name': 'Proposal #%s' % uuid.uuid4(),
    # ...
}
    

PHP


$proposal = new Proposal();
$proposal->setName('Proposal #' . uniqid());

// Set the required Marketplace information.
$proposalMarketplaceInfo = new ProposalMarketplaceInfo();
$proposalMarketplaceInfo->setBuyerAccountId($buyerId);
$proposal->setMarketplaceInfo($proposalMarketplaceInfo);
    

C#


// Create a proposal with the minimum required fields.
Proposal proposal = new Proposal()
{
    name = "Programmatic proposal #" + new Random().Next(int.MaxValue),
    // Set required Marketplace information
    marketplaceInfo = new ProposalMarketplaceInfo()
    {
        buyerAccountId = programmaticBuyerId
    }
};
    

Ruby


# Create proposal configuration object.
proposal = {
  :marketplace_info => {
    :buyer_account_id => buyer_id
  },
  :name => 'Proposal %s' % SecureRandom.uuid(),
  # ...
}
    

협상을 위해 구매자에게 전송하기 전에 추가 입력란을 설정해야 합니다. 제안서에는 광고주, 영업 담당자, 애드 마스터, 판매자 연락처가 포함되어 있어야 합니다.

자바


SalespersonSplit primarySalesperson = new SalespersonSplit();
primarySalesperson.setUserId(primarySalespersonId);
proposal.setPrimarySalesperson(primarySalesperson);
    

Python


'primarySalesperson': {
    'userId': primary_salesperson_id,
},
'primaryTraffickerId': primary_trafficker_id,
'probabilityOfClose': '100000',
    

PHP


// Create salesperson splits for the primary salesperson.
$primarySalesperson = new SalespersonSplit();
$primarySalesperson->setUserId($primarySalespersonId);
$proposal->setPrimarySalesperson($primarySalesperson);

// Set the primary trafficker on the proposal for when it becomes an
// order.
$proposal->setPrimaryTraffickerId($primaryTraffickerId);

$advertiser = new ProposalCompanyAssociation();
$advertiser->setType(
    ProposalCompanyAssociationType::ADVERTISER
);
$advertiser->setCompanyId($advertiserId);
$proposal->setAdvertiser($advertiser);
    

C#


// Set fields that are required before sending the proposal to the buyer.
proposal.primaryTraffickerId = primaryTraffickerId;
proposal.sellerContactIds = new long[] { primarySalespersonId };
proposal.primarySalesperson = new SalespersonSplit()
{
    userId = primarySalespersonId,
};
proposal.advertiser = new ProposalCompanyAssociation()
{
    type = ProposalCompanyAssociationType.ADVERTISER,
    companyId = advertiserId
};
    

Ruby


:primary_salesperson => {
  :user_id => primary_salesperson_id
},
:primary_trafficker_id => primary_trafficker_id
    

제안서는 일반적으로 ProposalLineItem 객체가 있는 경우, 다음 단계는 새로 생성한 제안서 광고 항목 아래에 제안서 광고 항목을 생성할 수 있습니다.

프로그래매틱 제안서 상태

다음 그림은 전체 기간의 다양한 시점에서의 프로그래매틱 제안서를 협상 프로세스를 살펴보겠습니다 각 상태는 다음과 같은 필드의 다양한 조합을 제공합니다.

자세한 내용은 Ad Manager 고객센터를 참조하세요.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder">프로그래매틱 제안서는
           살펴보겠습니다</ph> <ph type="x-smartling-placeholder">
</ph> 그림 1: 프로그래매틱 제안서 상태

협상 둘러보기

여기서는 API를 사용하여 특정 거래에 대한 협상을 완료하는 '구매자'와 할 수 있습니다 다이어그램의 상태를 참조하여 참조하세요.

구매자 검토 또는 승인 준비

먼저, 프로그래매틱 제안서에서 결정해야 합니다 위 그림에서 state C입니다.

구매자 검토 또는 승인 요청

구매자가 프로그래매틱 제안서를 검토하게 할 준비가 되면 RequestBuyerReview 또는 RequestBuyerAcceptance: ProposalService.performProposalAction 메서드를 사용할 수 있습니다. 그러면 협상 단계로 들어가게 됩니다.

협상

이 단계에서는 다양한 상황이 발생할 수 있습니다.

  • 구매자는 변경사항 없이 프로그래매틱 제안서를 수락할 수 있습니다.
  • 구매자가 변경사항을 제안할 수 있습니다. 이 경우 제안서가 초안 상태로 변경합니다 (그림 1의 state B). 그런 다음 수정하기 위해 제안서를 열고 구매자가 검토할 수 있도록 다시 전송합니다.
  • 구매자가 답장하기 전에도 변경할 수 있습니다. 다음을 수행할 수 있습니다. 그림 1의 state D에서 수정할 제안서를 열어 실행합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

이 협상은 구매자와 합의에 도달할 때까지 계속됩니다. 의견 판매자와 구매자 사이의 거래 정보는 getMarketplaceCommentsByStatement. state A에서 구매자에게 의견을 보낼 수 있습니다. 해야 할 일 이렇게 하려면 marketplaceComment 필드를 사용하여 updateProposals. 그러면 구매자 승인을 요청하면 의견이 전송됩니다.

확정됨

게시자와 구매자 모두 프로그래매틱 제안서를 수락한 경우 완료된 상태 (그림 1의 state F)가 됩니다. 그러면 Ad Manager가 이 프로그래매틱 제안서에서 자동으로 광고 항목을 생성합니다.

이제 대부분의 경우 프로그래매틱 제안서 작성이 완료됩니다. 하지만 이 상태에서 수행할 수 있는 작업은 두 가지입니다.

  • 재협상을 위해 프로그래매틱 제안서를 다시 열어 게재 관련 필드를 확인할 수 있습니다. 이렇게 하려면 수정 제안 (그림 1의 state E to A), 변경, 구매자 수락을 요청합니다.
  • 제안서의 생성된 Ad Manager 주문 및 광고 항목에 이러한 변경사항이 반영되며, 확인할 수 있습니다. 그림 1의 state E에서 편집한 후 UpdateOrderWithSellerData 작업을 실행하면 됩니다.