פרסום פרוגרמטי

מדריך זה הוא סקירה כללית ומקיפה של אופן השימוש מערכת פרוגרמטית ישירה תכונות באמצעות ה-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. כל מדינה מיוצגת על ידי שילובים שונים של השדות הבאים:

מידע נוסף זמין במרכז העזרה של 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 יוצרת פריטים באופן אוטומטי מההצעה הפרוגרמטית הזו.

ברוב המקרים סיימתם עם ההצעה הפרוגרמטית. אבל יש הן שתי פעולות שניתן לבצע מהמצב הזה:

  • יש לך אפשרות לפתוח מחדש את ההצעה הפרוגרמטית למשא ומתן מחדש על ידי עריכה שדות הקשורים להצגת מודעות בהצעה. כדי לעשות זאת, פותחים את הצעה לעריכה (state E to A באיור 1), ביצוע שינויים, ואז שמבקש את הסכמת הקונה.
  • אפשר לבצע עריכות קשורות שלא מוצגות, כמו עדכון ההצעה שמשקף את השינויים האלה בהזמנה ובפריטים שנוצרו ב-Ad Manager מהמבצע הזה. כדי לעשות זאת, עורכים את השדה state E באיור 1 ולאחר מכן מבצעים את הפעולה UpdateOrderWithSellerData.