این راهنما یک مرور کلی سطح بالا از نحوه استفاده از ویژگیهای Programmatic Direct از طریق API است. این راهنما نحوه ایجاد یک پیشنهاد و نحوه انجام مذاکره را شرح میدهد.
پرایمر
یک پیشنهاد برنامهریزیشده مشابه سفارش در Google Ad Manager است. پیشنهادهای برنامهریزیشده حاوی اطلاعات گستردهای در مورد معامله پیشنهادی بین شما و خریدار هستند. یک پیشنهاد، همراه با اقلام اصلی آن، نشان دهنده پیشنهاد موجودی به خریدار است.
برای اطلاعات بیشتر به مرکز راهنما مراجعه کنید.
ایجاد پیشنهاد از طریق API
برای ایجاد یک شیء Proposal ، فقط نام و خریدار برنامهنویسیشده مورد نیاز است. شناسه خریدار برنامهنویسیشده را میتوان از طریق رابط کاربری یا جدول 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);
پایتون
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(), # ... }
قبل از ارسال به خریدار برای مذاکره، باید فیلدهای اضافی تنظیم شوند. این پیشنهاد باید دارای اطلاعات تماس تبلیغکننده، فروشنده، قاچاقچی و فروشنده باشد.
جاوا
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 نشان میدهد. هر حالت با ترکیبهای مختلفی از فیلدهای زیر نمایش داده میشود:
برای اطلاعات بیشتر به مرکز راهنمایی مدیر تبلیغات مراجعه کنید.
راهنمای مذاکره
در اینجا، ما شما را در استفاده از API برای تکمیل مذاکره برای یک پیشنهاد برنامهریزیشده با یک خریدار راهنمایی خواهیم کرد. ما به حالتهای موجود در نمودار بالا اشاره خواهیم کرد.
آماده شدن برای بررسی یا پذیرش خریدار
ابتدا، شما باید یک طرح پیشنهادی برنامهریزیشده با ردیفهای پیشنهادی که میخواهید برای خریدار ارسال کنید، تهیه کنید. این state C در شکل بالا است.
درخواست بررسی یا پذیرش خریدار
زمانی که آماده شدید تا خریدار، پیشنهاد برنامهریزیشده را بررسی کند، میتوانید با استفاده از متد ProposalService.performProposalAction RequestBuyerReview یا RequestBuyerAcceptance ارسال کنید. این کار شما را به مرحله مذاکره میرساند.
مذاکره
در این مرحله، ممکن است اتفاقات مختلفی رخ دهد.
- خریدار ممکن است پیشنهاد برنامهریزیشده شما را بدون تغییر بپذیرد.
- خریدار میتواند تغییراتی را پیشنهاد دهد. در این صورت، پیشنهاد به حالت پیشنویس (
state Bدر شکل ۱) برگردانده میشود. سپس باید پیشنهاد را برای ویرایش باز کنید ، تغییرات پیشنهادی را اعمال کنید و آن را برای بررسی خریدار ارسال کنید. - همچنین میتوانید تصمیم بگیرید که حتی قبل از پاسخ خریدار، تغییراتی ایجاد کنید. میتوانید این کار را با باز کردن پیشنهاد ویرایش از
state Dدر شکل 1 انجام دهید.
این مذاکره تا زمانی که با خریدار به توافق برسید ادامه مییابد. نظرات بین شما و خریدار را میتوان با استفاده از getMarketplaceCommentsByStatement بازیابی کرد. میتوانید در state A برای خریدار نظر ارسال کنید. برای انجام این کار، باید فیلد marketplaceComment را در پیشنهاد با استفاده از updateProposals بهروزرسانی کنید. سپس این نظر هنگام درخواست پذیرش خریدار ارسال میشود.
نهایی شد
وقتی شما و خریدار هر دو پیشنهاد برنامهریزیشده را پذیرفتید، به حالت نهایی ( state F در شکل 1) میرود. سپس Ad Manager به طور خودکار از این پیشنهاد برنامهریزیشده، موارد خطی ایجاد میکند.
در بیشتر موارد، اکنون کار شما با پیشنهاد برنامهریزیشده تمام شده است؛ با این حال، دو اقدام وجود دارد که میتوانید از این حالت انجام دهید:
- شما میتوانید با ویرایش فیلدهای مربوط به ارائه پیشنهاد، پیشنهاد برنامهریزیشده را برای مذاکره مجدد دوباره باز کنید. میتوانید این کار را با باز کردن پیشنهاد برای ویرایش (در شکل 1
state E to A)، ایجاد تغییرات و سپس درخواست پذیرش خریدار انجام دهید. - شما میتوانید ویرایشهای غیرمرتبط با سرویسدهی، مانند بهروزرسانی نام پیشنهاد، و انعکاس این تغییرات در سفارش Ad Manager و موارد خط ایجاد شده از این معامله را انجام دهید. این کار را با ویرایش
state Eدر شکل 1 و سپس انجام عملUpdateOrderWithSellerDataانجام میدهید.