آلية

يقدّم هذا الدليل نظرة عامة عالية المستوى حول كيفية استخدام التعامل الآلي المباشر والميزات عبر واجهة برمجة التطبيقات. يشرح كيفية إنشاء اقتراح وكيفية تنفيذه التفاوض.

Primer

يشبه الاقتراح الآلي طلبًا في "مدير إعلانات Google". العروض الآلية سيحتوي على معلومات عامة حول معاملة مقترحة بينك وبين المشتري. يمثل العرض، مع بنوده، عرضًا للمخزون المشتري.

لمزيد من المعلومات، يُرجى الاطّلاع على مركز المساعدة.

إنشاء اقتراح عبر واجهة برمجة التطبيقات

لإنشاء عنصر 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 ستكون الخطوة التالية هي إضافة عناصر عرض أسفل عناصر إنشاء اقتراح.

حالات العرض الآلي

يوضح الشكل التالي اقتراحًا آليًا في نقاط مختلفة أثناء عملية التفاوض من وجهة نظر واجهة برمجة التطبيقات. يتم تمثيل كل ولاية مجموعات مختلفة من الحقول التالية:

لمزيد من المعلومات، يُرجى الاطّلاع على مركز مساعدة "مدير الإعلانات".

الحالات التي يمكن أن يظهر فيها العرض الآلي أثناء
           التفاعل مع Marketplace.
الشكل 1: حالات اقتراح آلي

جولة تفصيلية حول التفاوض

سنرشدك هنا إلى كيفية استخدام واجهة برمجة التطبيقات لإكمال التفاوض عرض آلي مع مشترٍ. سنشير إلى الحالات في الرسم التخطيطي أعلاه.

التحضير لمراجعة المشتري أو قبوله

تحتاج أولاً إلى صياغة مقترح آلي مع عناصر العرض التي التي تريد إرسالها إلى مشترٍ. تمثّل هذه السمة state C في الشكل أعلاه.

طلب مراجعة المشتري أو قبوله

عندما تكون مستعدًا لمطالبة المشتري بمراجعة اقتراح الإعلان الآلي، يمكنك RequestBuyerReview أو RequestBuyerAcceptance باستخدام ProposalService.performProposalAction سينقلك هذا إلى مرحلة التفاوض.

التفاوض

في هذه المرحلة، قد تحدث بعض الأمور.

  • يمكن للمشتري قبول عرض الإعلان الآلي بدون إجراء تغييرات.
  • يجوز أن يقترح المشتري تغييرات. في هذه الحالة، ستتم إعادة إرسال الاقتراح إلى حالة مسودة (state B في الشكل 1). ستحتاج بعد ذلك إلى فتح اقتراح التعديل، وإجراء التغييرات المقترحة وإعادة إرسالها ليراجعها المشتري.
  • ويمكنك أيضًا أن تقرّر إجراء تغييرات حتى قبل أن يردّ المشتري. يمكنك ويتم ذلك عن طريق فتح اقتراح التعديل من state D في الشكل 1.

وتستمر هذه التفاوض حتى تتوصّل إلى اتفاق مع المشتري. التعليقات بينك وبين المشتري باستخدام getMarketplaceCommentsByStatement. يمكنك إرسال تعليق إلى المشتري أثناء استخدام state A. للقيام بذلك، في هذه الحالة، ستحتاج إلى تحديث marketplaceComment على الاقتراح باستخدام updateProposals. سيتم بعد ذلك إرسال التعليق عندما تطلب قبول المشتري.

تم الانتهاء

عندما توافق أنت والمشتري على اقتراح الإعلان الآلي، سيتم تدخل في حالة نهائية (state F في الشكل 1). ينشئ "مدير الإعلانات" بعد ذلك عناصر تلقائيًا من هذا الاقتراح الآلي.

في معظم الحالات، تكون قد انتهيت الآن من عرض الإعلان الآلي؛ ومع ذلك، هناك هما إجراءان يمكنك تنفيذهما من هذه الحالة:

  • يمكنك إعادة فتح اقتراح الإعلان الآلي لإعادة التفاوض عن طريق تعديله ذات الصلة بعرض الإعلانات في العرض. يمكنك القيام بذلك عن طريق فتح اقتراح تعديل (state E to A في الشكل 1) وإجراء تغييرات، يطلب قبول المشتري.
  • يمكنك إجراء تعديلات متعلّقة بعدم عرض الإعلانات، مثل تعديل الاقتراح. الاسم، ويعكس هذه التغييرات في الترتيب والعناصر التي تم إنشاؤها في "مدير إعلانات Google" من هذه الصفقة. ويمكنك إجراء ذلك عن طريق تعديل من state E في الشكل 1 ثم تنفيذ إجراء UpdateOrderWithSellerData.