Giữa các máy chủ: Khắc phục sự cố cho tiện ích tích hợp đặt giá thầu

Nền tảng trung gian nội bộ không được cung cấp công khai

Giải pháp đặt giá thầu nội bộ với Audience Network hiện đang ở giai đoạn Beta kín và chưa được cung cấp công khai. Chúng tôi sẽ cung cấp thêm thông tin cập nhật khi có thay đổi.

Thay vào đó, bạn có thể truy cập phương thức Đặt giá thầu trên Audience Network thông qua một trong các nền tảng trung gian mà chúng tôi hợp tác.

Khi hoàn tất quy trình tích hợp giải pháp đặt giá thầu giữa các máy chủ, bạn nên hoàn tất quy trình thử nghiệm tiện ích tích hợp đặt giá thầu trong ứng dụng trên các thiết bị thực với quảng cáo chính thức. Trong trường hợp gặp phải một số lỗi http hoặc "không có giá thầu", phiên thử nghiệm này sẽ giúp bạn khắc phục sự cố trong quá trình triển khai.

Điều kiện tiên quyết

Phần

Sử dụng cURL để gỡ lỗi yêu cầu giá thầu

Mã lỗi và giải pháp khắc phục lỗi HTTP trong yêu cầu giá thầu

Khắc phục sự cố Không có giá thầu

Sử dụng cURL để gỡ lỗi yêu cầu giá thầu

Để gỡ lỗi yêu cầu giá thầu, bạn có thể sử dụng lệnh cURL. Lệnh này cho phép bạn gửi yêu cầu giá thầu và nhận phản hồi giá thầu trong thiết bị đầu cuối của mình.

Bước 1. Phần tải dữ liệu JSON dành cho Quảng cáo chèn giữa trong yêu cầu giá thầu

  • Thay thế YOUR_PLACEMENT_ID bằng ID vị trí quảng cáo của bạn
  • Thay thế YOUR_BUSINESS_ID bằng ID doanh nghiệp của bạn
  • Thay thế YOUR_DEVICE_ID bằng ID thiết bị của bạn
  • Thay thế YOUR_BIDDER_TOKEN bằng Mã nhà thầu do Audience Network SDK tạo ra
  • Thay thế YOUR_PLATFORM_ID bằng ID nền tảng của đối tác trung gian (ID ứng dụng Facebook).
  • Trong trường hợp bạn muốn thử nghiệm bằng định dạng quảng cáo khác, vui lòng tham khảo phần Định dạng quảng cáo được hỗ trợ.
  • Lưu phần tải dữ liệu JSON dưới đây ở dạng bid_request.json
{
"id": "vwxfKskkMobzQQ1e7M70",
"imp": [
{
"id": "FB Ad Impression",
"tagid": "YOUR_PLACEMENT_ID",
"instl": 1,
"banner": {
"h": 0,
"w": 0,
"linearity": 0
}
}
],
"app": {
"publisher": {
"id": "YOUR_BUSINESS_ID"
}
},
"device": {
"ua": "Dalvik\/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build\/OSM1.180201.000)",
"ifa": "YOUR_DEVICE_ID",
"dnt": 0,
"ip": "125.123.255.123"
},
"user": {
"buyeruid": "YOUR_BIDDER_TOKEN"
},
"regs": {
"coppa": 0
},
"at": 1,
"tmax": 500,
"test": 1,
"ext": {
"platformid": "YOUR_PLATFORM_ID"
}
}

Bước 2. Gửi yêu cầu giá thầu bằng lệnh cURL

  • Mở Terminal của bạn
  • Chuyển đến thư mục lưu bid_request.json của bạn qua cd ~/{FILE_PATH}
curl -X POST -H "Content-Type: application/json" -d @bid_request.json https://an.facebook.com/placementbid.ortb

Bước 3. Xem phản hồi giá thầu trong trường hợp yêu cầu giá thầu hợp lệ

{
"id": "Auction ID",
"seatbid": [
{
"bid": [
{
"id": "Bid Response ID",
"impid": "FB Ad Impression",
"price": 99.99,
"adm": "{\"type\":\"ID\",\"bid_id\":\"BID ID\",\"placement_id\":\"Placement ID\",\"resolved_placement_id\":\"Resolved Placement ID\",\"sdk_version\":\"SDK Version\",\"device_id\":\"Device ID\",\"template\":102,\"payload\":null}",
"nurl": "https://www.facebook.com/audiencenetwork/nurl/?partner=partner_id&app=app_id&placement=placement_id&auction=auction_id&impression=impression_id&request=request_id&bid=bid_id&ortb_loss_code=0&clearing_price=${AUCTION_PRICE}",
"lurl": "https://www.facebook.com/audiencenetwork/nurl/?partner=partner_id&app=app_id&placement=placement_id&auction=auction_id&impression=impression_id&request=request_id&bid=bid_id&ortb_loss_code=${AUCTION_LOSS}&clearing_price=${AUCTION_PRICE}"
}
]
}
],
"bidid": "Bid ID",
"cur": "USD"
}

Bước 4. Xem x-fb-an-errors trong tiêu đề phản hồi HTTP nếu bạn không nhận được phản hồi giá thầu ở trên.

Lệnh cURL để hiển thị tiêu đề phản hồi HTTP.

url -X POST -H "Content-Type: application/json" -v @bid_request.json https://an.facebook.com/placementbid.ortb
...
> Content-Type: application/json
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 400
< x-fb-an-request-id: fb_an_request_id
...
< x-fb-an-errors: Value cannot be null: value given: null
...

Vui lòng tham khảo phần Mô tả và giải pháp khắc phục lỗi HTTP trong yêu cầu giá thầu để sửa lỗi cho yêu cầu giá thầu của bạn.

Mã lỗi và giải pháp khắc phục lỗi HTTP trong yêu cầu giá thầu

Khi thử nghiệm quá trình triển khai giải pháp đặt giá thầu, bạn có thể gặp một trong các mã lỗi tiềm ẩn khi gửi yêu cầu giá thầu. Bảng dưới đây mô tả các mã lỗi này và giải pháp khắc phục.

Phản hồi 400: Lỗi thông số không hợp lệ

Thông báo lỗi Mô tả Giải pháp khắc phục

Mã nhà thầu không hợp lệ trong user.buyeruid

Mã nhà thầu trong user.buyeruid không hợp lệ.

Cách tạo mã nhà thầu hợp lệ:

  • Android - BidderTokenProvider.getBidderToken(context);

  • iOS — [FBAdSettings bidderToken];

ipaddress phải là địa chỉ IP hợp lệ

Trong đối tượng device của phần tải dữ liệu yêu cầu giá thầu, bạn phải cung cấp địa chỉ IP hợp lệ cho trường ip(v4) hoặc ipv6.

Ví dụ về địa chỉ đúng:

  • ip(v4): 255.255.255.0

  • ipv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

Ví dụ về địa chỉ sai: (Không cắt bớt ip của bạn)

  • ip(v4): 255.255.255

  • ipv6: 2001:0db8:85a3:0000:0000:8a2e

bắt buộc có placementid hợp lệ

Trong trường imp.tagid, bạn phải cung cấp ID vị trí quảng cáo hợp lệ trên Audience Network.

Vui lòng tìm ID vị trí quảng cáo của bạn trong Trình quản lý kinh doanh. Chọn Quản lý tài sản rồi tìm ID vị trí quảng cáo trong phần Không gian quảng cáo của nền tảng Android hoặc iOS.

ID nhà phát hành không được đặt trong yêu cầu ứng dụng.

Trường app.publisher.id không được đặt trong yêu cầu.

Vui lòng tìm ID nhà phát hành của bạn trong phần Cài đặt cho doanh nghiệp. Chọn Ứng dụng ở menu bên trái và tìm ID ứng dụng của bạn làm ID nhà phát hành

tất cả placementid đều phải thuộc cùng appid

Như thông báo cho biết, tất cả ID vị trí quảng cáo trên Audience Network trong yêu cầu giá thầu đều phải thuộc cùng một ID ứng dụng.

Vui lòng kiểm tra xem tất cả ID vị trí quảng cáo trong yêu cầu giá thầu có thuộc cùng một ID ứng dụng trong Trình quản lý kinh doanh hay không. Chọn Quản lý tài sản rồi tìm ID vị trí quảng cáo trong phần Không gian quảng cáo của nền tảng Android hoặc iOS.

Giá trị không chứa trường hình dạng bắt buộc và không thể rỗng

Yêu cầu giá thầu của bạn bị thiếu giá trị bắt buộc.

Giá trị bắt buộc:

  1. id

  2. imp, imp.tagid, imp.id

  3. app.publisher, app.publisher.id

  4. device

  5. ext, ext.platformid

  6. at - Bắt buộc có giá trị enum (1, 2)

bắt buộc có adformat, số lượng adformat và placementid phải giống nhau

Vui lòng cung cấp adformat hợp lệ và không trống.

Định dạng quảng cáo được hỗ trợ:

  • Định dạng tự nhiên: {'id': ${AUCTION_ID}, "native": { "h": -1, "w": -1 }, 'tagid': ${PLACEMENT_ID}}

  • Định dạng biểu ngữ tự nhiên: {'id': ${AUCTION_ID}, "native": { "h": -1, "w": -1 }, 'tagid': ${PLACEMENT_ID}}

  • Định dạng chèn giữa: {'id': ${AUCTION_ID}, "banner": { "h": 0, "w": 0 }, 'tagid': ${PLACEMENT_ID}, 'instl': 1}

  • Định dạng video kèm phần thưởng: {'id': ${AUCTION_ID}, "video": { "h": 0, "w": 0, 'ext': { 'videotype': 'rewarded' } }, 'tagid': ${PLACEMENT_ID}}

  • Định dạng biểu ngữ - chiều cao 50: {'id': ${AUCTION_ID}, "banner": { "h": 50, "w": -1 }, 'tagid': ${PLACEMENT_ID}}

  • Định dạng biểu ngữ - chiều cao 250: {'id': ${AUCTION_ID}, "banner": { "h": 250, "w": -1 }, 'tagid': ${PLACEMENT_ID}}

  • Định dạng video trong luồng: {'id': ${AUCTION_ID}, "video": { "h": 0, "w": 0, 'linearity': 1 }, 'tagid': ${PLACEMENT_ID}}

Vui lòng xem phần Định dạng quảng cáo được hỗ trợ để biết thêm thông tin.

các đối tượng biểu ngữ, tự nhiên và video đều loại trừ lẫn nhau, nhưng bắt buộc có một trong các đối tượng

Các đối tượng khác nhau cho adformat ở trên bao gồm: native, bannervideo. Điểm cuối của chúng tôi yêu cầu có một trong 3 đối tượng này. Tuy nhiên, bạn cần thận trọng do các đối tượng này loại trừ lẫn nhau.

Vui lòng tham khảo giải pháp khắc phục cho các Định dạng quảng cáo được hỗ trợ nêu trên.

Phản hồi 400: Lỗi trái phép

Thông báo lỗi Mô tả Giải pháp khắc phục

Không có ứng dụng nào khớp với ID doanh nghiệp và miền

Trong trường hợp bạn sử dụng ID doanh nghiệp ở trường app.publisher.id, chương trình phụ trợ của chúng tôi không thể tìm thấy ứng dụng theo miền và doanh nghiệp.

Nếu lỗi này vẫn hiển thị, vui lòng sử dụng id ứng dụng trong trường app.publisher.id.

Ứng dụng không được phép đặt giá thầu trong ứng dụng

ID ứng dụng trong app.publisher.id không nằm trong danh sách cho phép đặt giá thầu hoặc ứng dụng đang chờ xét duyệt.

Vui lòng liên hệ với chúng tôi để đưa ứng dụng của bạn vào danh sách cho phép hoặc hãy chờ cho đến khi ứng dụng được phê duyệt.

Nền tảng không được phép đặt giá thầu trong ứng dụng

ID nền tảng trong ext.platformid không nằm trong danh sách cho phép đặt giá thầu. Vui lòng đảm bảo id ứng dụng của bạn nằm trong danh sách cho phép và ứng dụng không ở trạng thái đang chờ xét duyệt.

Giải pháp khắc phục:

  1. Nếu bạn là nhà phát hành, ID ứng dụng của bạn trùng với ID nền tảng.

  2. Nếu bạn là đối tác, nhà phát hành của bạn sẽ đặt các giá trị khác nhau trong ext.platformid (ID ứng dụng dành cho đối tác) và app.publisher.id. (ID ứng dụng dành cho nhà phát hành)

Vui lòng liên hệ với chúng tôi để đưa ứng dụng của bạn vào danh sách cho phép hoặc hãy chờ cho đến khi ứng dụng được phê duyệt.

lỗi không mong muốn

Lý do:

  1. Giới hạn tốc độ người dùng/ứng dụng.

  2. Ứng dụng bị từ chối.

  3. Trình cài đặt không tin cậy.

  4. Yêu cầu lừa đảo.

Giải pháp khắc phục:

  1. Vui lòng giảm tần suất tải lại quảng cáo.

  2. Vui lòng liên hệ với chúng tôi để kiểm tra trạng thái ứng dụng của bạn.

  3. Vui lòng đảm bảo bạn cài đặt ứng dụng từ App Store đáng tin cậy.

  4. Vui lòng liên hệ với chúng tôi nếu lỗi này vẫn xuất hiện.

Phản hồi 204: Thông báo lỗi trống

Thông báo lỗi Mô tả Giải pháp khắc phục

Tiêu đề lỗi của x-fb-an-errors bị trống trong phản hồi giá thầu

Lý do:

  1. Trong trường hợp dnt: 1 - do-not-track, Facebook sẽ không đặt giá thầu.

  2. Thiếu imp.instl cho định dạng quảng cáo chèn giữa.

  3. Facebook đã chọn không tham gia phiên đấu giá.

Giải pháp khắc phục:

  1. Người dùng phải bật tính năng Theo dõi quảng cáo trong thiết bị. Sau đó, máy khách phải chuyển dnt: 0 (do-not-track) vào yêu cầu giá thầu, rồi Facebook sẽ đặt giá thầu.

  2. Vui lòng đảm bảo rằng bạn có trường imp.instl với 1 để đặt giá thầu cho quảng cáo chèn giữa.

Nếu hệ thống vẫn trả về phản hồi 204, vui lòng liên hệ với chúng tôi.

Khắc phục sự cố không có giá thầu

  • Hãy nhớ chụp và ghi lại tiêu đề HTTP x-fb-an-errors để giúp bạn hiểu nguyên nhân gây ra lỗi.
  • Đảm bảo đã cài đặt ứng dụng Facebook trên thiết bị mà ứng dụng của bạn đang chạy và bạn đã đăng nhập vào Facebook bằng tài khoản người dùng thực của mình. Việc sử dụng tài khoản người dùng Facebook giả mạo hoặc thử nghiệm là vi phạm chính sách của Facebook. Các tài khoản này sẽ bị vô hiệu hóa.
  • Đảm bảo bạn nhận được mã nhà thầu từ Audience Network SDK bằng cách gọi com.facebook.ads.BidderTokenProvider.getBidderToken() trên Android và [FBAdSettings bidderToken] trên iOS, rồi gửi chuỗi được trả về vào trường buyeruid của yêu cầu giá thầu.
  • Đảm bảo bạn gửi đúng id thiết bị trong trường ifa của yêu cầu giá thầu (Android - AdvertisingIdClient.getAdvertisingIdInfo(context).getId(), iOS - [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]).
  • Đảm bảo bạn không bật tính năng do-not-track(dnt) trên thiết bị, sau đó chuyển dnt: 0 (do-not-track) vào yêu cầu giá thầu.