API Vị trí đặt quảng cáo chứa hai hàm: adBreak()
và adConfig()
,
được xác định trong vùng chứa tên chung sau đây. Hầu hết các đối số là các hàm
bạn cung cấp cho phép bạn xử lý các bước chính để chuẩn bị và hiển thị
quảng cáo:
adBreak({
type: '<type>', // The type of this placement
name: '<name>', // A descriptive name for this placement
beforeAd: () => {}, // Prepare for the ad. Mute and pause the game flow
afterAd: () => {}, // Resume the game and un-mute the sound
beforeReward: (showAdFn) => {}, // Show reward prompt (call showAdFn() if clicked)
adDismissed: () => {}, // Player dismissed the ad before completion
adViewed: () => {}, // Ad was viewed and closed
adBreakDone: (placementInfo) => {}, // Always called (if provided) even if an ad didn't show
});
adConfig({
preloadAdBreaks: 'on|auto', // Should ads always be preloaded
sound: 'on|off', // Is sound currently enabled within the game
});
Các hàm này dùng để đặt và định cấu hình quảng cáo trong trò chơi của bạn. Các đối số ở trên là các đối số hợp lệ duy nhất có thể được truyền đến các hàm này. Các loại quảng cáo khác nhau yêu cầu các tập hợp con khác nhau trong số các đối số này như được nêu chi tiết bên dưới.
adBreak()
là chức năng chính để đặt quảng cáo trong trò chơi của bạn. Quy trình này xác định
vị trí đặt quảng cáo và lấy đối tượng có tên là cấu hình vị trí chỉ định
mọi thứ cần thiết để hiển thị quảng cáo.
Hàm adBreak()
xác định một vị trí mà quảng cáo có thể hiển thị.
Việc một quảng cáo có thực sự xuất hiện hay không phụ thuộc vào những yếu tố như sau:
- Loại vị trí đặt quảng cáo mà bạn đã khai báo
- Quảng cáo này có xuất hiện ở đầu trò chơi không? Giữa các cấp? Vào thời điểm người chơi đã tạm dừng trò chơi?
- Có quảng cáo phù hợp cho người chơi hiện tại hay không
- Quảng cáo này có phù hợp với họ không?
- Việc này có nhất quán với chế độ cài đặt về quyền riêng tư và sự đồng ý của người dùng không?
- Số lượng quảng cáo mà người chơi thấy gần đây
- Chế độ cài đặt kiểm soát (ví dụ: tần suất quảng cáo mà bạn đã thiết lập cho trò chơi này)
- Làm gợi ý trong thẻ hoặc
- Trong AdSense – lưu ý rằng các chế độ kiểm soát hiện có trong AdSense sẽ phát triển theo thời gian.
Loại quảng cáo xuất hiện cũng phụ thuộc vào các yếu tố tương tự.
Xin lưu ý rằng lệnh gọi đến adBreak()
hoàn toàn không thể hiển thị quảng cáo. Danh sách này chỉ khai báo
nơi mà quảng cáo có thể hiển thị.
Khác với các API truyền thống, trong đó mã của bạn luôn biết có quảng cáo hay không, và bạn quyết định có hiển thị quảng cáo trong trò chơi hay không. Phương pháp để API Vị trí đặt quảng cáo này quyết định liệu một quảng cáo có xuất hiện ở một vị trí cụ thể hay không là một mẫu đôi khi được gọi là "đảo ngược quyền kiểm soát".
Lý do chúng tôi chuyển đổi API trò chơi sang mô hình này trước tiên là để rút ngắn mã bạn phải viết trong trò chơi của mình. Thứ hai, việc này giúp dễ dàng phân phối các vị trí tuân thủ chính sách với trải nghiệm người dùng tuyệt vời, từ đó cho phép chúng tôi phân phối một số định dạng có hiệu suất cao nhất cho các nhà phát hành trò chơi. Cuối cùng, cách này sẽ giúp tách biệt quy trình đặt quảng cáo trong trò chơi với các quyết định về hoạt động kiếm tiền về loại và số lượng quảng cáo sẽ hiển thị.
Chúng tôi muốn bạn có thể thay đổi chế độ cài đặt kiếm tiền và kiểm soát trải nghiệm người dùng mà không cần phải chỉnh sửa và phát hành phiên bản mới của trò chơi, ban đầu bằng cách chỉ định gợi ý trong thẻ. Nhưng trong các bản phát hành trong tương lai, chúng tôi sẽ có thể cung cấp tính năng kiểm soát trực tiếp trong giao diện người dùng AdSense và AdMob.
Quảng cáo trung gian
Quảng cáo xen kẽ là quảng cáo toàn màn hình, có thể hiển thị tại các thời điểm khác nhau trong trò chơi của bạn, chẳng hạn như khi người chơi bắt đầu trò chơi hoặc sau khi người chơi hoàn thành một cấp độ. Quảng cáo này tạm dừng trò chơi, bao phủ toàn bộ tài liệu và người chơi có thể chọn nhấp vào quảng cáo (trong trường hợp đó, quảng cáo xuất hiện trong một thẻ khác trên trình duyệt) hoặc đóng quảng cáo để cho phép họ tiếp tục trò chơi.
Để đặt quảng cáo xen kẽ, hãy điền vào các trường sau trong cấu hình vị trí:
adBreak({
type: 'start', // The type of this placement
name: 'game_started', // A descriptive name for this placement
beforeAd: beforeAd, // Prepare for the ad. Mute and pause the game flow
afterAd: afterAd, // Resume the game and un-mute the sound
adBreakDone: breakDone, // Always called (if provided) even if an ad didn't show
});
Đối số type
là bắt buộc và bạn nên luôn đặt tên cho vị trí của mình. Các lệnh gọi lại khác là không bắt buộc.
Trình tự cuộc gọi
Xem xét trình tự cuộc gọi cho một quảng cáo xen kẽ.
Mô tả
Quảng cáo xen kẽ – Trình tự cuộc gọi chi tiết | |
---|---|
Trò chơi H5 của bạn | API Vị trí đặt quảng cáo |
Khởi chạy và tải trước quảng cáo | |
Chạy trò chơi | |
Cơ hội tốt để hiển thị quảng cáo...
|
|
Có một quảng cáo đang hiển thị và giờ là thời điểm thích hợp để hiển thị quảng cáo... ← |
|
Trò chơi tạm dừng, tắt âm thanh và sẵn sàng hiển thị quảng cáo.
|
|
API Vị trí đặt quảng cáo hiển thị quảng cáo xen kẽ. Người chơi có thể nhấp vào quảng cáo (xuất hiện trong một thẻ mới). Họ phải loại bỏ quảng cáo để tiếp tục chơi trò chơi. | |
← afterAd() được gọi nếu một quảng cáo đã hiển thị
|
|
Trò chơi sẽ huỷ tạm dừng và bật tiếng. | |
← adBreakDone() adBreakDone() luôn được gọi (ngay cả khi quảng cáo không được hiển thị) |
|
Trò chơi ghi nhật ký phân tích về vị trí này. |
Ghi chú
adBreak()
là một hàm không đồng bộ trả về ngay lập tức.- Nếu không có quảng cáo nào để hiển thị cho một vị trí, thì sẽ không có lệnh gọi lại nào
được gọi – tức là không có
beforeAd()
,afterAd()
nào được gọi. - Để đảm bảo trò chơi không tiếp tục thực thi trong khi quảng cáo đang hiển thị, hãy sử dụng lệnh gọi lại
beforeAd()
để tắt âm thanh và tạm dừng trò chơi. beforeAd()
có tính đồng bộ, API Vị trí đặt quảng cáo sẽ không hiển thị quảng cáo cho đến khi quảng cáo trả về.- Khởi động lại trò chơi và bật tiếng khi bạn nhận được lệnh gọi
afterAd()
. - Nếu được cung cấp,
adBreakDone()
sẽ luôn được gọi ngay cả khi quảng cáo không hiển thị ở vị trí này. - Việc gọi
adBreak()
trong khi một quảng cáo khác đang hiển thị sẽ không thành công và cảnh báo sẽ được hiển thị trên bảng điều khiển JavaScript.
Trước video
Quảng cáo trước video là một quảng cáo xen kẽ hiển thị trước khi trò chơi tải giao diện người dùng. Đó là điều đầu tiên người chơi nhìn thấy khi họ di chuyển đến trò chơi của bạn. Do quảng cáo trước video xảy ra rất sớm trong khi tải trang và trò chơi của bạn chưa hiển thị, nên bạn không cần phải thực hiện các lệnh gọi tạm dừng thông thường để tạm dừng và tắt tiếng trò chơi. Thay vào đó, bạn sử dụng lệnh gọi lại
adBreakDone()
để sắp xếp trình tự
bắt đầu trò chơi bằng quảng cáo, tức là hiển thị giao diện người dùng và bắt đầu phát âm thanh. Bạn chỉ có thể kích hoạt một quảng cáo trước video cho mỗi lần tải trang.
Trình tự cuộc gọi
Lệnh gọi cho quảng cáo trước video được thực hiện rất sớm trong khi tải trang. Vì trò chơi của bạn chưa kết xuất giao diện người dùng tại thời điểm này, nên bạn không nên truyền các lệnh gọi lại beforeAd()
và afterAd()
. Thay vào đó, hãy sử dụng lệnh gọi lại adBreakDone()
để bắt đầu trò chơi sau vị trí, vì lệnh này được đảm bảo sẽ được gọi ngay cả khi không có quảng cáo.
Khi bạn gọi mã sau, logic ban đầu của trò chơi sẽ đặt quảng cáo trước video. Giao diện người dùng của bạn không được hiển thị trước khi mã này được gọi.
// Game must not be running.
// Nothing in the game area should be clickable
adBreak({
type: ‘preroll',
adBreakDone: startGame,
})
Trước video – Trình tự chi tiết cuộc gọi | |
---|---|
Trò chơi H5 của bạn | API Vị trí đặt quảng cáo |
Bắt đầu chạy API và lưu vào bộ nhớ đệm trước khi khởi động quảng cáo | |
Đang chạy nhưng chưa bắt đầu và chưa hiển thị giao diện người dùng | |
|
|
API Vị trí đặt quảng cáo hoàn tất việc khởi chạy và tải quảng cáo. Nếu có quảng cáo, quảng cáo sẽ hiển thị. Người chơi có thể nhấp vào quảng cáo (xuất hiện trong một thẻ mới). Họ phải đóng lớp này để trò chơi bắt đầu. |
|
← |
|
Giao diện người dùng của trò chơi sẽ hiển thị trên màn hình và người chơi hiện có thể tương tác. Trò chơi có thể sử dụng đối tượng |
Ghi chú
- Quảng cáo trước video sẽ luôn cố gắng tải trước quảng cáo:
- Bạn không cần gọi
adConfig(preloadAds: ‘on')
với quảng cáo trước video.
- Bạn không cần gọi
- Giống như các vị trí đặt quảng cáo khác, quảng cáo trước video có thể có hoặc không hiển thị quảng cáo.
- Không được chuyển
beforeAd()
vàafterAd()
vào quảng cáo trước video.- Vì quảng cáo trước video chạy trước khi trò chơi bắt đầu, nên bạn không cần tạm dừng hoặc tắt âm thanh trò chơi.
- Nếu bạn truyền
beforeAd()
hoặcafterAd()
với quảng cáo trước video, lệnh gọi sẽ không thành công và lỗi sẽ được ghi vào bảng điều khiển JavaScript.
- Quảng cáo trước video tự động đợi API Vị trí đặt quảng cáo khởi chạy và
tải trước quảng cáo:
- Tuy nhiên, có một thời gian chờ (2) ngăn lệnh gọi trì hoãn
vô thời hạn. Điều này đảm bảo rằng
adBreakDone()
được gọi một cách kịp thời và trò chơi của bạn bắt đầu. adBreakDone()
luôn được gọi ngay cả khi không có quảng cáo.
- Tuy nhiên, có một thời gian chờ (2) ngăn lệnh gọi trì hoãn
vô thời hạn. Điều này đảm bảo rằng
- Bạn nên sử dụng quảng cáo trước video để đặt quảng cáo trước khi trò chơi bắt đầu.
- Ngoài ra, bạn có thể sử dụng lệnh gọi lại
onReady()
đếnadConfig()
làm cơ chế để sắp xếp trình tự logic trò chơi bằng cách khởi chạy API và tải trước quảng cáo.
- Ngoài ra, bạn có thể sử dụng lệnh gọi lại
Quảng cáo có tặng thưởng
Quảng cáo có tặng thưởng cho phép bạn tặng người chơi vật phẩm trong ứng dụng nếu họ chọn xem quảng cáo. Trong khi quảng cáo xen kẽ chọn không sử dụng, thì trình phát sẽ hiển thị quảng cáo và có thể chọn đóng quảng cáo đó. Bạn chọn sử dụng quảng cáo có tặng thưởng. Người chơi chọn xem và khi nào họ muốn xem quảng cáo để nhận phần thưởng.
Không giống như quảng cáo xen kẽ mà người chơi có thể đóng quảng cáo bất cứ lúc nào, để nhận phần thưởng, họ phải xem quảng cáo trong một khoảng thời gian tối thiểu (có thể khác nhau, tuỳ thuộc vào mẫu quảng cáo đang hiển thị).
Vì người chơi không bắt buộc phải sử dụng quảng cáo có tặng thưởng, nên loại quảng cáo này cần tích hợp sâu hơn vào luồng trò chơi của bạn. Bạn phải cung cấp các hàm để hiển thị lời nhắc về phần thưởng trong trò chơi và phân bổ phần thưởng cho người chơi nếu họ xem quảng cáo.
Phần thưởng không được có giá trị bên ngoài ứng dụng, chúng không được có (hoặc dễ dàng được đổi thành) giá trị tiền tệ và không được bán hoặc trao đổi được hàng hoá và dịch vụ, đồng thời bạn không được khuyến khích người chơi nhấp vào quảng cáo. Vui lòng tham khảo chính sách nháp cho quảng cáo xen kẽ và quảng cáo có tặng thưởng để biết thêm thông tin.
Vì người chơi không bắt buộc phải thêm phần thưởng, nên bạn có thể thêm phần thưởng vào bất cứ vị trí nào hợp lý trong trò chơi và có thể sử dụng kèm theo quảng cáo xen kẽ. Giống như quảng cáo xen kẽ, những vị trí này là cơ hội để hiển thị quảng cáo có tặng thưởng. API Vị trí đặt quảng cáo sẽ chỉ gọi mã của bạn nếu một quảng cáo có tặng thưởng thực sự được cung cấp tại một thời điểm cụ thể trong trò chơi của bạn.
Một lần nữa, mục tiêu ở đây là cho phép bạn tích hợp trò chơi của mình với API Vị trí đặt quảng cáo theo thời gian và sau đó sử dụng các tùy chọn kiểm soát trong thẻ hoặc trong AdSense, bạn có thể thay đổi cách kết hợp chính xác các quảng cáo được kích hoạt – mà không phải mã hóa lại và phát hành lại trò chơi.
Loại vị trí có tặng thưởng luôn là 'reward'
và có thể sử dụng tất cả các trường trong
cấu hình vị trí.
adBreak({
type: 'reward', // The type of this placement
name: '<name>', // A descriptive name for this placement
beforeAd: () => {}, // Prepare for the ad. Mute and pause the game flow
afterAd: () => {}, // Resume the game and re-enable sound
beforeReward: (showAdFn) => {}, // Show reward prompt (call showAdFn() if clicked)
adDismissed: () => {}, // Player dismissed the ad before it finished.
adViewed: () => {}, // Player watched the ad–give them the reward.
adBreakDone: (placementInfo) => {}, // Always called (if provided) even if an ad didn't show
});
Các hàm mới chính là beforeReward()
, là trình kích hoạt báo hiệu bạn sẽ hiển thị lời nhắc phần thưởng và adViewed()
được gọi khi người chơi đã xem quảng cáo thành công, để bạn có thể phân bổ phần thưởng.
Bạn có thể xác định một vị trí có tặng thưởng như sau:
adBreak({
type: 'reward',
name: 'new_life_reward_1',
beforeAd: pauseGame,
afterAd: restartGame,
beforeReward: showRewardPrompt,
adDismissed: adDismissed,
adViewed: adViewed,
adBreakDone: breakDone,
});
Quảng cáo có tặng thưởng bắt đầu bằng một lời nhắc trong trò chơi của bạn, tặng thưởng cho người chơi nếu họ xem quảng cáo.
Trình tự cuộc gọi cho quảng cáo có tặng thưởng
Mô tả
Quảng cáo có tặng thưởng – Trình tự cuộc gọi chi tiết | |
---|---|
Trò chơi H5 của bạn | API Vị trí đặt quảng cáo |
Khởi chạy và lưu trước vào bộ nhớ đệm quảng cáo | |
Chạy trò chơi | |
|
|
Có sẵn một quảng cáo, vì vậy, hãy bắt đầu một vị trí đặt quảng cáo có tặng thưởng. ← |
|
Trò chơi hiển thị lời nhắc về phần thưởng. Nhờ đó, người chơi có cơ hội nhận phần thưởng bằng cách xem quảng cáo. Có thể cung cấp nhiều loại phần thưởng (ví dụ: mạng mới hoặc tiền xu). Người chơi có thể nhấp vào lời nhắc về phần thưởng, loại bỏ chúng hoặc đơn giản là bỏ qua chúng. Nếu người dùng nhấp vào lời nhắc, trò chơi sẽ lưu trữ loại phần thưởng mà họ đã yêu cầu và gọi Tuy nhiên, nếu lời nhắc về phần thưởng bị loại bỏ hoặc bị bỏ qua, thì sẽ không có điều gì xảy ra cho đến khi bạn thực hiện một lệnh gọi khác đến |
|
|
|
← beforeAd() |
|
Trò chơi tạm dừng, tắt tiếng và sẵn sàng hiển thị quảng cáo
|
|
API sẽ hiển thị quảng cáo. Nó có nút đóng và đếm ngược thời gian còn lại trong quảng cáo. | |
NẾU người chơi đóng quảng cáo... | |
← adDismissed() |
|
Người chơi đã loại bỏ quảng cáo và trò chơi không trao phần thưởng. | |
NẾU KHÔNG THÌ người chơi xem quảng cáo đến hết... | |
← adViewed() |
|
Người chơi đã xem hết quảng cáo và trò chơi phát hành phần thưởng. (Điều này thường xảy ra khi bạn thiết lập một số trạng thái trò chơi rồi sẽ được lấy khi trò chơi khởi động lại với lệnh gọi đến afterAd() bên dưới).
|
|
Sau khi người dùng xem hoặc loại bỏ quảng cáo... | |
← afterAd() được gọi nếu một quảng cáo đã hiển thị |
|
Trò chơi sẽ huỷ tạm dừng và bật tiếng. | |
← adBreakDone() adBreakDone() luôn được gọi (ngay cả khi quảng cáo không được hiển thị) |
|
Trò chơi ghi nhật ký phân tích về vị trí này. |
Ghi chú
adBreak()
là một hàm không đồng bộ trả về ngay lập tức.- Nếu không có quảng cáo nào để hiển thị cho một vị trí, thì sẽ không có lệnh gọi lại nào
được gọi – tức là không có
beforeAd()
nào,beforeReward()
được gọi. - Để đảm bảo trò chơi không tiếp tục thực thi trong khi quảng cáo đang hiển thị, hãy sử dụng lệnh gọi lại
beforeAd()
để tắt âm thanh và tạm dừng trò chơi. beforeAd()
có tính đồng bộ, API Vị trí đặt quảng cáo sẽ không hiển thị quảng cáo cho đến khi quảng cáo trả về.- Khởi động lại trò chơi và bật tiếng khi bạn nhận được lệnh gọi
afterAd()
. - Nếu được cung cấp,
adBreakDone()
sẽ luôn được gọi ngay cả khi quảng cáo không hiển thị ở vị trí này. - Việc gọi
adBreak()
trong khi một quảng cáo khác đang hiển thị sẽ không thành công và cảnh báo sẽ được hiển thị trên bảng điều khiển JavaScript.