قالب آگهی خریدار SDK

آگهی‌های SDK خریدار از خلاقیت‌های ارائه‌شده توسط SDK خودتان استفاده می‌کنند.

موجودی برنامه تلفن همراه از ناشران که آداپتور مناقصه شما را در برنامه خود ادغام می‌کنند، می‌توانند پیشنهادهایی را با فرمت آگهی ارائه‌شده SDK خریدار بپذیرند. نحوه ارائه آنها بر اساس اجرای SDK شما و SDKRenderedAd است که در پاسخ پیشنهاد ارائه می کنید.

می‌توانید پیشنهادی از جمله آگهی ارائه‌شده SDK خریدار یا هر قالب آگهی دیگری که توسط Google Mobile Ads SDK پشتیبانی می‌شود، ارائه دهید، اما هر پیشنهادی که حاوی هر دو باشد فیلتر می‌شود.

الزامات

تبلیغات SDK خریدار برای خریداران تایید شده در دسترس است. این قالب به تلاش بیشتری از جانب شما و ناشر نیاز دارد. برای پیکربندی حساب خود برای تبلیغات خریدار SDK با مدیر حساب فنی خود تماس بگیرید. سپس می‌توانید یک آداپتور Bidding را پیاده‌سازی کنید که SDK شما را قادر می‌سازد با Google Mobile Ads SDK ارتباط برقرار کند. ناشر باید SDK و آداپتور شما را در برنامه های تلفن همراه خود ادغام کند.

توصیه می‌کنیم قبل از گنجاندن خلاقیت‌ها در یک پاسخ پیشنهادی، آن‌ها را برای بررسی ارسال کنید . اگر در زمان پیشنهاد نوع خلاقیت را نمی دانید، با مدیر حساب فنی خود تماس بگیرید.

اگر درخواست پیشنهادی از این قالب تبلیغ پشتیبانی می‌کند، می‌توانید با تنظیم فیلد sdk_rendered_ad در پاسخ پیشنهاد، تبلیغی را مشخص کنید که با SDK شما ارائه شود.

درخواست مناقصه

درخواست‌های پیشنهادی برای موجودی برنامه تلفن همراه شامل جزئیات مربوط به SDK و آداپتورهای موجود در برنامه ناشر است که می‌توانید برای ارائه در فیلدهای زیر استفاده کنید:

شناسه SDK

می‌توانید از درخواست پیشنهاد برای یافتن شناسه SDK که باید در پاسخ پیشنهادی با فیلد BidRequest.app.ext.installed_sdk.id ارائه کنید، استفاده کنید.

می‌توانید در مستندات مرجع InstalledSdk درباره این موضوع بیشتر بیاموزید.

نقشه برداری واحد تبلیغات

می‌توانید از درخواست پیشنهاد برای یافتن نگاشت‌های واحد تبلیغاتی که با محل پیشنهاد با فیلد BidRequest.imp.ext.ad_unit_mapping مطابقت دارند، استفاده کنید.

می‌توانید در مستندات مرجع AdUnitMapping در مورد این موضوع بیشتر بیاموزید.

سیگنال های ایمن

ناشران می توانند سیگنال های ایمن را با پیشنهاد دهندگان به اشتراک بگذارند. می توانید این موارد را در BidRequest.imp.ext.buyer_generated_request_data.data بیابید.

می‌توانید درباره نحوه نمایش سیگنال‌های ایمن در مستندات مرجع BuyerGeneratedRequestData اطلاعات بیشتری کسب کنید.

درخواست های تست

می‌توانید از فیلد BidRequest.test برای بررسی اینکه آیا درخواست پیشنهاد آزمایشی است یا خیر، استفاده کنید.

می توانید در مستندات مرجع BidRequest درباره این زمینه اطلاعات بیشتری کسب کنید.

نمونه درخواست مناقصه

id: "<bid_request_id>"
imp {
  id: "1"
  banner {
    w: 320
    h: 50
    ...
  }
...
  adx_ext {
   ...
    ad_unit_mapping {
      keyvals {
        key: "key_1"
        value: "value_1"
      }
      keyvals {
        key: "key_2"
        value: "value_2"
      }
      ...
      format: FORMAT_BANNER
    }
  }
}
app {
 ...
  adx_ext {
    installed_sdk {
      id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      sdk_version {
        major: 1
        minor: 2
        micro: 30
      }
      adapter_version {
        major: 1
        minor: 2
        micro: 3000
      }
    }
    installed_sdk {
    ...
    }
    ...
  }
}
device {
  ...
}
user {
  ...
  }
  adx_ext {
    eids {
      source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      uids {
        id: "<partner_signal_string>"
      }
    }
  }
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
  google_query_id: "<query_string>"
  ...
}

پاسخ پیشنهاد

فیلدهای زیر در پاسخ پیشنهادی الزامی است:

  • BidResponse.seatbid.bid.adomain
  • BidResponse.seatbid.bid.ext.billing_id
  • BidResponse.seatbid.bid.crid
  • BidResponse.seatbid.bid.w
  • BidResponse.seatbid.bid.h

علاوه بر این، پاسخ پیشنهادی شما باید BidResponse.seatbid.bid.ext.sdk_rendered_ad را با موارد زیر پر کند:

شناسه SDK

از فیلد id برای ارائه شناسه برای SDK برای ارائه آگهی استفاده کنید.

شناسه را می‌توانید در BidRequest.app.ext.installed_sdk پیدا کنید.

آگهی اعلام شده

از BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad استفاده کنید تا خلاقیتی را ارائه کنید که با الزامات موجود در BidRequest.imp.ext.creative_enforcement_settings مطابقت داشته باشد و نماینده داده های رندر آگهی باشد. فقط یکی از html_snippet ، video_url ، video_vast_xml ، یا native_response باید پر شود.

اگر declared_ad پر نکنید، ما نمی‌توانیم خلاقیت را بررسی کنیم و همه پیشنهادهای دارای خلاقیت از حراج فیلتر می‌شوند.

می توانید در مورد آگهی اعلام شده در مستندات مرجع DeclaredAd اطلاعات بیشتری کسب کنید.

ارائه داده ها

از فیلد BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data استفاده کنید تا داده هایی را برای SDK خریدار ارائه دهید تا از آن برای ارائه آگهی شما استفاده کند.

مناقصه برای قرار دادن یک تبلیغ SDK خریدار باید یک خلاقیت را در قسمت declared_ad مشخص کند. آگهی اعلام شده باید دقیقاً نشان دهنده rendering_data باشد.

در اینجا یک نمونه شی SdkRenderedAd آمده است:

{
  "id": "1234567",
  "rendering_data": "\xd58...,\xd4\x89\xd\xf9",
  "declared_ad": {
    "html_snippet": "<iframe src=\"https://example.com/ads?id=123&
      curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>",
  }
}

توصیه می‌کنیم از API بیدرنگ مناقصه استفاده کنید تا خلاقیت‌ها را قبل از اینکه در یک پاسخ پیشنهادی بگنجانید برای بررسی ارسال کنید .

برای جزئیات بیشتر در مورد فیلدهای SdkRenderedAd به راهنمای OpenRTB مراجعه کنید.

نمونه پاسخ پیشنهادی

در اینجا نمونه‌ای از پاسخ‌های پیشنهادی برای هر قالب آگهی آمده است:

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 99
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 320
    h: 50
    burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          html_snippet: "<!doctype html> <html> ... </html>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
      billing_id: 141763360450
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

بینابینی

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

ویدیوی پاداش

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

بومی

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 1200
    h: 627
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          native_response {
            ...
            assets {
              id: 1
              title {
                text: ""
              }
            }
            assets {
              id: 2
              data {
                value: "<some_string>"
              }
            }
            assets {
              id: 3
              data {
                value: "View now"
              }
            }
            assets {
              id: 4
              img {
                url: "<valid_image_url>"
                w: 1200
                h: 627
                type: 3
              }
            }
            assets {
              id: 5
              img {
                url: "<valid_image_url>"
                w: 100
                h: 100
                type: 1
              }
            }
            assets {
              id: 6
              data {
                value: ""
              }
            }
            assets {
              id: 7
              data {
                value: "<some_string>"
              }
            }
            link {
              url: "<destination_link>"
            }
          }
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

بررسی خلاقانه

خلاقیت‌ها قبل از استفاده بررسی می‌شوند تا اطمینان حاصل شود که با خط‌مشی‌ها و تنظیمات ناشر ما مطابقت دارند.

در اینجا دو روش وجود دارد که می توانید خلاقیت ها را برای بررسی ارسال کنید:

Bidding API در زمان واقعی (توصیه می شود)

می‌توانید از روش buyers.creatives.create API بیدرنگ Bidding برای ارسال خلاقیت‌ها برای بررسی استفاده کنید.

API برای هر خلاق فقط به یک ارسال نیاز دارد و به شما امکان می‌دهد وضعیت بررسی خلاقیت خود را بررسی کنید.

پاسخ پیشنهاد

می‌توانید خلاقیت‌های جدید را مستقیماً در پاسخ پیشنهاد ارسال کنید.

شما باید از فیلد declared_ad شی SdkRenderedAd برای ارسال یک پاسخ پیشنهادی با یک خلاقیت SDK خریدار برای بررسی استفاده کنید.

خلاقیت های ارسال شده در پاسخ پیشنهاد فقط پس از تعداد زیادی پیشنهاد بررسی می شوند. کلیه پیشنهاداتی که قبل از تکمیل بررسی ارائه شده اند از حراج فیلتر می شوند. برای بررسی وضعیت یک خلاقیت پس از شروع بازبینی، می‌توانید از رابط بیدرنگ پیشنهاد یا API در زمان واقعی استفاده کنید.

برای جزئیات بیشتر به راهنمای خلاقیت ها مراجعه کنید.