from microservices import clickparams from microservices import redirectandroid from microservices import receiveandroid import socket import struct import random import time import hashlib import requests import json # 700bdf6f8e628686dc9fffccf6ebe58b 对应的安卓短链:73iIZ3a # URL = 'http://tmtest.trackingio.com/receive/turl/QJZfmma' # clickparams.parms_android['imei1'] = i # response = requests.get(url=URL, params=clickparams.parms.update(clickparams.parms_ios), timeout=10, verify=False) # print(clickparams.parms) # print(response.text) i = ''.join(str(random.choice(range(10))) for _ in range(12)) i2 = ''.join(str(random.choice(range(10))) for _ in range(12)) a = ''.join(str(random.choice(range(10))) for _ in range(12)) q = ''.join(str(random.choice(range(10))) for _ in range(16)) o = ''.join(str(random.choice(range(10))) for _ in range(12)) m = ''.join(str(random.choice(range(10))) for _ in range(17)) g = ''.join(str(random.choice(range(10))) for _ in range(36)) md = ''.join(str(random.choice(range(10))) for _ in range(32)) z = '00000000-0000-0000-0000-000000000000' z1 = '000000000000000' z2 = '0000000000000000' z3 = '0000000000000000000000000000000000000000000000000000000000000000' ip = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) # md5加密 def computeMD5(message): m = hashlib.md5() m.update(message.encode(encoding='utf-8')) return m.hexdigest() # 生成小写字母加数字组合 n = 10 def code_nums(n=6): ret = '' for i in range(n): num = random.randint(0, 9) letter = chr(random.randint(97, 122)) s = str(random.choice([num, letter])) ret += s return ret # 生成大写字母加数字组合 n = 10 def code_Nums(n=6): ret = '' for i in range(n): num = random.randint(0, 9) letter = chr(random.randint(65, 90)) s = str(random.choice([num, letter])) ret += s return ret # ------------------------点击deviceid取值顺序----------------------- # device_id取值顺序-oaid不为空,取oaid def test_qz1(): redirectandroid.parms['oaid'] = i redirectandroid.send_request3('') print(i) # device_id取值顺序-oaid为空,imei1,imei2,mac,android_id,ipv4不为空,取imei1 def test_qz2(): redirectandroid.parms['imei1'] = i redirectandroid.parms['imei2'] = o redirectandroid.parms['mac'] = m redirectandroid.parms['android_id'] = q redirectandroid.send_request3('') print(i) # device_id取值顺序-oaid,imei1为空,imei2,mac,android_id,ipv4不为空,取imei2 def test_qz3(): redirectandroid.parms['imei2'] = i redirectandroid.parms['mac'] = m redirectandroid.parms['android_id'] = q redirectandroid.send_request3('') print(i) # device_id取值顺序-oaid,imei1,imei2为空,mac,android_id,ipv4不为空,取mac def test_qz4(): redirectandroid.parms['mac'] = m redirectandroid.parms['android_id'] = q redirectandroid.send_request3('') print(m) # device_id取值顺序-oaid,imei1,imei2,mac为空,android_id,ipv4不为空,取android_id def test_qz5(): redirectandroid.parms['android_id'] = q redirectandroid.send_request3('') print(q) # device_id取值顺序-oaid,imei1,imei2,mac,android_id为空,ipv4不为空,取ipv4 def test_qz6(): redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') print(ip) # ------------------------点击device_id_md5取值顺序----------------------- # device_id_md5取值顺序-imei1_md5,imei2_md5,oaid_md5,gaid_md5,mac_md5,android_id_md5不为空,取oaid_md5 def test_qz7(): redirectandroid.parms['imei1_md5'] = computeMD5(i) redirectandroid.parms['imei2_md5'] = computeMD5(i2) redirectandroid.parms['oaid_md5'] = computeMD5(o) redirectandroid.parms['gaid_md5'] = computeMD5(g) redirectandroid.parms['mac_md5'] = computeMD5(m) redirectandroid.parms['android_id_md5'] = computeMD5(a) redirectandroid.send_request3('') print(i) print(computeMD5(i)) # device_id_md5取值顺序-oaid_md5为空,imei1_md5,imei2_md5,gaid_md5,mac_md5,android_id_md5不为空,取imei1_md5 def test_qz8(): redirectandroid.parms['imei1_md5'] = computeMD5(i) redirectandroid.parms['imei2_md5'] = computeMD5(i2) redirectandroid.parms['gaid_md5'] = computeMD5(g) redirectandroid.parms['mac_md5'] = computeMD5(m) redirectandroid.parms['android_id_md5'] = computeMD5(a) redirectandroid.send_request3('') print(i) print(computeMD5(i)) # device_id_md5取值顺序-imei1_md5,oaid_md5为空,imei2_md5,gaid_md5,mac_md5,android_id_md5不为空,取imei2_md5 def test_qz9(): redirectandroid.parms['imei2_md5'] = computeMD5(i2) redirectandroid.parms['gaid_md5'] = computeMD5(g) redirectandroid.parms['mac_md5'] = computeMD5(m) redirectandroid.parms['android_id_md5'] = computeMD5(a) redirectandroid.send_request3('') print(computeMD5(i2)) # device_id_md5取值顺序-imei1_md5,oaid_md5,imei2_md5为空,gaid_md5,mac_md5,android_id_md5不为空,取mac_md5 def test_qz10(): redirectandroid.parms['mac_md5'] = computeMD5(m) redirectandroid.parms['gaid_md5'] = computeMD5(g) redirectandroid.parms['android_id_md5'] = computeMD5(a) redirectandroid.send_request3('') print(m) print(computeMD5(m)) # device_id_md5取值顺序-imei1_md5,oaid_md5,imei2_md5,mac_md5为空,android_id_md5不为空,取android_id_md5 def test_qz11(): redirectandroid.parms['gaid_md5'] = computeMD5(g) redirectandroid.parms['android_id_md5'] = computeMD5(a) redirectandroid.send_request3('') print(a) print(computeMD5(a)) # -----------------------安卓精准归因---------------------------- # 安卓精准归因-oaid归因 def test_atb1(): i = code_nums(12) redirectandroid.parms['oaid'] = i redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.send_request() print(i) # 安卓精准归因-imei1归因 def test_atb2(): i = code_nums(12) redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['imei1'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(i) # 安卓精准归因-imei2归因 def test_atb3(): i = code_nums(12) redirectandroid.parms['imei2'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['imei2'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'imei2' receiveandroid.send_request() print(i) # 安卓精准归因-mac归因 def test_atb4(): m = code_nums(17) redirectandroid.parms['mac'] = m redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = m receiveandroid.data[0]['device_info']['mac'] = m receiveandroid.data[0]['device_info']['device_id_type'] = 'mac' receiveandroid.send_request() print(m) # 安卓精准归因-gaid归因 def test_atb5(): g = code_nums(36) redirectandroid.parms['gaid'] = g redirectandroid.parms['imei1'] = q redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['gaid'] = g receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['imei1'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(i) # 安卓精准归因-imei1_md5归因 def test_atb6(): redirectandroid.parms['imei1_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['imei1_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_md5'] = md receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['device_id_md5_type'] = 'imei1_md5' receiveandroid.send_request() print(o) # 安卓精准归因-imei2_md5归因 def test_atb7(): redirectandroid.parms['imei2_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['imei2_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['device_id_md5_type'] = 'imei2_md5' receiveandroid.data[0]['device_info']['device_id_md5'] = md receiveandroid.send_request() print(o) # 安卓精准归因-oaid_md5归因 def test_atb8(): redirectandroid.parms['oaid_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['oaid_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['device_id_md5_type'] = 'oaid_md5' receiveandroid.data[0]['device_info']['device_id_md5'] = md receiveandroid.send_request() print(o) print(md) # 安卓精准归因-mac_md5归因 def test_atb44(): redirectandroid.parms['mac_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['mac_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['device_id_md5_type'] = 'mac_md5' receiveandroid.data[0]['device_info']['device_id_md5'] = md receiveandroid.send_request() print(o) print(md) # 安卓精准归因-gaid_md5归因 def test_atb9(): redirectandroid.parms['gaid_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['gaid_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['device_id_md5_type'] = 'gaid_md5' receiveandroid.data[0]['device_info']['device_id_md5'] = md receiveandroid.send_request() print(o) # ---------------------点击激活中设备大小写不一致,无法归因上---------------------------- # 安卓精准归因-imei1归因:点击imei1大写,激活中imei1小写,无法归因上 def test_atb10(): imei1 = code_nums(12) redirectandroid.parms['imei1'] = imei1.upper() redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = imei1 receiveandroid.data[0]['device_info']['imei1'] = imei1 receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(imei1) # 安卓精准归因-imei2归因:点击imei2大写,激活中imei2小写,无法归因上 def test_atb14(): imei2 = code_nums(12) redirectandroid.parms['imei2'] = imei2.upper() redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['imei1'] = i receiveandroid.data[0]['device_info']['imei2'] = imei2 receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(imei2) print(i) # 安卓精准归因-oaid归因:点击oaid大写,激活中oaid小写,无法归因上 def test_atb11(): i = code_nums(12) redirectandroid.parms['oaid'] = i.upper() redirectandroid.send_request3("73iIZ3a", '') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.send_request() print(i) # 安卓精准归因-mac归因:点击mac大写,激活中mac小写,无法归因上 def test_atb12(): m = code_nums(17) redirectandroid.parms['mac'] = m.upper() redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = m receiveandroid.data[0]['device_info']['mac'] = m receiveandroid.data[0]['device_info']['device_id_type'] = 'mac' receiveandroid.send_request() print(m) # 安卓精准归因-gaid归因:点击gaid大写,激活中gaid小写,无法归因上 def test_atb13(): g = code_nums(36) redirectandroid.parms['gaid'] = g.upper() redirectandroid.parms['imei1'] = q redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['gaid'] = g receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['imei1'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(i) # 安卓精准归因-imei1归因:点击imei1小写,激活中imei1大写,无法归因上 def test_atb15(): imei1 = code_nums(12) redirectandroid.parms['imei1'] = imei1 redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = imei1.upper() receiveandroid.data[0]['device_info']['imei1'] = imei1.upper() receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(imei1.upper()) # 安卓精准归因-imei2归因:点击imei2小写,激活中imei2小大写,无法归因上 def test_atb16(): imei2 = code_nums(12) redirectandroid.parms['imei2'] = imei2 redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['imei1'] = i receiveandroid.data[0]['device_info']['imei2'] = imei2.upper() receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(imei2) print(i) # 安卓精准归因-oaid归因:点击oaid小写,激活中oaid小大写,无法归因上 def test_atb17(): i = code_nums(12) redirectandroid.parms['oaid'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = i.upper() receiveandroid.data[0]['device_info']['oaid'] = i.upper() receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.send_request() print(i) # 安卓精准归因-mac归因:点击mac小写,激活中mac大写,无法归因上 def test_atb18(): m = code_nums(17) redirectandroid.parms['mac'] = m redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = m.upper() receiveandroid.data[0]['device_info']['mac'] = m.upper() receiveandroid.data[0]['device_info']['device_id_type'] = 'mac' receiveandroid.send_request() print(m.upper()) # 安卓精准归因-gaid归因:点击gaid小写,激活中gaid大写,无法归因上 def test_atb19(): g = code_nums(36) redirectandroid.parms['gaid'] = g redirectandroid.parms['imei1'] = q redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['gaid'] = g.upper() receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['imei1'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(i) # 安卓精准归因-imei1_md5归因:点击imei1_md5大写,激活中imei1_md5小写,无法归因上 def test_atb20(): md = code_nums(32) redirectandroid.parms['imei1_md5'] = md.upper() redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['imei1_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-imei2_md5归因:点击imei2_md5大写,激活中imei2_md5小写,无法归因上 def test_atb21(): md = code_nums(32) redirectandroid.parms['imei2_md5'] = md.upper() redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['imei2_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-oaid_md5归因:点击oaid_md5大写,激活中oaid_md5小写,无法归因上 def test_atb22(): md = code_nums(32) redirectandroid.parms['oaid_md5'] = md.upper() redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['oaid_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-mac_md5归因:点击mac_md5大写,激活中mac_md5小写,无法归因上 def test_atb23(): md = code_nums(32) redirectandroid.parms['mac_md5'] = md.upper() redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['mac_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-gaid_md5归因:点击gaid_md5大写,激活中gaid_md5小写,无法归因上 def test_atb24(): md = code_nums(32) redirectandroid.parms['gaid_md5'] = md.upper() redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['gaid_md5'] = md receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-imei1_md5归因:点击imei1_md5小写,激活中imei1_md5小大写,无法归因上 def test_atb25(): md = code_nums(32) redirectandroid.parms['imei1_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['imei1_md5'] = md.upper() receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-imei2_md5归因:点击imei2_md5小写,激活中imei2_md5大写,无法归因上 def test_atb26(): md = code_nums(32) redirectandroid.parms['imei2_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['imei2_md5'] = md.upper() receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-oaid_md5归因:点击oaid_md5小写,激活中oaid_md5大写,无法归因上 def test_atb27(): md = code_nums(32) redirectandroid.parms['oaid_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['oaid_md5'] = md.upper() receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-mac_md5归因:点击mac_md5小写,激活中mac_md5大写,无法归因上 def test_atb28(): md = code_nums(32) redirectandroid.parms['mac_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['mac_md5'] = md.upper() receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # 安卓精准归因-gaid_md5归因:点击gaid_md5小写,激活中gaid_md5大写,无法归因上 def test_atb29(): md = code_nums(32) redirectandroid.parms['gaid_md5'] = md redirectandroid.parms['imei1'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = o receiveandroid.data[0]['device_info']['gaid_md5'] = md.upper() receiveandroid.data[0]['device_info']['imei1'] = o receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(o) # -----------------------不可用归因的设备ID无法精准归因---------------------- # android_id相同,激活中其他参数为空,无法归因 def test_atb30(): i = code_nums(16) redirectandroid.parms['android_id'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = '' receiveandroid.data[0]['device_info']['device_id_type'] = '' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(a) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.send_request() print(i) # 点击激活oaid为’00000000-0000-0000-0000-000000000000‘,激活中其他参数为空,无法归因 def test_atb31(): i = code_nums(16) redirectandroid.parms['oaid'] = z redirectandroid.send_request3("73iIZ3a", '') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = '' receiveandroid.data[0]['device_info']['device_id_type'] = '' receiveandroid.data[0]['device_info']['oaid'] = z receiveandroid.data[0]['device_info']['oaid_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(a) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.send_request() print(i) # 点击激活oaid为’000000000000000‘,激活中其他参数与点击不同,无法归因 def test_atb32(): i = code_nums(16) redirectandroid.parms['oaid'] = z1 redirectandroid.send_request3("73iIZ3a", '') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = z1 receiveandroid.data[0]['device_info']['oaid_md5'] = computeMD5(z1) receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # 点击激活oaid为’0000000000000000000000000000000000000000000000000000000000000000‘,激活中其他参数与点击不同,无法归因 def test_atb33(): i = code_nums(16) redirectandroid.parms['oaid'] = z2 redirectandroid.send_request3("73iIZ3a", '') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = z2 receiveandroid.data[0]['device_info']['oaid_md5'] = computeMD5(z1) receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # 点击激活oaid_md5为’9f89c84a559f573636a47ff8daed0d33‘,激活中其他参数与点击不同,无法归因 def test_atb34(): i = code_nums(16) o = '9f89c84a559f573636a47ff8daed0d33' redirectandroid.parms['oaid_md5'] = o redirectandroid.send_request3("73iIZ3a", '') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # 点击激活oaid_md5为大写’9f89c84a559f573636a47ff8daed0d33‘,激活中其他参数与点击不同,无法归因(待产品决定) def test_atb35(): i = code_nums(16) o = '9f89c84a559f573636a47ff8daed0d33' redirectandroid.parms['oaid_md5'] = o.upper() redirectandroid.send_request3("73iIZ3a", '') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o.upper() receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,无法归因 def test_atb36(): i = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' redirectandroid.parms['oaid_md5'] = o redirectandroid.send_request3("73iIZ3a", '') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # 点击激活oaid_md5为大写’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,无法归因(待产品决定) def test_atb37(): i = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' redirectandroid.parms['oaid_md5'] = o.upper() redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o.upper() receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # 点击激活oaid_md5为写’1e4a1b03d1b6cd8a174a826f76e009f4‘,激活中其他参数与点击不同,无法归因 def test_atb38(): i = code_nums(16) o = '1e4a1b03d1b6cd8a174a826f76e009f4' redirectandroid.parms['oaid_md5'] = o redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # 点击激活oaid_md5为写’10eab6008d5642cf42abd2aa41f847cb‘,激活中其他参数与点击不同,无法归因 def test_atb39(): i = code_nums(16) o = '10eab6008d5642cf42abd2aa41f847cb' redirectandroid.parms['oaid_md5'] = o redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = '' receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # ------------------------------概率归因--------------------- # 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,ip相同,ua_click_fp_ip_switch为关闭/开启状态,不可/可归因 # ua_click_fp_ipua_switch开启,测一下是否影响ip归因,安卓没有ipua归因,所以在ipua开启时,ip关闭时,不可归因 def test_atb40(): i = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' redirectandroid.parms['oaid_md5'] = o redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) print(ip) # 当receive信息中的可用归因设备ID,其md5值为空时,需要实时添加md5加密值,加密后的md5参数名称与<receive_template.txt>中相关md5值一致, # 包括:"oaid_md5","imei1_md5","imei2_md5","mac_md5","gaid_md5"。 def test_atb41(): i = code_nums(16) o = code_nums(16) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = o receiveandroid.data[0]['device_info']['oaid_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = code_nums(12) receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = code_nums(17) receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = code_nums(36) receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) # 安卓精准归因-gaid归因 def test_atb42(): g = code_nums(36) redirectandroid.parms['gaid'] = g redirectandroid.parms['imei1'] = q redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['gaid'] = g receiveandroid.data[0]['device_info']['device_id'] = g receiveandroid.data[0]['device_info']['device_id_type'] = 'gaid' receiveandroid.send_request() print(g) # 安卓精准归因-androidid归因查询 def test_atb43(): a = code_nums(16) redirectandroid.parms['android_id'] = a redirectandroid.parms['imei1'] = q redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['android_id'] = a receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'android_id' receiveandroid.send_request() print(a) # 安卓精准归因-oaid归因,渠道后续事件 def test_atb45(): i = code_nums(12) redirectandroid.parms['callback_url'] = 'https://www.baidu.com/?tn=98010089_dg&ch=16/' redirectandroid.parms['oaid'] = i redirectandroid.send_request3('') time.sleep(5) # receiveandroid.data[0]['application_info']['appkey'] = 'b8e5e389e1223ffa16a5a9420258383d' receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.send_request() # time.sleep(3) # receiveandroid.data[0]['application_info']['appkey'] = 'b8e5e389e1223ffa16a5a9420258383d' # receiveandroid.data[0]['device_info']['device_id'] = i # receiveandroid.data[0]['device_info']['oaid'] = i # receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' # receiveandroid.data[0]["event_info"]['event_name'] = 'startup' # receiveandroid.data[0]["event_info"]['event_type'] = 'preset' # receiveandroid.send_request() time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]["event_info"]['event_name'] = 'register' receiveandroid.data[0]["event_info"]['event_type'] = 'preset' receiveandroid.send_request() time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]["event_info"]['event_name'] = 'login' receiveandroid.data[0]["event_info"]['event_type'] = 'preset' receiveandroid.send_request() # time.sleep(3) # receiveandroid.data[0]['device_info']['device_id'] = i # receiveandroid.data[0]['device_info']['oaid'] = i # receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' # receiveandroid.data[0]["event_info"]['event_name'] = 'purchase' # receiveandroid.data[0]["event_info"]['event_type'] = 'preset' # receiveandroid.send_request() # time.sleep(3) # receiveandroid.data[0]['device_info']['device_id'] = i # receiveandroid.data[0]['device_info']['oaid'] = i # receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' # receiveandroid.data[0]["event_info"]['event_name'] = 'order' # receiveandroid.data[0]["event_info"]['event_type'] = 'preset' # receiveandroid.send_request() # time.sleep(3) # receiveandroid.data[0]['application_info']['appkey'] = 'b8e5e389e1223ffa16a5a9420258383d' # receiveandroid.data[0]['device_info']['device_id'] = i # receiveandroid.data[0]['device_info']['oaid'] = i # receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' # receiveandroid.data[0]["event_info"]['event_name'] = 'custom_event_20' # receiveandroid.data[0]["event_info"]['event_type'] = 'custom' # receiveandroid.send_request() # time.sleep(3) # receiveandroid.data[0]['application_info']['appkey'] = 'b8e5e389e1223ffa16a5a9420258383d' # receiveandroid.data[0]['device_info']['device_id'] = i # receiveandroid.data[0]['device_info']['oaid'] = i # receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' # receiveandroid.data[0]["event_info"]['event_name'] = 'custom_event_99' # receiveandroid.data[0]["event_info"]['event_type'] = 'custom' # receiveandroid.send_request() print(i) # 安卓精准归因-oaid归因,渠道的event事件 def test_atb46(): i = code_nums(12) redirectandroid.parms['account_id'] = '123' redirectandroid.parms['oaid'] = i redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['application_info']['appkey'] = 'c54bbff0d3b5d986718eee951fa206cb' receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.send_request() time.sleep(3) receiveandroid.data[0]['application_info']['appkey'] = 'c54bbff0d3b5d986718eee951fa206cb' receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]["event_info"]['event_name'] = 'custom_event_100' receiveandroid.data[0]["event_info"]['event_type'] = 'custom' receiveandroid.send_request() print(i) # -------------------展示归因------------------------- # ************************精准归因验证************************ # 【新客获取展示精准归因开关】开,【新客获取展示概率IP+UA归因开关】开,【新客获取展示概率IP归因开关】开,传展示和激活数据(设备id,ip,ua相同),可精准归因 # 安卓精准归因-oaid归因 def test_impatb1(): i = code_nums(12) uaclick = 'Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2013_5_1%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Mobile%2F15E148' ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.parms['ua'] = uaclick redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.send_request3('') time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]['device_info']['ua'] = ua redirectandroid.parms['ipv4'] = ip1 receiveandroid.send_request() print(i) # 设备优先级归因(imei1和imei2都有值,可归因到imei1) def test_atbyxj(): i = code_nums(12) i2 = code_nums(12) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['imei1'] = i redirectandroid.parms['imei2'] = i2 redirectandroid.send_request3('') time.sleep(10) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['imei1'] = i receiveandroid.data[0]['device_info']['imei2'] = i2 receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.send_request() print(i) # 【新客获取展示精准归因开关】开,【新客获取展示概率IP+UA归因开关】开,【新客获取展示概率IP归因开关】开,传展示和激活数据(设备id不同,ip,ua相同),可ip归因 def test_impatb2(): # 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,ip相同,ua_click_fp_ip_switch为关闭/开启状态,不可/可归因 i = code_nums(16) i2 = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid_md5'] = o redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) print(ip) # 【新客获取展示精准归因开关】开,【新客获取展示概率IP+UA归因开关】开,【新客获取展示概率IP归因开关】关,传展示和激活数据(设备id,ua不同,ip相同),不可归因(测一下是否影响ip归因,安卓没有ipua归因,所以在ipua开启时,ip关闭时,不可归因) def test_impatb3(): # 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,ip相同 i = code_nums(16) i2 = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid_md5'] = o redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) print(ip) # ************************ip归因验证************************ # 【新客获取展示精准归因开关】开,【新客获取展示概率IP+UA归因开关】关,【新客获取展示概率IP归因开关】开,传展示和激活数据(ip相同),归因上ip def test_impatb4(): # 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,ip相同 i = code_nums(16) i2 = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid_md5'] = o redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') time.sleep(9) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) print(ip) # 【新客获取展示精准归因开关】开,【新客获取展示概率IP+UA归因开关】关,【新客获取展示概率IP归因开关】开,传展示和激活数据(ip不相同),归因不上 def test_impatb5(): # 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,ip相同 i = code_nums(16) i2 = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) ip2 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid_md5'] = o redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip2 receiveandroid.send_request() print(a) print(ip) # ************************【新客获取展示精准归因回溯窗口期】验证************************ # 【新客获取展示精准归因回溯窗口期】设置10秒,发送展示,5秒后发送激活,可精准归因上 # 【新客获取展示精准归因回溯窗口期】设置10秒,发送展示,11秒后发送激活,归因不上 # 共用一条测试用例,修改时间即可 def test_impatb6(): i = code_nums(12) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.send_request3('') time.sleep(11) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' redirectandroid.parms['ipv4'] = ip1 receiveandroid.send_request() print(i) # ************************【新客获取展示概率IP归因回溯窗口期】验证************************ # 【新客获取展示精准归因回溯窗口期】设置60秒,发送展示,50秒后发送激活,可ip归因 # 【新客获取展示精准归因回溯窗口期】设置60秒,发送展示,65秒后发送激活,归因不上 def test_impatb7(): i = code_nums(16) i2 = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid_md5'] = o redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') time.sleep(50) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) print(ip) # ************************归因优先级验证************************ # 有可用于精准归因的设备 # 精准归因,概率归因,精准展示,概率展示的有效期都为5分钟 # 先传点击,再传展示,然后激活(与点击,展示设备一致),可归因到点击(精准) def test_impatb8(): i = code_nums(12) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) ip2 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(5) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]['device_info']['ipv4'] = ip2 receiveandroid.send_request() print(i) # 精准归因,概率归因,精准展示,概率展示的有效期都为5分钟 # 先传点击,再传展示,然后激活(与点击设备不一致,与展示设备一致,ip与点击展示都不一致),可归因到展示(精准) def test_impatb9(): i = code_nums(12) i2 = code_nums(12) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) ip2 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(5) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]['device_info']['ipv4'] = ip2 receiveandroid.send_request() print(i) # 先传点击,再传展示,然后激活(与点击设备不一致,与展示设备一致,ip与点击一致),可归因到点击(概率) def test_impatb10(): i = code_nums(12) i2 = code_nums(12) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) ip2 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(5) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]['device_info']['ipv4'] = ip1 receiveandroid.send_request() print(i) # 先传展示(设备id与激活一致),再传点击(ip与激活一致),然后激活,可归因到点击(概率) def test_impatb11(): i = code_nums(12) i2 = code_nums(12) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) ip2 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip2 redirectandroid.send_request3('') time.sleep(5) redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(5) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]['device_info']['ipv4'] = ip1 receiveandroid.send_request() print(i) # 过了精准归因的有效期之后,可匹配上概率点击 # ua_click_deviceid_lbw有效期为10s,ua_imp_deviceid_lbw为20s,ua_click_fp_ip_lbw为300s # 先发送点击,5秒后发送展示,8秒后发送激活 def test_impatb12(): i = code_nums(12) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(5) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(8) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]['device_info']['ipv4'] = ip1 receiveandroid.send_request() print(i) # 过了精准/概率归因的有效期之后,可匹配上精准展示 # ua_click_deviceid_lbw有效期为10s,ua_click_fp_ip_lbw为15s,ua_imp_deviceid_lbw为20s # 先发送点击,5秒后发送展示,12秒后发送激活 def test_impatb13(): i = code_nums(12) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(5) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(12) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]['device_info']['ipv4'] = ip1 receiveandroid.send_request() print(i) # 过了精准/概率,精准展示归因的有效期之后,可匹配上概率展示 # ua_click_deviceid_lbw有效期为10s,ua_click_fp_ip_lbw为15s,ua_imp_deviceid_lbw为20s,ua_imp_ip_lbw为300s # 先发送点击,5秒后发送展示,12秒后发送激活 def test_impatb14(): i = code_nums(12) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(5) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(20) receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.data[0]['device_info']['ipv4'] = ip1 receiveandroid.send_request() print(i) # 无可用与精准归因的设备 # 先传点击,再传展示,然后激活(与点击,展示设备一致),可归因到点击(概率) def test_impatb15(): # 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,ip相同 i = code_nums(16) i2 = code_nums(16) o = '5284047f4ffb4e04824a2fd1d1f0cd62' # redirectandroid.parms['oaid_md5'] = o redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') time.sleep(3) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) print(ip) # 先传点击,再传展示,然后激活(与点击设备不一致,与展示设备一致),可归因到展示(概率) def test_impatb16(): # 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,ip相同 i = code_nums(16) i2 = code_nums(16) ip1 = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) o = '5284047f4ffb4e04824a2fd1d1f0cd62' # redirectandroid.parms['oaid_md5'] = o redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip1 redirectandroid.send_request3('') time.sleep(3) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = i2 redirectandroid.parms['ipv4'] = ip redirectandroid.send_request3('') time.sleep(3) receiveandroid.data[0]['device_info']['device_id'] = a receiveandroid.data[0]['device_info']['device_id_type'] = 'imei1' receiveandroid.data[0]['device_info']['oaid'] = '' receiveandroid.data[0]['device_info']['oaid_md5'] = o receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['imei2'] = '' receiveandroid.data[0]['device_info']['imei2_md5'] = '' receiveandroid.data[0]['device_info']['mac'] = '' receiveandroid.data[0]['device_info']['mac_md5'] = '' receiveandroid.data[0]['device_info']['imei1'] = a receiveandroid.data[0]['device_info']['imei1_md5'] = '' receiveandroid.data[0]['device_info']['gaid'] = '' receiveandroid.data[0]['device_info']['gaid_md5'] = '' receiveandroid.data[0]['device_info']['android_id_md5'] = computeMD5(i) receiveandroid.data[0]['device_info']['android_id'] = i receiveandroid.data[0]['device_info']['ipv4'] = ip receiveandroid.send_request() print(a) print(ip) # 单独的点击 def test_click(): i = code_nums(12) redirectandroid.parms['touchpoint_type'] = 'impression' redirectandroid.parms['oaid'] = '90tg5ut753a2' redirectandroid.send_request3('') print(i) # 单独的激活 def test_install(): i = 'acr4n9muc39v' receiveandroid.data[0]['device_info']['device_id'] = i receiveandroid.data[0]['device_info']['oaid'] = i receiveandroid.data[0]['device_info']['device_id_type'] = 'oaid' receiveandroid.send_request()