ad_json_facebook_bidding.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. # coding=utf-8
  2. from sdk.tool.ad_json_6 import *
  3. def _find_and_add_facebook_platform_app_id(ad_json):
  4. fb_pool = ad_json.get_pool(AD_TYPE.INTERSTITIAL, AD_PLATFROM.FACEBOOK)
  5. if fb_pool is None:
  6. Logging.error("未找到facebook的插屏池,请确认原ad.json是否正常,或已经转换成了bidding")
  7. exit(0)
  8. max_priority_fb_ad_id = fb_pool.max_priority_ad_id()
  9. fb_app_id = max_priority_fb_ad_id.split("_")[0]
  10. print "读取到facebook的AppId: {}".format(fb_app_id)
  11. ad_json.add_platform_id(RED_SDK_AD_PLATFORM.FACEBOOK_BID, fb_app_id)
  12. print fb_app_id
  13. def _trans_facebook_waterfull_to_bidding(ad_json, ad_type):
  14. pool = ad_json.get_pool(ad_type, AD_PLATFROM.FACEBOOK)
  15. if pool is None:
  16. Logging.error("未找到facebook的插屏池,请确认原ad.json是否正常,或已经转换成了bidding")
  17. exit(0)
  18. max_id = pool.max_priority_ad_id()
  19. bidders = ad_json.get_bidders(ad_type)
  20. bidders.add_bidder(AD_PLATFROM.FACEBOOK, max_id)
  21. ad_json.remove_pool(ad_type, AD_PLATFROM.FACEBOOK)
  22. ad_json.remove_strategy(ad_type, AD_PLATFROM.FACEBOOK)
  23. def _print_script_info():
  24. print "************************************************************"
  25. print "* 脚本作用: 升级ad.json到6.1.4所需要的格式 "
  26. print "* 参数说明:"
  27. print "* 源ad.json文件路径"
  28. print "* 转换后写入ad.json文件路径(为空则写入源文件)"
  29. print "* 例:"
  30. print "* python ad_json_facebook_bidding.py /user/test/ad.json"
  31. print "************************************************************"
  32. print ""
  33. def add_facebook_bidding(old_ad_json_path, to_ad_json_path):
  34. print "源ad.json: {}".format(old_ad_json_path)
  35. ad_json = AdJson6()
  36. ad_json.read(old_ad_json_path)
  37. _find_and_add_facebook_platform_app_id(ad_json)
  38. _trans_facebook_waterfull_to_bidding(ad_json, AD_TYPE.INTERSTITIAL)
  39. _trans_facebook_waterfull_to_bidding(ad_json, AD_TYPE.VIDEO)
  40. print "--------------------------"
  41. ad_json.print_desc()
  42. # 写入
  43. if to_ad_json_path is None:
  44. to_ad_json_path = old_ad_json_path
  45. ad_json.write(to_ad_json_path)
  46. print "目标ad.json写入成功: {}".format(to_ad_json_path)
  47. def run(argv):
  48. _print_script_info()
  49. if len(argv) < 3:
  50. Logging.error("参数个数小于2个")
  51. exit(0)
  52. from_path = argv[1]
  53. to_path = argv[2]
  54. add_facebook_bidding(from_path, to_path)
  55. if __name__ == '__main__':
  56. arg_v = [
  57. "ad_json_facebook_bidding.py",
  58. "/Users/zhuge/Temp/20201226/test/ad.json",
  59. "/Users/zhuge/Temp/20201226/test/ad_facebook_bidding.json",
  60. ]
  61. run(arg_v)