แบบเป็นโปรแกรม

คู่มือนี้แสดงภาพรวมระดับสูงของวิธีใช้ การขายตรงแบบเป็นโปรแกรม ผ่าน API ซึ่งจะอธิบายวิธีสร้างข้อเสนอและวิธีดำเนินการ การต่อรอง

Primer

ข้อเสนอแบบเป็นโปรแกรมคล้ายกับคำสั่งซื้อใน Google Ad Manager ข้อเสนอแบบเป็นโปรแกรม มีข้อมูลกว้างๆ เกี่ยวกับธุรกรรมที่เสนอระหว่างคุณกับผู้ซื้อ ข้อเสนอพร้อมด้วยรายการโฆษณา เป็นการนำเสนอข้อเสนอพื้นที่โฆษณาแก่ ผู้ซื้อ

ดูข้อมูลเพิ่มเติมได้ที่ศูนย์ช่วยเหลือ

การสร้างข้อเสนอผ่าน API

หากต้องการสร้างออบเจ็กต์ Proposal เฉพาะชื่อและผู้ซื้อแบบเป็นโปรแกรมเท่านั้น ต้องระบุ สามารถดูรหัสผู้ซื้อแบบเป็นโปรแกรมผ่านทาง UI หรือ Programmatic_Buyer ตาราง PQL

JavaPythonPHPC#Ruby

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);
   

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

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

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

// 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
   
}
};
   

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

ก่อนที่จะส่งไปยังผู้ซื้อเพื่อการเจรจา คุณจะต้องตั้งค่าฟิลด์เพิ่มเติม ข้อเสนอต้องมีผู้ลงโฆษณา พนักงานขาย ผู้ดูแลการแสดงโฆษณา และรายชื่อติดต่อของผู้ขาย

JavaPythonPHPC#Ruby

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

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

// 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);
   

// 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
};
   

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

เนื่องจากโดยทั่วไปข้อเสนอจะประกอบด้วย ProposalLineItem ขั้นตอนต่อไปคือการเพิ่มรายการโฆษณาข้อเสนอภายใต้ ที่สร้างข้อเสนอ

สถานะของข้อเสนอแบบเป็นโปรแกรม

รูปต่อไปนี้แสดงข้อเสนอแบบเป็นโปรแกรมในจุดต่างๆ ระหว่าง ของกระบวนการเจรจาต่อรองจาก API แต่ละรัฐจะแสดงด้วย ชุดค่าผสมต่างๆ ในฟิลด์ต่อไปนี้:

ดูข้อมูลเพิ่มเติมได้ที่ศูนย์ช่วยเหลือของ Ad Manager

รัฐที่ข้อเสนอแบบเป็นโปรแกรมสามารถอยู่ได้ในช่วง
           การโต้ตอบกับมาร์เก็ตเพลส
รูปที่ 1: สถานะของข้อเสนอแบบเป็นโปรแกรม

คำแนะนำแบบทีละขั้นเกี่ยวกับการเจรจาต่อรอง

เราจะแนะนำคุณตลอดขั้นตอนการใช้ API เพื่อเจรจา แบบเป็นโปรแกรมกับผู้ซื้อ เราจะอ้างอิงสถานะในแผนภาพ ที่ด้านบน

การเตรียมความพร้อมสำหรับการตรวจสอบหรือการยอมรับจากผู้ซื้อ

ก่อนอื่น คุณต้องร่างข้อเสนอแบบเป็นโปรแกรมพร้อมด้วยรายการโฆษณาข้อเสนอที่ ที่ต้องการส่งให้ผู้ซื้อ นี่คือ state C ในรูปด้านบน

การขอให้ผู้ซื้อตรวจสอบหรือยอมรับ

เมื่อพร้อมให้ผู้ซื้อตรวจสอบข้อเสนอแบบเป็นโปรแกรมแล้ว คุณสามารถทำสิ่งต่อไปนี้ RequestBuyerReview หรือ RequestBuyerAcceptance โดยใช้ เมธอด ProposalService.performProposalAction ซึ่งจะนำคุณเข้าสู่ขั้นตอนการเจรจาต่อรอง

การเจรจาต่อรอง

ในระยะนี้ อาจมีหลายสิ่งเกิดขึ้น

  • ผู้ซื้ออาจยอมรับข้อเสนอแบบเป็นโปรแกรมของคุณโดยไม่มีการเปลี่ยนแปลง
  • ผู้ซื้ออาจเสนอการเปลี่ยนแปลง ในกรณีนี้ ระบบจะส่งข้อเสนอกลับไป เป็นสถานะร่าง (state B ในรูปที่ 1) จากนั้นคุณจะต้องทำดังนี้ เปิดข้อเสนอเพื่อแก้ไข ทำการเปลี่ยนแปลงที่เสนอ และส่งกลับมาให้ผู้ซื้อตรวจสอบ
  • นอกจากนี้คุณยังตัดสินใจที่จะทำการเปลี่ยนแปลงก่อนที่ผู้ซื้อจะตอบกลับได้ คุณสามารถ ซึ่งทำได้โดยการเปิดข้อเสนอให้แก้ไขจาก state D ในรูปที่ 1

การเจรจาต่อรองนี้จะดำเนินต่อไปจนกว่าคุณจะบรรลุข้อตกลงกับผู้ซื้อ ข้อคิดเห็น สามารถดึงเงินคืนระหว่างคุณกับผู้ซื้อได้โดยใช้ getMarketplaceCommentsByStatement. คุณส่งความคิดเห็นถึงผู้ซื้อได้ขณะอยู่ในstate A สิ่งต้องทำ คุณจะต้องอัปเดต marketplaceComment ในข้อเสนอโดยใช้ updateProposals. ความคิดเห็นจะถูกส่งเมื่อคุณขอการยอมรับจากผู้ซื้อ

สรุปผลแล้ว

เมื่อทั้งคุณและผู้ซื้อยอมรับข้อเสนอแบบเป็นโปรแกรมแล้ว จะเข้าสู่สถานะที่เสร็จสมบูรณ์ (state F ในรูปที่ 1) จากนั้น Ad Manager จะสร้างรายการโฆษณาจากข้อเสนอแบบเป็นโปรแกรมนี้โดยอัตโนมัติ

ในกรณีส่วนใหญ่ ตอนนี้คุณดำเนินการกับข้อเสนอแบบเป็นโปรแกรมเสร็จแล้ว แต่มี เป็นการดำเนินการ 2 อย่างที่คุณสามารถทำได้จากสถานะนี้

  • คุณเปิดข้อเสนอแบบเป็นโปรแกรมอีกครั้งเพื่อเจรจาต่อรองใหม่ได้โดยแก้ไข ช่องที่เกี่ยวข้องกับการแสดงโฆษณาในข้อเสนอ คุณสามารถทำได้โดยเปิด เสนอให้แก้ไข (state E to A ในรูปที่ 1) แล้วทำการเปลี่ยนแปลง จากนั้น เพื่อขอการยอมรับจากผู้ซื้อ
  • คุณสามารถทำการแก้ไขที่เกี่ยวข้องซึ่งไม่เกี่ยวข้องกับการแสดงผลได้ เช่น อัปเดตข้อเสนอ และแสดงการเปลี่ยนแปลงเหล่านี้ในคำสั่งซื้อและรายการโฆษณาของ Ad Manager ที่สร้างขึ้น จากดีลนี้ ซึ่งทำได้โดยการแก้ไข จาก state E ในรูปที่ 1 แล้วดำเนินการ UpdateOrderWithSellerData