# coding=utf-8 def generateAdmob5FloorStrategy(ad_id_arr): """ 5层 的admob的请求策略,从中间第3层开始请求 :param ad_id_arr: [am_5, am_4, am_3, am_2, am_1] :return: 策略json """ platform = "admob" return { "root": ad_id_arr[2], "strategy": { ad_id_arr[2]: { "suc": 1, "fail": 1, "platform": platform, "suc_next": ad_id_arr[4], "fail_next": ad_id_arr[1], }, ad_id_arr[4]: { "suc": 2, "fail": 1, "platform": platform, "fail_next": ad_id_arr[3], }, ad_id_arr[3]: { "suc": 2, "fail": 2, "platform": platform, }, ad_id_arr[1]: { "suc": 2, "fail": 1, "platform": platform, "fail_next": ad_id_arr[0], }, ad_id_arr[0]: { "suc": 2, "fail": 2, "platform": platform, }, } } def generate_ordered_floor_strategy(ad_id_arr, platform): """ 按顺序生成策略 :param ad_id_arr: [] 从小到大 [fb_4, fb_3, fb_2] :param platform: string 平台 :return: json 策略 """ dic_strategy = {} # 每一个 for i in range(1, len(ad_id_arr)): dic_strategy[ad_id_arr[i]] = { "suc": 2, "fail": 1, "fail_next": ad_id_arr[i - 1], "platform": platform } # 最后一个 dic_strategy[ad_id_arr[0]] = { "suc": 2, "fail": 2, "platform": platform } # 组装一下 return { "root": ad_id_arr[-1], "strategy": dic_strategy } def generator_pool(ad_id_arr, priority_arr): # type: (list, list) -> dict """ 生成池子 两个数组必须一一对应 :param ad_id_arr: [] :param priority_arr: [] :return: {ad_1: 2, ad_2: 1} """ dic = {} for i in range(0, len(ad_id_arr)): ad_id = ad_id_arr[i] priority = priority_arr[i] dic[ad_id] = priority return dic