[Review] Ad Network Mediation บน AdMob กับ Vserv.mobi : Part 3 การเขียนคำสั่ง

ความเดิมจากตอน [Review] Ad Network Mediation บน AdMob กับ Vserv.mobi : Part 1 การตั้งค่า จนมาถึง [Review] Ad Network Mediation บน AdMob กับ Vserv.mobi : Part 2 การนำ Library มาใช้งาน เราก็พร้อมที่จะลงมือเขียน Code เพื่อทำ Ad Network Mediation บน AdMob ให้กับ Vserv.mobi กันแล้ว

Ad Network Mediation AdMob and Vserv

ใน บทความตอนนี้จะเป็นตอนสุดท้ายของการทำ Ad Network Mediation แล้วล่ะ ซึ่งเราจะมาลงมือเขียนคำสั่งกันแล้ว มาลุยกันต่อเลยคร๊าบบบบ~!!

โปรดฟังอีกครั้ง~!!

ขอย้ำข้อความจากตอนแรก

ก่อนที่จะเริ่มลงมือทำกัน ผมถือว่าทุกท่าน ติดโฆษณาของ AdMob ด้วย Google Play Services library ใน Android App ของท่านเรียบร้อยแล้ว หากใครที่ยังไม่ได้ติด AdMob หรือติด AdMob ด้วย Google Mobile Ads SDK ไปอ่าน [Android Dev Tips] ติดโฆษณาบนแอพของเราด้วย AdMob [Google Play Service] ก่อนนะ

เพราะฉะนั้น.. ผมถือว่าทุกท่าน เชี่ยวชาญการเขียนคำสั่งสำหรับใช้งาน AdMob อยู่แล้ว ดังนั้น ผมจะอธิบายเน้นเฉพาะในจุดที่สำคัญเท่านั้นนะครับ

 

List of contents

 

Banner

สำหรับการแสดงโฆษณาแบบ Banner นั้น เมื่อเราต้องการทำ Banner Ad ของ AdMob จะต้องประกาศตัวแปรดังนี้

เหมือนจะไม่มีอะไร แต่… เป็นจุดที่ผมเจอปัญหาสำหรับการทำ Ad Network Mediation กับ Vserv.mobi มาแล้ว!!

ขอให้ตรวจสอบก่อนนะครับว่า context ที่ใส่เข้าไปนั้น มาจากไหน!?

  1. ถ้าใส่ this แล้ว this อยู่ใน class ที่ extends มาจาก Activity (หรือ class อื่น ๆ ที่ extends ต่อจาก Activity) อันนี้ รอด
  2. ถ้าใส่ classname.this แล้ว classname ก็คือชื่อ class ที่ extends มาจาก Activity (เหมือนข้อ 1 นั่นแหล่ะ) อันนี้ก็… รอด
  3. ถ้าใส่ getApplicationContext() เพราะมัน return Context ออกมาให้ และตรงกับ Parameter ของ Constructor ของ class AdView ละก็… ไม่รอด!!!

เพราะว่า ถึง class AdView ถึงจะต้องการแค่ Context และสามารถทำงานได้กับ AdMob แต่ว่า เมื่อทำ Mediation กับ Vserv.mobi แล้ว ใน Adapter ของ Vserv.mobi นั้น ต้องการ Activity นั่นเอง

ขั้นตอนต่อไป ให้ทำการสร้าง Adapter ด้วยคำสั่งดังนี้

หลังจากนั้น ก็นำ Adapter ไปกำหนดให้กับ AdMob ในขั้นตอนของการสร้าง AdRequest ดังนี้

 ห้ามกำหนดค่า null ให้ method addNetworkExtras() เด็ดขาด แล้วจะหาว่าไม่เตือน!!

และหากต้องการตรวจสอบ event ที่เกิดขึ้น เพื่อรองรับการแสดงผลโฆษณาของ Vserv.mobi สามารถกำหนดใน Method setAdListener() ของ class AdView ได้ โดยการ extends class AdListener เดิม ดังนี้

จะดัก event ไหน ก็ override แค่ event นั้นก็พอนะ ซึ่งมันก็คือของเดิมจาก AdMob นั่นแหล่ะ หรือจะ new AdListener() ตอน setAdListener() เลยก็ได้ ไม่ต่างกัน

แล้วก็กำหนดให้กับ Method setAdListener() ซะ ดังนี้

เมื่อรวมคำสั่ง สำหรับ Banner ปรับปรุง Code เล็กน้อย ก็จะได้เป็นดังนี้

 

Interstitial / Billboard / Full Screen

สำหรับการแสดงโฆษณาแบบ Interstitial, Billboard หรือ Full Screen (ต่อไปขอเรียกแบบ Full Screen ละกันนะครับ) นั้น จะเหมือนกับ Banner เลย แต่มีส่วนที่เพิ่มขึ้นมาเล็กน้อย

นั่นแน่!! ใครอ่านข้ามมา กลับไปอ่านแบบ Banner ก่อนนะ

เมื่อเราต้องการทำ Full Screen Ad ของ AdMob จะต้องประกาศตัวแปรดังนี้

ย้ำ! ระวังเรื่องที่มาของ context เหมือนกับของ Banner ด้วยนะ

ถ้าใครเคยได้ใช้ SDK ของ Vserv.mobi ในการแสดงโฆษณาแบบ Full Screen โดยตรง จะพบว่า มีการกำหนดว่าโฆษณาที่แสดงนั้น จะแสดงเมื่อ เข้าสู่ App, อยู่ใน App และ ออกจาก App สำหรับการทำ Ad Network Mediation ก็สามารถกำหนดได้เช่นกัน โดยกำหนดเพิ่มเติมไปให้กับ Adapter ดังนี้

ทั้ง 3 บรรทัด คือกำหนดให้ Adapter รู้ว่า โฆษณาจะแสดงเมื่อไหร่ เลือกใช้ให้เหมาะสมนะครับ แต่หากว่าไม่กำหนด จะมีค่า Default เป็น AdPosition.IN

สำหรับการนำ Adapter ไปกำหนดให้กับ AdMob และการตรวจสอบ event ก็จะเหมือนกับแบบ Banner ทุกประการ

และสุดท้าย ควรคืน resources ให้กับระบบ เมื่อโฆษณาถูกปิดลง โดยทำการ override method onActivityResult() ของ class ที่เป็น Activity ซะ ดังนี้

เห็นตรงคำว่า “mid” ไม๊ครับ เป็นการตรวจสอบว่าเป็นโฆษณาที่แสดงอยู่ใน App ใด

  • หากเป็นโฆษณาที่แสดงเมื่อเข้าสู่ App (AdPosition.START) ให้กำหนดเป็นคำว่า “start”
  • หากเป็นโฆษณาที่แสดงเมื่ออยู่ภายใน App (AdPosition.IN) ให้กำหนดเป็นคำว่า “mid”
  • หากเป็นโฆษณาที่แสดงเมื่อออกจาก App (AdPosition.END) ให้กำหนดเป็นคำว่า “end”

เมื่อรวมคำสั่ง สำหรับ Full Screen ปรับปรุง Code เล็กน้อย ก็จะได้เป็นดังนี้

 

Additional Vserv Methods

สำหรับ Adapter ของ Vserv.mobi นั้น มี Method เพิ่มเติมมาให้ใช้งานอยู่อีกหลายตัว เพื่อให้โฆษณาที่แสดงนั้น มีการกำหนดค่าเฉพาะเจาะจงลงไปได้อีก ดังนี้

  • AdOrientation – สำหรับกำหนดให้โฆษณาที่แสดงนั้น แสดงในแบบแนวนอน หรือแนวตั้ง

  • Age – สำหรับกำหนดอายุของผู้ชมโฆษณา

  • City – สำหรับกำหนดเมืองของผู้ชมโฆษณา

  • Country – สำหรับกำหนดประเทศของผู้ชมโฆษณา

  •  Email – สำหรับกำหนด Email ของผู้ชมโฆษณา

 

Testing

สำหรับการทดสอบนั้น Adapter ของ Vserv.mobi ได้เตรียม Method สำหรับกำหนด Device ที่ใช้ทดสอบ ดังนี้

กรณีอยากใส่ Test Devices มากกว่า 1 เครื่อง สามารถกำหนดได้โดยใส่ Device ID เป็น Parameter ตัวต่อไป เรื่อย ๆ กี่ตัวก็ได้ โดยมีรูปแบบดังนี้

ซึ่งเราหาค่า Device ID ได้จากการ Run app แล้วหาค่า ID จาก LogCat [หมายเลข 1] โดย Search คำว่า tag:vserv [หมายเลข 2] ก็จะพบกับค่า Device ID [หมายเลข 3] ตามรูป

หาค่า Device ID จาก LogCat
หาค่า Device ID จาก LogCat

และสุดท้าย สำหรับ Zone ID ที่พูดถึงในบทความตอน [Review] Ad Network Mediation บน AdMob กับ Vserv.mobi : Part 1 การตั้งค่า นั้น หากใครยังไม่ได้สร้าง หรือยังไม่มี Vserv.mobi Developer Account ทาง Vserv.mobi ได้เตรียม Zone ID ทดสอบไว้ให้แล้ว ดังนี้

ก็จะแสดงโฆษณาหน้าตาแบบนี้

Test Ad แบบ Billboard ของ Vserv.mobi
Test Ad แบบ Banner ของ Vserv.mobi
Test Ad แบบ Banner ของ Vserv.mobi

 

ท้ายสุด… สำหรับการทดสอบนั้น หากมีการกำหนด Test Device สำหรับ AdMob ไว้ จะขึ้นแต่ Test Ad ของ AdMob เท่านั้นนะครับ ถ้าต้องการทดสอบ Ad Network Mediation ที่กำหนดไว้บนเว็บไซด์ของ AdMob ต้องเอา Test Device สำหรับ AdMob ออกก่อนนะ

 

ไม่อยากเลยใช่ไม๊ครับ กับการทำ Ad Network Mediation บน AdMob ให้กับ Vserv.mobi เนื่องจากการเขียนคำสั่ง เขียนอยู่บนพื้นฐานของ AdMob เดิมนั่นเอง

 

หากใครที่สงสัย หรือมีคำถามเกี่ยวกับ Vserv.mobi สามารถสอบถามข้อมูลเพิ่มเติม ได้จากกลุ่ม Vserv Thailand บน facebook ได้เลยครับ

เห็นแว๊บ ๆ ว่ามีรางวัลแจกด้วยนะ~!!

 

สำหรับ Review การทำ Ad Network Mediation บน AdMob กับ Vserv.mobi คงจบแค่เพียงเท่านี้ ตั้งใจเขียนให้ละเอียดมาก ๆ เพื่อจะได้เข้าใจง่าย ๆ ใครเห็นบทความยาว ๆ หลาย ๆ ตอน อย่าเพิ่งท้อกันนะครับ ทำจริง ๆ แป๊บเดียวเองนะ

หากใครได้ลองทำตาม แล้วชอบไม่ชอบยังไง feedback มาให้ฟังกันบ้างนะครับ ส่วนใครทำแล้วร่ำรวย อย่าลืมพาผมไปเลี้ยงด้วยนะ 😛

 


อ้างอิง : Ad Network Mediation – Publisher Instructions, Vserv.mobi – Knowledge Base : Android SDK Documentation, Vserv.mobi – Knowledge Base : Admob Mediation

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.