מדריך זה הוא סקירה כללית ומקיפה של אופן השימוש מערכת פרוגרמטית ישירה תכונות באמצעות ה-API. נסביר איך ליצור הצעה ואיך לבצע אותה משא ומתן.
Primer
הצעה פרוגרמטית דומה להזמנה ב-Google Ad Manager. הצעות פרוגרמטיות מכילים מידע רחב על עסקה מוצעת ביניכם לבין קונה. הצעה, יחד עם הפריטים שלה, מייצגת הצעה של מלאי עבור לקונה.
מידע נוסף מופיע במרכז העזרה.
יצירת הצעה באמצעות ממשק ה-API
כדי ליצור אובייקט Proposal
, רק השם והקונה הפרוגרמטי הם
נדרש. אפשר לקבל את מזהה הקונה הפרוגרמטי דרך ממשק המשתמש או
Programmatic_Buyer
טבלת PQL.
Java
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(), # ... }
לפני השליחה לקונה לצורך משא ומתן, יש להגדיר שדות נוספים. ההצעה חייבת לכלול אנשי קשר של מפרסם, איש מכירות, מנהל טראפיק ומוכר.
Java
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 לאובייקטים, השלב הבא הוא להוסיף פריטי הצעה מתחת הצעה שנוצרה.
מצבים של הצעה פרוגרמטית
האיור הבא מתאר הצעה פרוגרמטית בנקודות שונות במהלך תהליך המשא ומתן מנקודת מבט של API. כל מדינה מיוצגת על ידי שילובים שונים של השדות הבאים:
- ProposalMarketplaceInfo.hasLocalVersionEdits
- ProposalMarketplaceInfo.negotiationStatus
- Proposal.status
מידע נוסף זמין במרכז העזרה של Ad Manager.
הדרכה מפורטת במשא ומתן
במאמר זה נסביר כיצד להשתמש ב-API כדי לסיים משא ומתן על הצעה פרוגרמטית עם קונה. אנחנו נתייחס למדינות שבתרשים למעלה.
הכנה לבדיקה או לאישור של קונה
תחילה עליך לנסח הצעה פרוגרמטית עם פריטי הצעה
שרוצים לשלוח לקונה. הערך הזה הוא state C
באיור שלמעלה.
בקשת בדיקה או אישור של קונה
כאשר תהיה מוכן שהקונה יבדוק את ההצעה הפרוגרמטית, אתה יכול
RequestBuyerReview
או RequestBuyerAcceptance
באמצעות
שיטת ProposalService.performProposalAction.
כך תועברו לשלב המשא ומתן.
משא ומתן
בשלב הזה יכולים לקרות כמה דברים.
- הקונה עשוי לקבל את ההצעה הפרוגרמטית ללא שינויים.
- הקונה עשוי להציע שינויים. במקרה זה, ההצעה תישלח בחזרה
למצב טיוטה (
state B
באיור 1). לאחר מכן תצטרכו לפתוח את ההצעה לעריכה, לבצע את השינויים המוצעים ולשלוח אותם בחזרה לבדיקה של הקונה. - אפשר גם להחליט לבצע שינויים עוד לפני שהקונה משיב. אפשר
לעשות זאת על ידי פתיחת ההצעה לעריכה מ-
state D
באיור 1.
משא ומתן זה יימשך עד שיגיע להסכם עם הקונה. הערות
לקבל מידע בינך לבין הקונה באמצעות
getMarketplaceCommentsByStatement.
אפשר לשלוח תגובה לקונה במהלך הביקור בstate A
. לבצע
לכן צריך לעדכן את
marketplaceComment
בשדה של ההצעה באמצעות
updateProposals.
התגובה תישלח כשתבקשו לאשר את הקונה.
סופי
אם גם אתם וגם הקונה אישרתם את ההצעה הפרוגרמטית,
עובר למצב סופי (state F
באיור 1).
לאחר מכן מערכת Ad Manager יוצרת פריטים באופן אוטומטי מההצעה הפרוגרמטית הזו.
ברוב המקרים סיימתם עם ההצעה הפרוגרמטית. אבל יש הן שתי פעולות שניתן לבצע מהמצב הזה:
- יש לך אפשרות לפתוח מחדש את ההצעה הפרוגרמטית למשא ומתן מחדש על ידי עריכה
שדות הקשורים להצגת מודעות בהצעה. כדי לעשות זאת, פותחים את
הצעה לעריכה (
state E to A
באיור 1), ביצוע שינויים, ואז שמבקש את הסכמת הקונה. - אפשר לבצע עריכות קשורות שלא מוצגות, כמו עדכון ההצעה
שמשקף את השינויים האלה בהזמנה ובפריטים שנוצרו ב-Ad Manager
מהמבצע הזה. כדי לעשות זאת, עורכים את השדה
state E
באיור 1 ולאחר מכן מבצעים את הפעולהUpdateOrderWithSellerData
.